Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Un schéma XSD (XML Schema Definition Language) peut avoir des types complexes imbriqués entre eux. Dans ce cas, le processus de mappage applique le mappage par défaut et crée les éléments suivants dans le DataSet.
Un tableau pour chacun des types complexes (parent et enfant).
Si aucune contrainte unique n’existe sur le parent, une colonne de clé primaire supplémentaire par définition de table nommée TableName_Id où TableName est le nom de la table parente.
Contrainte de clé primaire sur la table parente identifiant la colonne supplémentaire comme clé primaire (en définissant la
IsPrimaryKeypropriété sur True). La contrainte est nommée Constraint# où # est 1, 2, 3, et ainsi de suite. Par exemple, le nom par défaut de la première contrainte est Constraint1.Une contrainte de clé étrangère sur la table enfant, qui identifie la colonne supplémentaire en tant que clé étrangère faisant référence à la clé primaire de la table parente. La contrainte est nommée ParentTable_ChildTable où ParentTable est le nom de la table parente et ChildTable est le nom de la table enfant.
Une relation de données entre les tables parente et enfant.
L’exemple suivant montre un schéma où OrderDetail est un élément enfant de Order.
<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>
Le processus de mappage de schéma XML crée les éléments suivants dans le DataSet :
Une table
OrderetOrderDetail.Order(OrderNumber, EmpNumber, Order_Id) OrderDetail(OrderNo, ItemNo, Order_Id)Contrainte unique de la table
Order. Notez que la propriétéIsPrimaryKeyest définie sur la valeur True.ConstraintName: Constraint1 Type: UniqueConstraint Table: Order Columns: Order_Id IsPrimaryKey: TrueContrainte de clé étrangère sur la table
OrderDetail.ConstraintName: Order_OrderDetail Type: ForeignKeyConstraint Table: OrderDetail Columns: Order_Id RelatedTable: Order RelatedColumns: Order_IdRelation entre les tables
OrderetOrderDetail. La propriétéNestedde cette relation est définieTruecar les élémentsOrderetOrderDetailsont imbriqués dans le schéma.ParentTable: Order ParentColumns: Order_Id ChildTable: OrderDetail ChildColumns: Order_Id ParentKeyConstraint: Constraint1 ChildKeyConstraint: Order_OrderDetail RelationName: Order_OrderDetail Nested: True