Наследование реляционной структуры набора данных от схемы XML (XSD)
В этом разделе приведены общие сведения о построении реляционной схемы DataSet
на основе документа схемы на языке XSD. Как правило, для каждого complexType
дочернего элемента схемы в таблице создается DataSet
таблица. Структура таблицы задается определением сложного типа. Таблицы создаются в DataSet
элементах верхнего уровня схемы. Однако таблица создается только для элемента верхнего уровня complexType
, если complexType
элемент вложен внутри другого complexType
элемента, в этом случае complexType
вложенный элемент сопоставляется с элементом DataTable
внутри DataSet
.
Дополнительные сведения о XSD см. в разделе "Схема XML" , часть 0: "Рекомендация по схеме XML", часть 1. Рекомендации по структурам и xml-схеме , часть 2: рекомендация по типам данных.
В следующем примере показана схема XML, где customers
является дочерним элементом MyDataSet
элемента, который является элементом DataSet .
<xs:schema id="SomeID"
xmlns=""
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="MyDataSet" msdata:IsDataSet="true">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="customers" >
<xs:complexType >
<xs:sequence>
<xs:element name="CustomerID" type="xs:integer"
minOccurs="0" />
<xs:element name="CompanyName" type="xs:string"
minOccurs="0" />
<xs:element name="Phone" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
В предыдущем примере элемент customers
является элементом сложного типа. Поэтому проводится синтаксический анализ определения сложного типа, а процесс сопоставления создает следующую таблицу.
Customers (CustomerID, CompanyName, Phone)
Тип данных каждого столбца в таблице получается из типа схемы XML соответствующего элемента или указанного атрибута.
Примечание.
Если элемент customers
является простым типом данных схемы XML, например целым числом, таблица не создается. Таблицы создаются только для элементов верхнего уровня, которые являются сложными типами.
В следующей xml-схеме элемент Schema имеет два дочерних элемента и OutOfStateCustomers
InStateCustomers
.
<xs:schema id="SomeID"
xmlns=""
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="InStateCustomers" type="customerType" />
<xs:element name="OutOfStateCustomers" type="customerType" />
<xs:complexType name="customerType" >
</xs:complexType>
<xs:element name="MyDataSet" msdata:IsDataSet="true">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element ref="customers" />
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
Дочерние элементы InStateCustomers
и OutOfStateCustomers
являются элементами сложного типа (customerType
). Таким образом, процесс сопоставления создает следующие две идентичные таблицы в .DataSet
InStateCustomers (CustomerID, CompanyName, Phone)
OutOfStateCustomers (CustomerID, CompanyName, Phone)
В этом разделе
Сопоставление ограничений схемы XML (XSD) с ограничениями DataSet
Описывает элементы схемы XML, используемые для создания ограничений уникальных и внешних ключей в объекте DataSet
.
Создание отношений DataSet из схемы XML (XSD)
Описывает элементы схемы XML, используемые для создания связей между столбцами таблицы в объекте DataSet
.
Ограничения и отношения схемы XML
Описывает, как отношения создаются неявно при использовании элементов схемы XML для создания ограничений в объекте DataSet
.
Связанные разделы
Использование XML в наборах данных
Описывает загрузку и сохранение реляционной структуры и данных в DataSet
виде XML-данных.