Zuordnen von für geschachtelte Elemente angegebenen Beziehungen (ADO.NET)
Aktualisiert: November 2007
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 OrderNumber-Spalte der daraus resultierenden Order-Tabelle 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>
Durch den XML-Schemazuordnungsprozess werden im DataSet folgende Elemente erstellt:
Eine Order-Tabelle und eine OrderDetail-Tabelle.
Order(OrderNumber, EmpNumber) OrderDetail(OrderNo, ItemNo)
Eine Beziehung zwischen der Order-Tabelle und der OrderDetail-Tabelle. Die Nested-Eigenschaft für diese Beziehung wird 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.
Siehe auch
Konzepte
Generieren von DataSet-Beziehungen aus einem XML-Schema (XSD)
Weitere Ressourcen
Zuordnen von XSD-Einschränkungen (XML-Schema) zu DataSet-Einschränkungen