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