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 XML Schema Definition (XSD)-Sprachschema kann komplexe Typen aufweisen, die ineinander geschachtelt sind. In diesem Fall wendet der Zuordnungsprozess die Standardzuordnung an und erstellt Folgendes im DataSet:
- Eine Tabelle für jeden komplexen Typ (über- und untergeordnet).
- Wenn keine unique-Einschränkung im übergeordneten Typ vorliegt, enthält jede Tabellendefinition eine zusätzliche Primärschlüsselspalte namens "TableName_Id", 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 (indem für die IsPrimaryKey-Eigenschaft True festgelegt wird). Die Einschränkung wird "Constraint#" genannt, wobei # für 1, 2, 3 usw. steht. Beispielsweise lautet der Standardname für die erste Einschränkung "Constraint1".
- Eine Fremdschlüsseleinschränkung für die untergeordnete Tabelle, die die zusätzliche Spalte als fremden Schlüssel identifiziert, der auf den Primärschlüssel der übergeordneten Tabelle verweist. Die Einschränkung wird "ParentTable_ChildTable" genannt, wobei ParentTable der Name der übergeordneten Tabelle und ChildTable der Name der untergeordneten Tabelle ist.
- Eine Datenbeziehung zwischen den übergeordneten und untergeordneten Tabellen.
Das folgende Beispiel zeigt ein Schema, in dem OrderDetail ein untergeordnetes Element des Order-Elements ist.
<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: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, Order_Id) OrderDetail(OrderNo, ItemNo, Order_Id)Eine unique-Einschränkung für die Order-Tabelle. Beachten Sie, dass für die IsPrimaryKey-Eigenschaft True festgelegt ist.
ConstraintName: Constraint1 Type: UniqueConstraint Table: Order Columns: Order_Id IsPrimaryKey: TrueEine Fremdschlüsseleinschränkung für die OrderDetail-Tabelle.
ConstraintName: Order_OrderDetail Type: ForeignKeyConstraint Table: OrderDetail Columns: Order_Id RelatedTable: Order RelatedColumns: Order_IdEine 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: Order_Id ChildTable: OrderDetail ChildColumns: Order_Id ParentKeyConstraint: Constraint1 ChildKeyConstraint: Order_OrderDetail RelationName: Order_OrderDetail Nested: True
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