Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ein XSD-Schema (XML Schema Definition Language) kann komplexe Typen enthalten, die ineinander geschachtelt sind. In diesem Fall wendet der Zuordnungsprozess die Standardzuordnung an und erstellt folgende Elemente im DataSet:
Eine Tabelle für jeden der komplexen Typen (übergeordnet und untergeordnet).
Wenn keine eindeutige Einschränkung für das übergeordnete Element vorhanden ist, wird eine zusätzliche Primärschlüsselspalte pro Tabellendefinition mit dem Namen TableName_Id hinzugefügt, wobei TableName der Name der übergeordneten Tabelle ist.
Eine Primärschlüsseleinschränkung für die übergeordnete Tabelle, die die zusätzliche Spalte als Primärschlüssel identifiziert (durch Festlegen der
IsPrimaryKeyEigenschaft auf True). Die Einschränkung trägt den Namen "Constraint#", wobei # für 1, 2, 3 usw. steht. Der Standardname für die erste Einschränkung lautet z. B. Constraint1.Eine Fremdschlüsseleinschränkung für die untergeordnete Tabelle, die die zusätzliche Spalte als den auf den Primärschlüssel der übergeordneten Tabelle verweisenden Fremdschlüssel identifiziert. Die Einschränkung wird ParentTable_ChildTable benannt, wobei ParentTable der Name der übergeordneten Tabelle und ChildTable der Name der untergeordneten Tabelle ist.
Eine Datenbeziehung zwischen übergeordneten und untergeordneten Tabellen.
Das folgende Beispiel zeigt ein Schema, bei dem OrderDetail es sich um ein untergeordnetes Element von Order handelt.
<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: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
Orderund eineOrderDetailTabelle.Order(OrderNumber, EmpNumber, Order_Id) OrderDetail(OrderNo, ItemNo, Order_Id)Eine eindeutige Einschränkung für die
OrderTabelle. Beachten Sie, dass dieIsPrimaryKeyEigenschaft auf True festgelegt ist.ConstraintName: Constraint1 Type: UniqueConstraint Table: Order Columns: Order_Id IsPrimaryKey: TrueEine Fremdschlüsseleinschränkung für die
OrderDetailTabelle.ConstraintName: Order_OrderDetail Type: ForeignKeyConstraint Table: OrderDetail Columns: Order_Id RelatedTable: Order RelatedColumns: Order_IdEine Beziehung zwischen den
Order- undOrderDetail-Tabellen. DieNested-Eigenschaft für diese Beziehung ist aufTruegesetzt, weil dieOrder- undOrderDetail-Elemente im Schema geschachtelt sind.ParentTable: Order ParentColumns: Order_Id ChildTable: OrderDetail ChildColumns: Order_Id ParentKeyConstraint: Constraint1 ChildKeyConstraint: Order_OrderDetail RelationName: Order_OrderDetail Nested: True