Résumé du processus d'inférence du schéma d'un DataSet
Le processus d'inférence identifie d'abord, à partir du document XML, les éléments qui seront déduits en tant que tables. À partir du XML restant, le processus d'inférence détermine les colonnes qui feront partie de ces tables. Pour les tables imbriquées, le processus d'inférence génère des objets DataRelation et ForeignKeyConstraint imbriqués.
Les règles d'inférence sont brièvement résumées ci-dessous :
- Les éléments assortis d'attributs sont déduits en tant que tables.
- Les éléments possédant des éléments enfants sont déduits en tant que tables.
- Les éléments qui se répètent sont déduits une seule fois en tant que table.
- Si l'élément document, ou racine, ne comporte pas d'attributs et pas d'éléments enfants qui seraient déduits en tant que colonnes, il est déduit en tant que DataSet. Sinon, l'élément document est déduit en tant que table.
- Les attributs sont déduits en tant que colonnes.
- Les éléments dépourvus d'attributs ou d'éléments enfants et qui ne se répètent pas sont déduits en tant que colonnes.
- Pour les éléments qui sont déduits en tant que tables imbriquées dans d'autres éléments également déduits en tant que tables, un DataRelation imbriqué est créé entre les deux tables. Une nouvelle colonne clé primaire, nommée « NomTable_ID » est ajoutée aux deux tables et utilisée par le DataRelation. Un ForeignKeyConstraint est créé entre les deux tables utilisant la colonne « NomTable_ID ».
- Pour les éléments déduits en tant que tables et qui contiennent du texte mais n'ont pas d'éléments enfants, une nouvelle colonne nommée « NomTable_Text » est créée pour le texte de chacun de ces éléments. Si un élément déduit en tant que table comprend du texte, mais également des éléments enfants, le texte est ignoré.
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