Partager via


Limitations applicables à l'inférence

Le processus d'inférence du schéma d'un DataSet à partir de XML n'est pas déterministe, en ce sens que différentes instances de documents XML possédant à la base le même schéma peuvent aboutir à des schémas différents en fonction des éléments XML qu'ils contiennent. Examinons, par exemple, les documents XML suivants :

Document1 :

<DocumentElement>
  <Element1>Text1</Element1>
  <Element1>Text2</Element1>
</DocumentElement>

Document2 :

<DocumentElement>
  <Element1>Text1</Element1>
</DocumentElement>

Pour « Document1 », le processus d'inférence produira un DataSet nommé « DocumentElement » et une table nommée « Element1 », car « Element1 » est un élément qui se répète.

DataSet : DocumentElement

Table : Element1

Element1_Text
Text1
Text2

Toutefois, pour « Document2 », le processus d'inférence produira un DataSet nommé « NewDataSet » et une table nommée « DocumentElement ». « Element1 » sera déduit en tant que colonne, car il n'a ni attributs, ni éléments enfants.

DataSet : NewDataSet

Table : DocumentElement

Element1
Text1

Ces deux documents XML peuvent avoir été conçus de manière à produire le même schéma, mais le processus d'inférence donne des résultats très différents en fonction des éléments contenus dans chaque document.

Pour éviter les différences qui peuvent se produire lors de la génération d'un schéma à partir d'un document XML, il est recommandé de spécifier explicitement un schéma à l'aide du langage XSD (XML Schema Definition) ou de XDR (XML-Data Reduced) lors du chargement d'un DataSet à partir de XML. Pour plus d'informations sur la spécification explicite du schéma d'un DataSet à l'aide de XSD, consultez Génération de la structure relationnelle d'un DataSet à partir de XSD.

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