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


Наследование реляционной структуры набора данных от схемы 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 имеет два дочерних элемента и OutOfStateCustomersInStateCustomers .

<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-данных.

См. также