Zuordnen von für geschachtelte Elemente angegebenen Beziehungen
Ein Schema kann eine msdata:Relationship-Anmerkung enthalten, um die Zuordnung zwischen zwei beliebigen Elementen im Schema anzugeben. Die beiden in msdata:Relationship angegebenen Elemente können, müssen jedoch nicht, im Schema geschachtelt sein. Der Zuordnungsprozess verwendet msdata:Relationship im Schema, um die Primärschlüssel-/Fremdschlüsselbeziehung zwischen den beiden Spalten zu generieren.
Das folgende Beispiel zeigt ein XML-Schema, in dem das OrderDetail-Element ein untergeordnetes Element von Order ist. msdata:Relationship identifiziert diese Parent-Child-Beziehung und gibt an, dass die OrderNumber-Spalte der daraus resultierenden Order-Tabelle sich auf die OrderNo-Spalte der daraus resultierenden OrderDetail-Tabelle bezieht.
<xs:schema id="MyDataSet"
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>
Der XML-Schemazuordnungsprozess erstellt Folgendes im DataSet:
Eine Order-Tabelle und eine OrderDetail-Tabelle.
Order(OrderNumber, EmpNumber) OrderDetail(OrderNo, ItemNo)
Eine Beziehung zwischen den Tabellen Order und OrderDetail. Für die Nested-Eigenschaft für diese Beziehung ist True festgelegt, weil die Elemente Order und OrderDetail im Schema geschachtelt sind.
ParentTable: Order ParentColumns: OrderNumber ChildTable: OrderDetail ChildColumns: OrderNo RelationName: OrdODRelation Nested: True
Der Zuordnungsprozess erstellt keine Einschränkungen.
Siehe auch
Generieren von DataSet-Beziehungen aus einem XML-Schema (XSD) | Zuordnen von XML-Schema (XSD)-Einschränkungen zu DataSet-Einschränkungen | Datentypunterstützung zwischen XML-Schematypen (XSD) und .NET Framework-Typen