Déduction du texte d'un élément
Si un élément contient du texte et n’a pas d’élément enfant à déduire en tant que tables (comme des éléments assortis d’attributs ou qui se répètent), une nouvelle colonne nommée TableName_Text est ajoutée à la table inférée pour l’élément. Le texte contenu dans l'élément sera ajouté à une ligne de la table et stocké dans la nouvelle colonne. La propriété ColumnMapping de la nouvelle colonne aura pour valeur MappingType.SimpleContent.
Examinons, par exemple, le code XML suivant.
<DocumentElement>
<Element1 attr1="value1">Text1</Element1>
</DocumentElement>
Le processus d’inférence produira une table nommée Element1, avec deux colonnes, attr1 et Element1_Text. La propriété ColumnMapping de la colonne attr1 aura pour valeur MappingType.Element. La propriété ColumnMapping de la colonne Element1_Text aura pour valeur MappingType.SimpleContent.
DataSet : DocumentElement
Table : Element1
attr1 | Element1_Text |
---|---|
valeur1 | Text1 |
Si un élément contient du texte, mais possède également des éléments enfants contenant du texte, une colonne ne sera pas ajoutée à la table pour stocker le texte contenu dans l'élément. Ce texte sera ignoré, alors que le texte des éléments enfants sera inclus dans une ligne de la table. Examinons, par exemple, le code XML suivant.
<Element1>
Text1
<ChildElement1>Text2</ChildElement1>
Text3
</Element1>
Le processus d’inférence produira une table nommée Element1, avec une colonne nommée ChildElement1. Le texte de l’élément ChildElement1 sera inclus dans une ligne de la table. L'autre texte sera ignoré. La propriété ColumnMapping de la colonne ChildElement1 aura pour valeur MappingType.Element.
DataSet : DocumentElement
Table : Element1
ChildElement1 |
---|
Text2 |