Populate Typed DataSet with XML Problem

H

hardy.yin.wang

Hi all,
I have a XSD file to define the structure of XML. I generated typed
DataSet by running "xsd rey_SvcApptView.xsd /dataset" command. Then I
run following statements to populate DataSet with XML content,

NewDataSet nds = new NewDataSet();
nds.ReadXml(@"c:\temp\rey_SvcApptView.xml");

I got exception "The same table 'ContactInfo' cannot be the child
table in two nested relations.". Anybody knows why?

Following is my XML file
<?xml version="1.0" encoding="UTF-8"?>
<rey_SvcApptView xmlns="http://www.starstandards.org/STAR"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="rey_SvcApptView.xsd">
<ApplicationArea>
<Sender>
<Component>ERA</Component>
<Task>SA</Task>
<CreatorNameCode>RR</CreatorNameCode>
<SenderNameCode>RR</SenderNameCode>
<DealerNumber>318211288334913</DealerNumber>
<StoreNumber>02</StoreNumber>
<AreaNumber>01</AreaNumber>
</Sender>
<CreationDateTime>2006-05-25T15:35:35</CreationDateTime>
<BODId>ENG:808b7e0f-01b2-1edd-b73f-8e44ff873a56</BODId>
<Destination>
<DestinationNameCode>RCI</DestinationNameCode>
</Destination>
</ApplicationArea>
<ServAppointment ApptNo="110853">
<ServAppointmentAdvisor>
<ContactInfo Suffix="" SalutName="" Salut="MR." MidName=""
FirstName="CARMINE" LastName="PERONE" NameRecId="2921" IBFlag="I">
<Address Country="" County="" Zip="L6Z 4G7" State="ON"
City="BRAMPTON" Addr2="" Addr1="66 CHEVIOT CRES." Type="P"/>
<Phone Ext="" Num="9058463008" Type="H"/>
</ContactInfo>
</ServAppointmentAdvisor>
<AppointmentTime>
<DateTimeStamp Time="07:30:00" Date="05/25/2006"/>
</AppointmentTime>
<CustRecord>
<ContactInfo Suffix="" SalutName="" Salut="MR" MidName=""
FirstName="DENNIS" LastName="GREEN" NameRecId="5035" IBFlag="I">
<Address Country="" County="" Zip="L1K 2E1" State="ON"
City="OSHAWA" Addr2="" Addr1="878 CORBETTS RD" Type="P"/>
<Phone Ext="" Num="4575150" Type="B"/>
</ContactInfo>
</CustRecord>
<ServVehicle>
<Vehicle RoofClr="" AccentClr="" IntClrDesc="" IntClrCode=""
ExtClrDesc="GREEN" ExtClrCode="" Carline="GRAND CHEROKEE"
ModelDesc="GRAND 4WD" MdlNo="ZJJL74" VehicleYr="1994" VehicleMake="JE"
MakePfx="" Vin="1J4GZ58S8RC159376">
<VehicleDetail UnitsofMeasure="E" NewUsed="N" LicNo="941XRJ"
LicExpDate="" VehClass="" CategCode="" Wheelbase="" Weight="" Turbo=""
Trim="" Transm="" Pwrstr="" OdomReading="" NoOfCyl="" FuelEcon=""
EngineConfig="" KeyChipNo="" AlarmNo="" KeylessNo="" KeyNo2=""
KeyNo1="" Fuel="" EngNo="" ChassisNo="" Bodysize="" Axle="" Aircond=""/</Vehicle>
<VehicleServInfo UnitsofMeasure="E" NoOfVisits="1"
LastROOdom="85822" LastRODate="06/23/1998" LastRONo="19277"
FirstRO="06/23/1998" InvalidVin="" LastActivityDate="06/23/1998"
TeamCode="" ServiceDays="1" FactoryWarrExpOdom=""
FactoryWarrExpDate="" DemoOdom="" DemoDate="" DeliveryOdom=""
DeliveryDate="" ProductionHour="" InServiceDate="" ProductionDate=""
SellingDealerNo="" ModelMaintCode="CCZJ" SalesmanNo=""
CustomerNo="5035" OldVin="" StockID=""/>
</ServVehicle>
<RODetail Priority="" Type="S" OverRidePayType="" HatTagNo=""
ROCloseDate="" ROCreateDate="" RONo="">
<Operation Quote="0.0" EstRepairTime="" Priority=""
OpCodeDesc="TEST OP 2" OpCode="01CCZZ02">
<ChargeAmt WarrantyNo="" OverRidePayPfx="" SaleType="C"
Catagory=""/>
<Complaint>LASUHRGOIU</Complaint>
</Operation>
<RecommServ Comments="" Criteria="" OpCode="" RefCode=""
DueDate="" Description="TEST OP 2"/>
<VehReceiveInfo Odom="85823"/>
<PromiseTime>
<DateTimeStamp Time="20:00:00" Date="05/25/2006"/>
</PromiseTime>
<Comments/>
</RODetail>
<OutsideApptSrc LastName="" Appointment="110853" EmailAddr=""/>
<Estimate Total="0.0" Labor="0.0" Parts="0.0"/>
<AdtlCustomerContact CallWindowEnd="" CallWindowStart=""
MessageText="" MessageFlag="" CellPhone="" WorkPhone="" ResPhone=""
PreferredContact="" CustName="DENNIS GREEN" CustNo="5035"/>
</ServAppointment>
</rey_SvcApptView>

And following is my XSD file
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xs:schema xmlns="http://www.starstandards.org/STAR" xmlns:xs="http://
www.w3.org/2001/XMLSchema" targetNamespace="http://
www.starstandards.org/STAR" elementFormDefault="qualified">
<xs:complexType name="ApplicationAreaType">
<xs:sequence>
<xs:element name="Sender" type="SenderType"/>
<xs:element ref="CreationDateTime"/>
<xs:element ref="Signature" minOccurs="0"/>
<xs:element ref="BODId" minOccurs="0"/>
<xs:element name="Destination" type="DestinationType"/>
</xs:sequence>
</xs:complexType>
<xs:element name="AreaNumber" type="xs:string"/>
<xs:element name="AuthorizationId" type="xs:string"/>
<xs:element name="BODId" type="xs:string"/>
<xs:element name="Component" type="xs:string"/>
<xs:element name="CreationDateTime" type="xs:string"/>
<xs:element name="CreatorNameCode" type="xs:string"/>
<xs:element name="DealerCountry" type="xs:string"/>
<xs:element name="DealerNumber" type="xs:string"/>
<xs:element name="DeliverPendingMailInd" type="xs:string"/>
<xs:complexType name="DestinationType">
<xs:sequence>
<xs:element ref="DestinationNameCode"/>
<xs:element ref="DestinationURI" minOccurs="0"/>
<xs:element ref="DestinationSoftwareCode" minOccurs="0"/>
<xs:element ref="DestinationSoftware" minOccurs="0"/>
<xs:element ref="DealerNumber" minOccurs="0"/>
<xs:element ref="StoreNumber" minOccurs="0"/>
<xs:element ref="AreaNumber" minOccurs="0"/>
<xs:element ref="DealerCountry" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:element name="DestinationNameCode" type="xs:string"/>
<xs:element name="DestinationSoftware" type="xs:string"/>
<xs:element name="DestinationSoftwareCode" type="xs:string"/>
<xs:element name="DestinationURI" type="xs:string"/>
<xs:element name="Language" type="xs:string"/>
<xs:element name="LogicalId" type="xs:string"/>
<xs:element name="Password" type="xs:string"/>
<xs:element name="ReferenceId" type="xs:string"/>
<xs:complexType name="SenderType">
<xs:sequence>
<xs:element ref="LogicalId" minOccurs="0"/>
<xs:element ref="Component"/>
<xs:element ref="Task"/>
<xs:element ref="ReferenceId" minOccurs="0"/>
<xs:element ref="AuthorizationId" minOccurs="0"/>
<xs:element ref="CreatorNameCode"/>
<xs:element ref="SenderNameCode"/>
<xs:element ref="SenderURI" minOccurs="0"/>
<xs:element ref="DealerNumber" minOccurs="0"/>
<xs:element ref="StoreNumber" minOccurs="0"/>
<xs:element ref="AreaNumber" minOccurs="0"/>
<xs:element ref="DealerCountry" minOccurs="0"/>
<xs:element ref="Language" minOccurs="0"/>
<xs:element ref="DeliverPendingMailInd" minOccurs="0"/>
<xs:element ref="Password" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:element name="SenderNameCode" type="xs:string"/>
<xs:element name="SenderURI" type="xs:string"/>
<xs:element name="Signature" type="xs:string"/>
<xs:element name="StoreNumber" type="xs:string"/>
<xs:element name="Task" type="xs:string"/>
<xs:complexType name="Address">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="Type" default="P">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="B"/>
<xs:enumeration value="P"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Addr1" type="xs:string"/>
<xs:attribute name="Addr2" type="xs:string"/>
<xs:attribute name="City" type="xs:string"/>
<xs:attribute name="State" type="xs:string"/>
<xs:attribute name="Zip" type="xs:string"/>
<xs:attribute name="County" type="xs:string"/>
<xs:attribute name="Country" type="xs:string"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="Address" type="Address"/>
<xs:complexType name="AdtlCustomerContact">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="CustNo" type="xs:string"/>
<xs:attribute name="CustName" type="xs:string"/>
<xs:attribute name="PreferredContact" type="xs:string"/>
<xs:attribute name="ResPhone" type="xs:string"/>
<xs:attribute name="WorkPhone" type="xs:string"/>
<xs:attribute name="CellPhone" type="xs:string"/>
<xs:attribute name="MessageFlag" type="xs:string"/>
<xs:attribute name="MessageText" type="xs:string"/>
<xs:attribute name="CallWindowStart" type="xs:string"/>
<xs:attribute name="CallWindowEnd" type="xs:string"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="AdtlCustomerContact" type="AdtlCustomerContact"/>
<xs:complexType name="Advisor">
<xs:sequence>
<xs:element ref="ContactInfo"/>
</xs:sequence>
</xs:complexType>
<xs:element name="Advisor" type="Advisor"/>
<xs:complexType name="AlternatePart">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="PartNo" type="xs:string" use="required"/>
<xs:attribute name="Quantity" type="xs:string"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="AlternatePart" type="AlternatePart"/>
<xs:complexType name="AppointmentTime">
<xs:sequence>
<xs:element ref="DateTimeStamp"/>
</xs:sequence>
</xs:complexType>
<xs:element name="AppointmentTime" type="AppointmentTime"/>
<xs:complexType name="AssociatedPart">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="PartNo" type="xs:string" use="required"/>
<xs:attribute name="Quantity" type="xs:string"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="AssociatedPart" type="AssociatedPart"/>
<xs:complexType name="BirthDate">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="Type" default="P">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="O"/>
<xs:enumeration value="P"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="date" type="xs:string" use="required"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="BirthDate" type="BirthDate"/>
<xs:complexType name="CampaignInfo">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="CampaignNo" type="xs:string"/>
<xs:attribute name="CampaignCode" type="xs:string"/>
<xs:attribute name="CampaignCriteria" type="xs:string"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="CampaignInfo" type="CampaignInfo"/>
<xs:complexType name="Cause" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded"/>
</xs:complexType>
<xs:element name="Cause" type="Cause"/>
<xs:complexType name="ChargeAmt" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded"/>
<xs:attribute name="Catagory" type="xs:string"/>
<xs:attribute name="SaleType" type="xs:string"/>
<xs:attribute name="OverRidePayPfx" type="xs:string"/>
<xs:attribute name="WarrantyNo" type="xs:string"/>
</xs:complexType>
<xs:element name="ChargeAmt" type="ChargeAmt"/>
<xs:complexType name="ComeBackInfo">
<xs:sequence>
<xs:element ref="ServAppointmentAdvisor" minOccurs="0"/>
<xs:element ref="ServAppointmentTechnician" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="BaseCode" type="xs:string"/>
<xs:attribute name="Odom" type="xs:string"/>
<xs:attribute name="RONo" type="xs:string"/>
<xs:attribute name="RODate" type="xs:string"/>
</xs:complexType>
<xs:element name="ComeBackInfo" type="ComeBackInfo"/>
<xs:complexType name="Comments" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded"/>
</xs:complexType>
<xs:element name="Comments" type="Comments"/>
<xs:complexType name="Complaint" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded"/>
</xs:complexType>
<xs:element name="Complaint" type="Complaint"/>
<xs:complexType name="ContactInfo">
<xs:sequence>
<xs:element ref="Address" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="Phone" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="Email" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="IBFlag" default="I">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="I"/>
<xs:enumeration value="B"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="NameRecId" type="xs:string"/>
<xs:attribute name="LastName" type="xs:string"/>
<xs:attribute name="FirstName" type="xs:string"/>
<xs:attribute name="MidName" type="xs:string"/>
<xs:attribute name="Salut" type="xs:string"/>
<xs:attribute name="SalutName" type="xs:string"/>
<xs:attribute name="Suffix" type="xs:string"/>
</xs:complexType>
<xs:element name="ContactInfo" type="ContactInfo"/>
<xs:complexType name="Correction" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded"/>
</xs:complexType>
<xs:element name="Correction" type="Correction"/>
<xs:complexType name="CustChild">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="ChildName" type="xs:string" use="required"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="CustChild" type="CustChild"/>
<xs:complexType name="CustPersonal">
<xs:sequence>
<xs:element ref="CustChild" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="BirthDate" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="SSNum" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="DriverInfo" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="Gender" type="xs:string"/>
<xs:attribute name="OtherName" type="xs:string"/>
<xs:attribute name="AnniversaryDate" type="xs:string"/>
<xs:attribute name="EmployerName" type="xs:string"/>
<xs:attribute name="EmployerPhone" type="xs:string"/>
<xs:attribute name="Occupation" type="xs:string"/>
<xs:attribute name="OptOut" type="xs:string"/>
<xs:attribute name="OptOutUse" type="xs:string"/>
</xs:complexType>
<xs:element name="CustPersonal" type="CustPersonal"/>
<xs:complexType name="CustRecord">
<xs:sequence>
<xs:element ref="ContactInfo"/>
<xs:element ref="CustPersonal" minOccurs="0"/>
<xs:element ref="DMSCustInfo" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:element name="CustRecord" type="CustRecord"/>
<xs:complexType name="CustValueInfo">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="Type" default="T">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="Y"/>
<xs:enumeration value="T"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="NewVehSales" type="xs:string"/>
<xs:attribute name="NewVehUnits" type="xs:string"/>
<xs:attribute name="UsedVehSales" type="xs:string"/>
<xs:attribute name="UsedVehUnits" type="xs:string"/>
<xs:attribute name="NewVehFISales" type="xs:string"/>
<xs:attribute name="UsedVehFISales" type="xs:string"/>
<xs:attribute name="PartsSales" type="xs:string"/>
<xs:attribute name="PartsUnits" type="xs:string"/>
<xs:attribute name="ServiceSales" type="xs:string"/>
<xs:attribute name="ServiceUnits" type="xs:string"/>
<xs:attribute name="BodyShopSales" type="xs:string"/>
<xs:attribute name="BodyShopUnits" type="xs:string"/>
<xs:attribute name="TotalSales" type="xs:string"/>
<xs:attribute name="TotalUnits" type="xs:string"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="CustValueInfo" type="CustValueInfo"/>
<xs:complexType name="CustomerRetentionContact">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="ContactDate" type="xs:string"/>
<xs:attribute name="ContactsDone" type="xs:string"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="CustomerRetentionContact"
type="CustomerRetentionContact"/>
<xs:complexType name="CustomerRetentionOPs">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="ServiceOp" type="xs:string"/>
<xs:attribute name="Reason" type="xs:string"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="CustomerRetentionOPs" type="CustomerRetentionOPs"/>
<xs:complexType name="DMSCustInfo">
<xs:element ref="Followup" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="TaxExemptNum" type="xs:string"/>
<xs:attribute name="PsPaymentMethod" type="xs:string"/>
<xs:attribute name="SalesTerritory" type="xs:string"/>
<xs:attribute name="DeliveryRoute" type="xs:string"/>
<xs:attribute name="ActiveStatus" type="xs:string"/>
<xs:attribute name="SalesmanNum" type="xs:string"/>
<xs:attribute name="LastContactMethod" type="xs:string"/>
</xs:complexType>
<xs:element name="DMSCustInfo" type="DMSCustInfo"/>
<xs:complexType name="DateTimeStamp">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="Date" type="xs:string"/>
<xs:attribute name="Time" type="xs:string"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="DateTimeStamp" type="DateTimeStamp"/>
<xs:complexType name="Dispatcher" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded"/>
</xs:complexType>
<xs:element name="Dispatcher" type="Dispatcher"/>
<xs:complexType name="DlrOption">
<xs:sequence>
<xs:element ref="OptionAccounting" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="DlrAccCode" type="xs:string"/>
<xs:attribute name="DlrAccDesc" type="xs:string"/>
</xs:complexType>
<xs:element name="DlrOption" type="DlrOption"/>
<xs:complexType name="DriverInfo">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="Type" default="P">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="O"/>
<xs:enumeration value="P"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="LicNum" type="xs:string"/>
<xs:attribute name="LicState" type="xs:string"/>
<xs:attribute name="LicExpDate" type="xs:string"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="DriverInfo" type="DriverInfo"/>
<xs:complexType name="Email">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="MailTo" type="xs:string" use="required"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="Email" type="Email"/>
<xs:complexType name="EmailReminder">
<xs:sequence>
<xs:element ref="DateTimeStamp"/>
</xs:sequence>
</xs:complexType>
<xs:element name="EmailReminder" type="EmailReminder"/>
<xs:complexType name="Estimate">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="Parts" type="xs:string"/>
<xs:attribute name="Labor" type="xs:string"/>
<xs:attribute name="Total" type="xs:string"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="Estimate" type="Estimate"/>
<xs:complexType name="Followup">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="Type" default="P">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="M"/>
<xs:enumeration value="P"/>
<xs:enumeration value="E"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Value" default="N">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="Y"/>
<xs:enumeration value="N"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="Followup" type="Followup"/>
<xs:complexType name="LTGInfo">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="Allow" type="xs:string"/>
<xs:attribute name="Hours" type="xs:string"/>
<xs:attribute name="Mix" type="xs:string"/>
<xs:attribute name="OpCode" type="xs:string"/>
<xs:attribute name="OtherHours" type="xs:string"/>
<xs:attribute name="PNCCode" type="xs:string"/>
<xs:attribute name="PNCDesc" type="xs:string"/>
<xs:attribute name="SCCode" type="xs:string"/>
<xs:attribute name="SCDesc" type="xs:string"/>
<xs:attribute name="TCDesc" type="xs:string"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="LTGInfo" type="LTGInfo"/>
<xs:complexType name="Message" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded"/>
<xs:attribute name="MessageNo" type="xs:string"/>
</xs:complexType>
<xs:element name="Message" type="Message"/>
<xs:complexType name="Operation">
<xs:sequence>
<xs:element ref="ChargeAmt" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="Technician" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="Complaint" minOccurs="0"/>
<xs:element ref="Cause" minOccurs="0"/>
<xs:element ref="Correction" minOccurs="0"/>
<xs:element ref="OperationStart" minOccurs="0"/>
<xs:element ref="PartRequired" minOccurs="0" maxOccurs="unbounded"/<xs:element ref="LTGInfo" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="OpCode" type="xs:string"/>
<xs:attribute name="OpCodeDesc" type="xs:string"/>
<xs:attribute name="Priority" type="xs:string"/>
<xs:attribute name="EstRepairTime" type="xs:string"/>
<xs:attribute name="Quote" type="xs:string"/>
</xs:complexType>
<xs:element name="Operation" type="Operation"/>
<xs:complexType name="OperationFinish">
<xs:sequence>
<xs:element ref="DateTimeStamp"/>
</xs:sequence>
</xs:complexType>
<xs:element name="OperationFinish" type="OperationFinish"/>
<xs:complexType name="OperationStart">
<xs:sequence>
<xs:element ref="DateTimeStamp"/>
</xs:sequence>
</xs:complexType>
<xs:element name="OperationStart" type="OperationStart"/>
<xs:complexType name="Option">
<xs:sequence>
<xs:element ref="OptionAccounting" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="FactAccCode" type="xs:string"/>
<xs:attribute name="FactAccDesc" type="xs:string"/>
</xs:complexType>
<xs:element name="Option" type="Option"/>
<xs:complexType name="OptionAccounting">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="Amt" type="xs:string"/>
<xs:attribute name="RefNo" type="xs:string"/>
<xs:attribute name="Rtl" type="xs:string"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="OptionAccounting" type="OptionAccounting"/>
<xs:complexType name="OptionDescLines">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="Description" type="xs:string"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="OptionDescLines" type="OptionDescLines"/>
<xs:complexType name="OptionPackage">
<xs:sequence>
<xs:element ref="OptionAccounting" minOccurs="0"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Option"/>
<xs:element ref="OptionDescLines"/>
</xs:choice>
</xs:sequence>
<xs:attribute name="PkgCode" type="xs:string"/>
<xs:attribute name="PkgCodeDesc" type="xs:string"/>
</xs:complexType>
<xs:element name="OptionPackage" type="OptionPackage"/>
<xs:complexType name="OutsideApptSrc">
<xs:sequence>
<xs:element ref="DateTimeStamp" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="EmailAddr" type="xs:string"/>
<xs:attribute name="Appointment" type="xs:string"/>
<xs:attribute name="LastName" type="xs:string"/>
</xs:complexType>
<xs:element name="OutsideApptSrc" type="OutsideApptSrc"/>
<xs:complexType name="Part">
<xs:element ref="AssociatedPart" minOccurs="0"
maxOccurs="unbounded"/>
<xs:element ref="PartMisc" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="Description" type="xs:string"/>
<xs:attribute name="PartNo" type="xs:string" use="required"/>
<xs:attribute name="Bin1" type="xs:string"/>
<xs:attribute name="Bin2" type="xs:string"/>
<xs:attribute name="Class" type="xs:string"/>
<xs:attribute name="Group" type="xs:string"/>
<xs:attribute name="ModelYearHigh" type="xs:string"/>
<xs:attribute name="ModelYearLow" type="xs:string"/>
<xs:attribute name="Detail" type="xs:string"/>
<xs:attribute name="Detail2" type="xs:string"/>
<xs:attribute name="Source" type="xs:string"/>
<xs:attribute name="Status" type="xs:string"/>
<xs:attribute name="Make" type="xs:string"/>
</xs:complexType>
<xs:element name="Part" type="Part"/>
<xs:complexType name="PartMisc">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="NewPartNo" type="xs:string"/>
<xs:attribute name="Pack" type="xs:string"/>
<xs:attribute name="PackFactor" type="xs:string"/>
<xs:attribute name="MultiOrder" type="xs:string"/>
<xs:attribute name="Remarks" type="xs:string"/>
<xs:attribute name="Comment" type="xs:string"/>
<xs:attribute name="ReturnCode" type="xs:string"/>
<xs:attribute name="SortKey" type="xs:string"/>
<xs:attribute name="UpdateFlag" type="xs:string"/>
<xs:attribute name="Warehouse" type="xs:string"/>
<xs:attribute name="WarehousePrinter" type="xs:string"/>
<xs:attribute name="MfrStatus" type="xs:string"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="PartMisc" type="PartMisc"/>
<xs:complexType name="PartRequired">
<xs:sequence>
<xs:element ref="Part" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="PartPrice" type="xs:string"/>
<xs:attribute name="PartQuantity" type="xs:string"/>
</xs:complexType>
<xs:element name="PartRequired" type="PartRequired"/>
<xs:complexType name="Phone">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="Type" default="H">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="U"/>
<xs:enumeration value="B"/>
<xs:enumeration value="O"/>
<xs:enumeration value="C"/>
<xs:enumeration value="P"/>
<xs:enumeration value="F"/>
<xs:enumeration value="H"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Num" type="xs:string" use="required"/>
<xs:attribute name="Ext" type="xs:string"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="Phone" type="Phone"/>
<xs:complexType name="PickupTime">
<xs:sequence>
<xs:element ref="DateTimeStamp"/>
</xs:sequence>
</xs:complexType>
<xs:element name="PickupTime" type="PickupTime"/>
<xs:complexType name="PromiseTime">
<xs:sequence>
<xs:element ref="DateTimeStamp"/>
</xs:sequence>
</xs:complexType>
<xs:element name="PromiseTime" type="PromiseTime"/>
<xs:complexType name="PubTxRecHdr">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="PubRecKey" type="xs:string" use="required"/>
<xs:attribute name="BusUnitCode" type="xs:string"/>
<xs:attribute name="RecOpType">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="Insert"/>
<xs:enumeration value="Delete"/>
<xs:enumeration value="Update"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="PubTxRecHdr" type="PubTxRecHdr"/>
<xs:complexType name="ROAdvisor">
<xs:sequence>
<xs:element ref="ContactInfo"/>
</xs:sequence>
</xs:complexType>
<xs:element name="ROAdvisor" type="ROAdvisor"/>
<xs:complexType name="RODetail">
<xs:sequence>
<xs:element ref="Operation" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="ROAdvisor" minOccurs="0"/>
<xs:element ref="RecommServ" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="VehReceiveInfo" minOccurs="0"/>
<xs:element ref="PromiseTime" minOccurs="0"/>
<xs:element ref="PickupTime" minOccurs="0"/>
<xs:element ref="VehDeliverInfo" minOccurs="0"/>
<xs:element ref="CampaignInfo" minOccurs="0" maxOccurs="unbounded"/<xs:element ref="ROMisc" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="RONo" type="xs:string"/>
<xs:attribute name="ROCreateDate" type="xs:string"/>
<xs:attribute name="ROCloseDate" type="xs:string"/>
<xs:attribute name="HatTagNo" type="xs:string"/>
<xs:attribute name="OverRidePayType" type="xs:string"/>
<xs:attribute name="Type" default="S">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="B"/>
<xs:enumeration value="P"/>
<xs:enumeration value="Q"/>
<xs:enumeration value="S"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Priority" type="xs:string"/>
</xs:complexType>
<xs:element name="RODetail" type="RODetail"/>
<xs:complexType name="ROMisc">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="SpecialOrdFulfilled">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="Y"/>
<xs:enumeration value="N"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="TeamCode" type="xs:string"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="ROMisc" type="ROMisc"/>
<xs:complexType name="Recomendation" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded"/>
</xs:complexType>
<xs:element name="Recomendation" type="Recomendation"/>
<xs:complexType name="RecommServ">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="Description" type="xs:string"/>
<xs:attribute name="DueDate" type="xs:string"/>
<xs:attribute name="RefCode" type="xs:string"/>
<xs:attribute name="OpCode" type="xs:string"/>
<xs:attribute name="Criteria" type="xs:string"/>
<xs:attribute name="Comments" type="xs:string"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="RecommServ" type="RecommServ"/>
<xs:complexType name="SSNum">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="Type" default="P">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="O"/>
<xs:enumeration value="P"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="ssn" type="xs:string" use="required"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="SSNum" type="SSNum"/>
<xs:complexType name="ServAppointmentType">
<xs:sequence>
<xs:element ref="ServAppointmentAdvisor" minOccurs="0"/>
<xs:element ref="Dispatcher" minOccurs="0"/>
<xs:element ref="AppointmentTime" minOccurs="0"/>
<xs:element ref="CustRecord" minOccurs="0"/>
<xs:element ref="ServVehicle" minOccurs="0"/>
<xs:element ref="ServAppointmentMisc" minOccurs="0"/>
<xs:element ref="CustomerRetentionContact" minOccurs="0"
maxOccurs="unbounded"/>
<xs:element ref="CustomerRetentionOPs" minOccurs="0"
maxOccurs="unbounded"/>
<xs:element ref="OutsideApptSrc" minOccurs="0"/>
<xs:element ref="Estimate" minOccurs="0"/>
<xs:element ref="AdtlCustomerContact" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="ApptNo" type="xs:string"/>
</xs:complexType>
<xs:complexType name="ServAppointmentAdvisor">
<xs:sequence>
<xs:element ref="ContactInfo"/>
</xs:sequence>
</xs:complexType>
<xs:element name="ServAppointmentAdvisor"
type="ServAppointmentAdvisor"/>
<xs:complexType name="ServAppointmentMisc">
<xs:sequence>
<xs:element ref="EmailReminder" minOccurs="0"/>
<xs:element ref="SpecialOrderNo" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="CRConfirmFlag" type="xs:string"/>
<xs:attribute name="UnitsofMeasure" default="E">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="M"/>
<xs:enumeration value="E"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="ForcastDate" type="xs:string"/>
</xs:complexType>
<xs:element name="ServAppointmentMisc" type="ServAppointmentMisc"/>
<xs:complexType name="ServAppointmentTechnician">
<xs:sequence>
<xs:element ref="ContactInfo"/>
</xs:sequence>
</xs:complexType>
<xs:element name="ServAppointmentTechnician"
type="ServAppointmentTechnician"/>
<xs:element name="rey_SvcApptView">
<xs:complexType>
<xs:sequence>
<xs:element name="ApplicationArea" type="ApplicationAreaType"/>
<xs:element name="ServAppointment" type="ServAppointmentType"
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="revision" use="optional" default="1.0"/>
</xs:complexType>
</xs:element>
<xs:complexType name="ServVehicle">
<xs:sequence>
<xs:element ref="PubTxRecHdr" minOccurs="0"/>
<xs:element ref="Vehicle" minOccurs="0"/>
<xs:element ref="VehicleServInfo" minOccurs="0"/>
<xs:element ref="Message" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:element name="ServVehicle" type="ServVehicle"/>
<xs:complexType name="SpecialOrderNo" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded"/>
</xs:complexType>
<xs:element name="SpecialOrderNo" type="SpecialOrderNo"/>
<xs:complexType name="Surcharge">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="Code" type="xs:string"/>
<xs:attribute name="Description" type="xs:string"/>
<xs:attribute name="DealerCost" type="xs:string"/>
<xs:attribute name="CustomerCost" type="xs:string"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="Surcharge" type="Surcharge"/>
<xs:complexType name="SurchargeInfo">
<xs:sequence>
<xs:element ref="Surcharge" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="TotAmtSurcharges" type="xs:string"/>
</xs:complexType>
<xs:element name="SurchargeInfo" type="SurchargeInfo"/>
<xs:complexType name="Technician">
<xs:sequence>
<xs:element ref="ContactInfo" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="Notes" type="xs:string"/>
</xs:complexType>
<xs:element name="Technician" type="Technician"/>
<xs:complexType name="TermRateInfo">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="Code" type="xs:string"/>
<xs:attribute name="Description" type="xs:string"/>
<xs:attribute name="DealerCost" type="xs:string"/>
<xs:attribute name="CustomerCost" type="xs:string"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="TermRateInfo" type="TermRateInfo"/>
<xs:complexType name="VehDeliverInfo">
<xs:sequence>
<xs:element ref="DateTimeStamp" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="Odom" type="xs:string"/>
</xs:complexType>
<xs:element name="VehDeliverInfo" type="VehDeliverInfo"/>
<xs:complexType name="VehExtWarranty">
<xs:sequence>
<xs:element ref="TermRateInfo" minOccurs="0"/>
<xs:element ref="SurchargeInfo" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="ContractNo" type="xs:string"/>
<xs:attribute name="ContractName" type="xs:string"/>
<xs:attribute name="ContractType" type="xs:string"/>
<xs:attribute name="WarrantyCompany" type="xs:string"/>
<xs:attribute name="ExpirationDate" type="xs:string"/>
<xs:attribute name="ExpirationOdom" type="xs:string"/>
<xs:attribute name="Deductible" type="xs:string"/>
</xs:complexType>
<xs:element name="VehExtWarranty" type="VehExtWarranty"/>
<xs:complexType name="VehReceiveInfo">
<xs:sequence>
<xs:element ref="DateTimeStamp" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="Odom" type="xs:string"/>
</xs:complexType>
<xs:element name="VehReceiveInfo" type="VehReceiveInfo"/>
<xs:complexType name="Vehicle">
<xs:sequence>
<xs:element ref="VehicleDetail" minOccurs="0"/>
<xs:element ref="Option" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="Vin" type="xs:string"/>
<xs:attribute name="MakePfx" type="xs:string"/>
<xs:attribute name="VehicleMake" type="xs:string"/>
<xs:attribute name="VehicleYr" type="xs:string"/>
<xs:attribute name="MdlNo" type="xs:string"/>
<xs:attribute name="ModelDesc" type="xs:string"/>
<xs:attribute name="Carline" type="xs:string"/>
<xs:attribute name="ExtClrCode" type="xs:string"/>
<xs:attribute name="ExtClrDesc" type="xs:string"/>
<xs:attribute name="IntClrCode" type="xs:string"/>
<xs:attribute name="IntClrDesc" type="xs:string"/>
<xs:attribute name="AccentClr" type="xs:string"/>
<xs:attribute name="RoofClr" type="xs:string"/>
</xs:complexType>
<xs:element name="Vehicle" type="Vehicle"/>
<xs:complexType name="VehicleDetail">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="Aircond" type="xs:string"/>
<xs:attribute name="Axle" type="xs:string"/>
<xs:attribute name="Bodysize" type="xs:string"/>
<xs:attribute name="ChassisNo" type="xs:string"/>
<xs:attribute name="EngNo" type="xs:string"/>
<xs:attribute name="Fuel" type="xs:string"/>
<xs:attribute name="KeyNo1" type="xs:string"/>
<xs:attribute name="KeyNo2" type="xs:string"/>
<xs:attribute name="KeylessNo" type="xs:string"/>
<xs:attribute name="AlarmNo" type="xs:string"/>
<xs:attribute name="KeyChipNo" type="xs:string"/>
<xs:attribute name="EngineConfig" type="xs:string"/>
<xs:attribute name="FuelEcon" type="xs:string"/>
<xs:attribute name="NoOfCyl" type="xs:string"/>
<xs:attribute name="OdomReading" type="xs:string"/>
<xs:attribute name="Pwrstr" type="xs:string"/>
<xs:attribute name="Transm" type="xs:string"/>
<xs:attribute name="Trim" type="xs:string"/>
<xs:attribute name="Turbo" type="xs:string"/>
<xs:attribute name="Weight" type="xs:string"/>
<xs:attribute name="Wheelbase" type="xs:string"/>
<xs:attribute name="CategCode" type="xs:string"/>
<xs:attribute name="VehClass" type="xs:string"/>
<xs:attribute name="LicExpDate" type="xs:string"/>
<xs:attribute name="LicNo" type="xs:string"/>
<xs:attribute name="NewUsed" default="N">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="U"/>
<xs:enumeration value="N"/>
<xs:enumeration value="O"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="UnitsofMeasure" default="E">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="M"/>
<xs:enumeration value="E"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="VehicleDetail" type="VehicleDetail"/>
<xs:complexType name="VehicleServInfo">
<xs:sequence>
<xs:element ref="VehExtWarranty" minOccurs="0"/>
<xs:element ref="Advisor" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="StockID" type="xs:string"/>
<xs:attribute name="OldVin" type="xs:string"/>
<xs:attribute name="CustomerNo" type="xs:string"/>
<xs:attribute name="SalesmanNo" type="xs:string"/>
<xs:attribute name="ModelMaintCode" type="xs:string"/>
<xs:attribute name="SellingDealerNo" type="xs:string"/>
<xs:attribute name="ProductionDate" type="xs:string"/>
<xs:attribute name="InServiceDate" type="xs:string"/>
<xs:attribute name="ProductionHour" type="xs:string"/>
<xs:attribute name="DeliveryDate" type="xs:string"/>
<xs:attribute name="DeliveryOdom" type="xs:string"/>
<xs:attribute name="DemoDate" type="xs:string"/>
<xs:attribute name="DemoOdom" type="xs:string"/>
<xs:attribute name="FactoryWarrExpDate" type="xs:string"/>
<xs:attribute name="FactoryWarrExpOdom" type="xs:string"/>
<xs:attribute name="ServiceDays" type="xs:string"/>
<xs:attribute name="TeamCode" type="xs:string"/>
<xs:attribute name="LastActivityDate" type="xs:string"/>
<xs:attribute name="InvalidVin" type="xs:string"/>
<xs:attribute name="FirstRO" type="xs:string"/>
<xs:attribute name="LastRONo" type="xs:string"/>
<xs:attribute name="LastRODate" type="xs:string"/>
<xs:attribute name="LastROOdom" type="xs:string"/>
<xs:attribute name="NoOfVisits" type="xs:string"/>
<xs:attribute name="UnitsofMeasure" default="E">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="M"/>
<xs:enumeration value="E"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:element name="VehicleServInfo" type="VehicleServInfo"/>
<xs:complexType name="WarrantyInfo">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="ClaimNo" type="xs:string"/>
<xs:attribute name="WarrantyOp" type="xs:string"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="WarrantyInfo" type="WarrantyInfo"/>
</xs:schema>
 
G

Guest

I have not tried to create a DataSet when inheritance was involved, but you
might try creating a base ComplexType for things that can contain
ContactInfos and then extend that class to the current ContactInfo
containers. Or xsd.exe may complain about the inheritance. :( Good luck.

An example of setting up inheritance in an Xml Schema is here:
http://www.15seconds.com/issue/031209.htm
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top