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.
Dans un DataSet, vous créez une association entre deux colonnes ou plus en créant une relation parent-enfant. Il existe trois façons de représenter une DataSet relation au sein d’un schéma XSD (XML Schema Definition Language) :
spécifier des types complexes imbriqués ;
Utilisez l’annotation msdata :Relationship .
Spécifiez un xs :keyref sans l’annotation msdata :ConstraintOnly .
Types complexes imbriqués
Les définitions de type complexe imbriquées dans un schéma indiquent les relations parent-enfant des éléments. Le fragment de schéma XML suivant montre qu’il OrderDetail s’agit d’un élément enfant de l’élément Order .
<xs:element name="Order">
<xs:complexType>
<xs:sequence>
<xs:element name="OrderDetail" />
<xs:complexType>
</xs:complexType>
</xs:sequence>
</xs:complexType>
</xs:element>
Le processus de mappage de schéma XML crée des tables dans le DataSet correspondant aux types complexes imbriqués dans le schéma. Il crée également des colonnes supplémentaires utilisées comme colonnes parent-enfant pour les tables générées. Notez que ces colonnes parent-enfant spécifient des relations, à ne pas confondre avec les contraintes de clé primaire/clé étrangère.
msdata : Annotation de relation
L’annotation msdata :Relationship vous permet de spécifier explicitement les relations parent-enfant entre les éléments du schéma qui ne sont pas imbriqués. L’exemple suivant montre la structure de l’élément Relationship .
<msdata:Relationship name="CustOrderRelationship"
msdata:parent=""
msdata:child=""
msdata:parentkey=""
msdata:childkey="" />
Les attributs de l’annotation msdata :Relationship identifient les éléments impliqués dans la relation parent-enfant, ainsi que les parentkey éléments et childkey les attributs impliqués dans la relation. Le processus de mappage utilise ces informations pour générer des tables dans le DataSet et créer la relation clé primaire/clé étrangère entre ces tables.
Par exemple, le fragment de schéma suivant spécifie les éléments Order et OrderDetail au même niveau, sans imbrication. Le schéma spécifie une annotation msdata :Relationship , qui spécifie la relation parent-enfant entre ces deux éléments. Dans ce cas, une relation explicite doit être spécifiée à l’aide de l’annotation msdata :Relationship .
<xs:element name="MyDataSet" msdata:IsDataSet="true">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="OrderDetail">
<xs:complexType>
</xs:complexType>
</xs:element>
<xs:element name="Order">
<xs:complexType>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:annotation>
<xs:appinfo>
<msdata:Relationship name="OrdOrdDetailRelation"
msdata:parent="Order"
msdata:child="OrderDetail"
msdata:parentkey="OrderNumber"
msdata:childkey="OrderNo"/>
</xs:appinfo>
</xs:annotation>
Le processus de mappage utilise l’élément Relationship pour créer une relation parent-enfant entre la OrderNumber colonne de la Order table et la OrderNo colonne de la OrderDetail table dans le DataSet. Le processus de mappage spécifie uniquement la relation ; elle ne spécifie pas automatiquement de contraintes sur les valeurs de ces colonnes, comme les contraintes de clé primaire/clé étrangère dans les bases de données relationnelles.
Dans cette section
Mapper les relations implicites entre les éléments de schéma imbriqués Décrit les contraintes et relations qui sont implicitement créées dans un DataSet moment où des éléments imbriqués sont rencontrés dans le schéma XML.
Relations de mappage spécifiées pour les éléments imbriqués Décrit comment définir explicitement des relations dans un DataSet pour les éléments imbriqués dans le Schéma XML.
Spécifier des relations entre les éléments sans imbrication Décrit comment créer des relations entre des DataSet éléments de schéma XML qui ne sont pas imbriqués.
Sections connexes
Dérivation de la structure relationnelle DataSet à partir du schéma XML (XSD) Décrit la structure relationnelle ou le schéma d’un DataSet créé à partir du langage de définition de schémas XML (XSD).
Correspondance des contraintes du schéma XML (XSD) avec les contraintes du DataSet Décrit les éléments du schéma XML utilisés pour créer des contraintes d'unicité et de clés étrangères dans un DataSet.