Génération de la structure relationnelle d'un DataSet à partir de XSD
Cette section propose une vue d'ensemble de la façon dont le schéma relationnel d'un DataSet est construit à partir d'un document de schéma en langage XSD (XML Schema Definition). En règle générale, pour chaque élément enfant complexType d'un élément de schéma, une table est générée dans le DataSet. La structure de cette table est déterminée par la définition du type complexe. Des tables sont créées dans le DataSet pour les éléments de niveau supérieur du schéma. Toutefois, une table est créée pour un élément complexType de niveau supérieur uniquement lorsque l'élément complexType est imbriqué dans un autre élément complexType, auquel cas l'élément complexType imbriqué est mappé à un DataTable du DataSet.
Pour plus d'informations sur le langage XSD (XML Schema Definition), consultez XML Schema Part 0: Primer Recommendation, XML Schema Part 1: Structures Recommendation et XML Schema Part 2: Datatypes Recommendation, sur le site Web du W3C (World Wide Web Consortium), à l'adresse http://www.w3.org/TR/.
L'exemple suivant présente un schéma XML où customers
est l'élément enfant de l'élément MyDataSet
, qui est un élément du DataSet.
<xs:schema id="SomeID"
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="customers" >
<xs:complexType >
<xs:sequence>
<xs:element name="CustomerID" type="xs:integer"
minOccurs="0" />
<xs:element name="CompanyName" type="xs:string"
minOccurs="0" />
<xs:element name="Phone" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
Dans l'exemple précédent, l'élément customers
est un élément de type complexe. Par conséquent, la définition du type complexe est analysée et le processus de mappage crée la table suivante.
Customers (CustomerID , CompanyName, Phone)
Le type de données de chaque colonne de la table est dérivé du type XSD de l'élément ou de l'attribut spécifié correspondant. Pour obtenir une liste des types de données XSD et des types de données .NET Framework correspondants, consultez Prise en charge des types de données entre des types XSD et des types .NET Framework.
Remarque Si l'élément
customers
est d'un type de données XSD simple, comme integer, aucune table n'est générée. Des tables sont créées uniquement pour les éléments de niveau supérieur de type complexe.
Dans le schéma XML suivant, l'élément Schema a deux éléments enfants, InStateCustomers
et OutOfStateCustomers
.
<xs:schema id="SomeID"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="InStateCustomers" type="customerType" />
<xs:element name="OutOfStateCustomers" type="customerType" />
<xs:complexType name="customerType" >
...
</xs:complexType>
<xs:element name="MyDataSet" msdata:IsDataSet="true">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element ref="customers" />
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
Les éléments enfants InStateCustomers
et OutOfStateCustomers
sont tous deux des éléments de type complexe (customerType
). Par conséquent, le processus de mappage génère les deux tables identiques suivantes dans le DataSet.
InStateCustomers (CustomerID , CompanyName, Phone)
OutOfStateCustomers (CustomerID , CompanyName, Phone)
Dans cette section
- Mappage de contraintes XSD à des contraintes de DataSet
Décrit les éléments de schémas XML qui servent à créer des contraintes uniques et de clé étrangère dans un DataSet. - Génération des relations d'un DataSet à partir de XSD
Décrit les éléments de schémas XML qui servent à créer des relations entre colonnes de table dans un DataSet. - Fonctionnement de la corrélation entre contraintes et relations
Explique comment des relations sont créées implicitement lors de l'utilisation d'éléments de schémas XML pour créer des contraintes dans un DataSet.
Rubriques connexes
- XML et le DataSet
Explique comment charger et conserver la structure relationnelle et les données d'un DataSet sous forme de données XML. - Référence XSD (schéma XML)
Présente des informations de référence sur le langage XSD (XML Schema Definition).