Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
После того как 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.
Набор данных: DocumentElement
Таблица: Элемент1
| attr1 | атрибут2 |
|---|---|
| значение1 | значение2 |
Элементы без атрибутов или дочерних элементов
Если элемент не имеет дочерних элементов или атрибутов, он будет выводиться как столбец. Для ColumnMapping свойства столбца будет задано значение MappingType.Element. Текст дочерних элементов хранится в одной строке таблицы. Например, рассмотрим следующий XML-код:
<DocumentElement>
<Element1>
<ChildElement1>Text1</ChildElement1>
<ChildElement2>Text2</ChildElement2>
</Element1>
</DocumentElement>
Процесс вывода создаст таблицу с именем Element1 с двумя столбцами, ChildElement1 и ChildElement2. Свойство ColumnMapping обоих столбцов будет иметь значение MappingType.Element.
Набор данных: DocumentElement
Таблица: Элемент1
| ChildElement1 | ChildElement2 |
|---|---|
| Текст1 | Текст2 |