Inférence des colonnes
Lors de l'inférence du schéma d'un DataSet à partir d'un document XML, une fois que ADO.NET a identifié les éléments à déduire en tant que tables, il détermine, à partir des éléments et attributs XML restants, les colonnes à déduire pour ces tables. Les informations de types de données étant disponibles uniquement avec un schéma inline, le type de données d'une colonne déduite est System.String. Les structures XML suivantes donneront des colonnes de table.
Attributs
Comme défini dans Inférence des tables, un élément assorti d'attributs sera déduit en tant que table. Les attributs de cet élément seront ensuite déduits en tant que colonnes de cette table. La propriété ColumnMapping des colonnes aura pour valeur MappingType.Attribute. De cette façon, les noms des colonnes seront écrits en tant qu'attributs, ce qui sera utile si le schéma doit être réécrit en XML. Les valeurs des attributs sont stockées dans une ligne de la table. Examinons, par exemple, le code XML suivant :
<DocumentElement>
<Element1 attr1="value1" attr2="value2"/>
</DocumentElement>
Le processus d'inférence produira une table nommée « Element1 », avec deux colonnes, « attr1 » et « attr2 ». La propriété ColumnMapping des deux colonnes aura pour valeur MappingType.Attribute.
DataSet : DocumentElement
Table : Element1
attr1 | attr2 |
---|---|
value1 | value2 |
Éléments dépourvus d'attributs ou d'éléments enfants
Si un élément ne comporte ni éléments enfants, ni attributs, il sera déduit en tant que colonne. La propriété ColumnMapping de la colonne aura pour valeur MappingType.Element. Le texte des éléments enfants est stocké dans une ligne de la table. Examinons, par exemple, le code XML suivant :
<DocumentElement>
<Element1>
<ChildElement1>Text1</ChildElement1>
<ChildElement2>Text2</ChildElement2>
</Element1>
</DocumentElement>
Le processus d'inférence produira une table nommée « Element1 », avec deux colonnes, « ChildElement1 » et « ChildElement2 ». La propriété ColumnMapping des deux colonnes aura pour valeur MappingType.Element.
DataSet : DocumentElement
Table : Element1
ChildElement1 | ChildElement2 |
---|---|
Text1 | Text2 |
Voir aussi
Inférence de la structure relationnelle d'un DataSet à partir de XML | Chargement d'un DataSet à partir de XML | Chargement des informations de schéma d'un DataSet à partir de XML | XML et le DataSet | Création et utilisation de DataSets