Поделиться через


Вывод столбцов (ADO.NET)

Обновлен: November 2007

ADO.NET определяет по XML-документу, какие элементы выводятся как таблицы для DataSet, а затем выводятся столбцы для этих таблиц. В ADO.NET 2.0 появился новый механизм вывода схемы, который выводит строго типизированный тип данных для каждого элемента simpleType. В предыдущих версиях выводимый элемент simpleType всегда имел тип данных xsd:string.

Миграция и обратная совместимость

Метод ReadXml принимает в качестве аргумента тип InferSchema. Этот аргумент позволяет задать поведение, совместимое с предыдущими версиями. Допустимые значения для перечисления InferSchema приведены в следующей таблице.

  • InferSchema
    Обеспечивает обратную совместимость, выводя в качестве простого типа всегда тип String.

  • InferTypedSchema
    Выводит строго типизированный тип данных. Вызывает исключение при использовании с DataTable.

  • IgnoreSchema
    Пропускает любую встроенную схему и считывает данные в существующую схему DataSet.

Атрибуты

Как определено в разделе Вывод таблиц, элемент с атрибутами будет выведен как таблица. Атрибуты этого элемента будут выведены как столбцы для таблицы. Свойству ColumnMapping столбцов будет присвоено значение MappingType.Attribute, чтобы имена столбцов были записаны как атрибуты, если схема записывается обратно в XML. Значения атрибутов хранятся в строке в таблице. Например, рассмотрим следующий XML-код.

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

Процесс вывода сформирует таблицу с именем Element1 с двумя столбцами, attr1 и attr2. Свойству ColumnMapping обоих столбцов будет присвоено значение MappingType.Attribute.

DataSet: DocumentElement

Таблица: Element1

attr1

attr2

value1

value2

Элементы без атрибутов или дочерние элементы

Если элемент не имеет дочерних элементов или атрибутов, то он будет выведен как столбец. Свойству ColumnMapping столбца будет присвоено значение MappingType.Element. Текст для дочерних элементов хранится в строке в таблице. Например, рассмотрим следующий XML-код.

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

Процесс вывода сформирует таблицу с именем Element1 с двумя столбцами, ChildElement1 и ChildElement2. Свойству ColumnMapping обоих столбцов будет присвоено значение MappingType.Element.

DataSet: DocumentElement

Таблица: Element1

ChildElement1

ChildElement2

Text1

Text2

См. также

Основные понятия

Загрузка DataSet из XML (ADO.NET)

Загрузка сведений о схеме DataSet из XML (ADO.NET)

Другие ресурсы

Вывод реляционной структуры DataSet из XML (ADO.NET)

Использование XML в DataSet (ADO.NET)

Объекты DataSet, DataTable и DataView (ADO.NET)