Impliciete relaties tussen geneste schema-elementen toewijzen
Een XSD-schema (XML Schema Definition Language) kan complexe typen in elkaar genest hebben. In dit geval past het toewijzingsproces standaardtoewijzing toe en maakt het volgende in de DataSet:
Eén tabel voor elk van de complexe typen (bovenliggend en onderliggend).
Als er geen unieke beperking bestaat op het bovenliggende item, wordt er één extra primaire-sleutelkolom per tabeldefinitie met de naam TableName_Id waarbij TableName de naam van de bovenliggende tabel is.
Een primaire-sleutelbeperking in de bovenliggende tabel die de extra kolom identificeert als de primaire sleutel (door de eigenschap IsPrimaryKey in te stellen op True). De beperking heet Constraint# waarbij #1, 2, 3 enzovoort is. De standaardnaam voor de eerste beperking is bijvoorbeeld Constraint1.
Een refererende-sleutelbeperking in de onderliggende tabel die de extra kolom identificeert als de refererende sleutel die verwijst naar de primaire sleutel van de bovenliggende tabel. De beperking heet ParentTable_ChildTable waarbij ParentTable de naam is van de bovenliggende tabel en ChildTable de naam van de onderliggende tabel is.
Een gegevensrelatie tussen de bovenliggende en onderliggende tabellen.
In het volgende voorbeeld ziet u een schema waarin OrderDetail een onderliggend element van Order is.
<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>
Het toewijzingsproces voor xml-schema's maakt het volgende in de DataSet:
Een tabel Order en OrderDetail .
Order(OrderNumber, EmpNumber, Order_Id) OrderDetail(OrderNo, ItemNo, Order_Id)
Een unieke beperking in de tabel Order . Houd er rekening mee dat de eigenschap IsPrimaryKey is ingesteld op True.
ConstraintName: Constraint1 Type: UniqueConstraint Table: Order Columns: Order_Id IsPrimaryKey: True
Een beperking voor refererende sleutels in de tabel OrderDetail .
ConstraintName: Order_OrderDetail Type: ForeignKeyConstraint Table: OrderDetail Columns: Order_Id RelatedTable: Order RelatedColumns: Order_Id
Een relatie tussen de tabellen Order en OrderDetail . De geneste eigenschap voor deze relatie is ingesteld op True omdat de elementen Order en OrderDetail zijn genest in het schema.
ParentTable: Order ParentColumns: Order_Id ChildTable: OrderDetail ChildColumns: Order_Id ParentKeyConstraint: Constraint1 ChildKeyConstraint: Order_OrderDetail RelationName: Order_OrderDetail Nested: True