Limitations des inférences

Le processus d'inférence d'un schéma de l'objet DataSet à partir de XML peut aboutir à des schémas différents en fonction des éléments XML figurant dans chaque document. 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 produit un DataSet nommé « DocumentElement » et une table nommée « Element1 », car « Element1 » est un élément récurrent.

DataSet : DocumentElement

Table : Element1

Element1_Text
Text1
Text2

Toutefois, pour « Document2 », le processus d’inférence produit un DataSet nommé « NewDataSet » et une table nommée « DocumentElement ». « Element1 » est déduit sous forme de colonne, car il n’a pas d’attributs ni d’é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 d’un schéma DataSet avec un schéma XML, consultez Dérivation de la structure relationnelle DataSet à partir d’un schéma XML (XSD).

Voir aussi