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).