Résumé du processus d'inférence du schéma de données

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-après :

  • 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 de document, ou racine, ne comporte pas d'attributs ni d'éléments enfants qui seraient déduits en tant que colonnes, il est déduit en tant qu'objet DataSet. Sinon, l'élément de 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, une DataRelation imbriquée est créée entre les deux tables. Une nouvelle colonne clé primaire nommée TableName_Id est ajoutée aux deux tables et utilisée par DataRelation. Une ForeignKeyConstraint est créée entre les deux tables à l’aide de la colonne TableName_Id.

  • Pour les éléments déduits sous forme de tables et qui contiennent du texte, mais qui n’ont aucun élément enfant, une nouvelle colonne nommée TableName_Text est créée pour le texte de chacun des é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