Compartir a través de


Deducir columnas

Al deducir un esquema para un DataSet a partir de un documento XML, una vez que ADO.NET ha determinado qué elementos se deben deducir como tablas, determina (desde los restantes elementos y atributos XML) qué columnas hay que deducir para dichas tablas. Como la información del tipo de datos sólo está disponible con un esquema en línea, el tipo de datos de una columna inferida es System.String. Las siguientes estructuras XML dan como resultado columnas de tabla.

Atributos

Como se ha definido en Deducir tablas, un elemento que tenga atributos se deducirá como una tabla. Los atributos de dicho elemento se deducirán entonces como columnas de la tabla. La propiedad ColumnMapping de las columnas se establecerá como MappingType.Attribute para asegurarse de que los nombres de columna se escribirán como atributos si se vuelve a escribir el esquema en XML. Los valores de los atributos se almacenan en una fila de la tabla. Por ejemplo, tomemos el siguiente código XML:

<DocumentElement>
  <Element1 attr1="value1" attr2="value2"/>
</DocumentElement>

El proceso de inferencia producirá una tabla llamada "Element1" con dos columnas, "attr1" y "attr2". La propiedad ColumnMapping de ambas columnas se establecerá como MappingType.Attribute.

DataSet: DocumentElement

Table: Element1

attr1 attr2
value1 value2

Elementos sin atributos o elementos secundarios

Si un elemento no tiene elementos secundarios o atributos, se deducirá como una columna. La propiedad ColumnMapping de la columna se establecerá en MappingType.Element. El texto de los elementos secundarios se almacena en una fila de la tabla. Por ejemplo, tomemos el siguiente código XML:

<DocumentElement>
  <Element1>
    <ChildElement1>Text1</ChildElement1>
    <ChildElement2>Text2</ChildElement2>
  </Element1>
</DocumentElement>

El proceso de inferencia producirá una tabla denominada "Element1" con dos columnas, "ChildElement1" y "ChildElement2". La propiedad ColumnMapping de ambas columnas se establecerá como MappingType.Element.

DataSet: DocumentElement

Table: Element1

ChildElement1 ChildElement2
Text1 Text2

Vea también

Deducir la estructura relacional de DataSet de XML | Cargar DataSet desde XML | Cargar la información de esquema de DataSet desde XML | XML y DataSet | Crear y utilizar DataSets