Вывод столбцов (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)