入れ子になっていない要素間のリレーションの指定
要素が入れ子になっていない場合、暗黙的なリレーションは作成されません。 それに対し、msdata:Relationship 注釈を使用すると、入れ子になっていない要素間にリレーションを明示的に指定できます。
互いに入れ子になっていない Order 要素と OrderDetail 要素の間に msdata:Relationship 注釈を指定する XML スキーマの例を次に示します。 msdata:Relationship 注釈は、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>
次に示すように、XML スキーマ定義言語 (XSD) スキーマ マッピング処理によって、Order テーブルと OrderDetail テーブルを含む DataSet が作成され、それらのテーブル間にリレーションシップが指定されます。
RelationName: OrdOrderDetailRelation
ParentTable: Order
ParentColumns: OrderNumber
ChildTable: OrderDetail
ChildColumns: OrderNo
Nested: False