Określanie relacji między elementami bez zagnieżdżania
Jeśli elementy nie są zagnieżdżone, nie są tworzone żadne niejawne relacje. Można jednak jawnie określić relacje między elementami, które nie są zagnieżdżone przy użyciu adnotacji msdata:Relationship .
W poniższym przykładzie przedstawiono schemat XML, w którym adnotacja msdata:Relationship jest określona między elementami Order i OrderDetail , które nie są zagnieżdżone. Adnotacja msdata:Relationship jest określona jako element podrzędny elementu Schema .
<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="OrderDetail">
<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:element name="Order">
<xs:complexType>
<xs:sequence>
<xs:element name="OrderNumber" type="xs:string" />
<xs:element name="EmpNumber" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:annotation>
<xs:appinfo>
<msdata:Relationship name="OrdOrderDetailRelation"
msdata:parent="Order"
msdata:child="OrderDetail"
msdata:parentkey="OrderNumber"
msdata:childkey="OrderNo"/>
</xs:appinfo>
</xs:annotation>
</xs:schema>
Proces mapowania schematu języka XML (XSD) tworzy tabele DataSet Order i OrderDetail oraz relację określoną między tymi dwiema tabelami, jak pokazano poniżej.
RelationName: OrdOrderDetailRelation
ParentTable: Order
ParentColumns: OrderNumber
ChildTable: OrderDetail
ChildColumns: OrderNo
Nested: False