Zuordnen von Beziehungen, die für geschachtelte Elemente angegeben sind
Ein Schema kann eine msdata:Relationship-Anmerkung enthalten, um die Zuordnung zwischen zwei beliebigen Elementen im Schema explizit anzugeben. Die beiden in msdata:Relationship angegebenen Elemente können im Schema geschachtelt sein. Sie müssen aber nicht geschachtelt sein. Der Zuordnungsprozess verwendet msdata:Relationship im Schema, um die Primärschlüssel-Fremdschlüssel-Beziehung zwischen den beiden Spalten zu generieren.
Im folgenden Beispiel wird ein XML-Schema dargestellt, in dem das OrderDetail-Element ein untergeordnetes Element des Order-Elements ist. msdata:Relationship legt die Beziehung zwischen übergeordneten und untergeordneten Elementen für diese Elemente fest und gibt an, dass sich die Spalte OrderNumber der daraus resultierenden Tabelle Order auf die Spalte OrderNo der daraus resultierenden Tabelle OrderDetail bezieht.
<xs:schema id="MyDataSet" xmlns=""
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="MyDataSet" msdata:IsDataSet="true">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="Order">
<xs:complexType>
<xs:sequence>
<xs:element name="OrderNumber" type="xs:string" />
<xs:element name="EmpNumber" type="xs:string" />
<xs:element name="OrderDetail">
<xs:annotation>
<xs:appinfo>
<msdata:Relationship name="OrdODRelation"
msdata:parent="Order"
msdata:child="OrderDetail"
msdata:parentkey="OrderNumber"
msdata:childkey="OrderNo"/>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="OrderNo" type="xs:string" />
<xs:element name="ItemNo" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
Durch den XML-Schemazuordnungsprozess werden im DataSet folgende Elemente erstellt:
Eine Tabelle Order und eine Tabelle OrderDetail.
Order(OrderNumber, EmpNumber) OrderDetail(OrderNo, ItemNo)
Eine Beziehung zwischen der Tabelle Order und der Tabelle OrderDetail. Die Nested-Eigenschaft für diese Beziehung ist auf True festgelegt, da das Order-Element und das OrderDetail-Element im Schema geschachtelt sind.
ParentTable: Order ParentColumns: OrderNumber ChildTable: OrderDetail ChildColumns: OrderNo RelationName: OrdODRelation Nested: True
Der Zuordnungsprozess erstellt keine Einschränkungen.