Compartilhar via


Derivando a estrutura relacional do Conjunto de Dados do Esquema XML (XSD)

Esta seção fornece uma visão geral de como o esquema relacional de um DataSet é criado a partir de um documento de esquema XSD (linguagem de definição de esquema XML). Em geral, para cada complexType elemento filho de um elemento de esquema, uma tabela é gerada no DataSet. A estrutura da tabela é determinada pela definição do tipo complexo. As tabelas são criadas no DataSet para os elementos de nível superior no esquema. No entanto, uma tabela só é criada para um elemento de nível complexType superior quando o complexType elemento é aninhado dentro de outro complexType elemento, nesse caso, o elemento aninhado complexType é mapeado para um DataTable dentro do DataSet.

Para obter mais informações sobre o XSD, consulte o esquema XML do W3C (World Wide Web Consortium) Parte 0: Recomendação do Primer, o esquema XML parte 1: recomendação de estruturas e o esquema XML parte 2: recomendação de tipos de dados.

O exemplo a seguir demonstra um esquema XML onde customers está o elemento filho do MyDataSet elemento, que é um DataSet elemento.

<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>

No exemplo anterior, o elemento customers é um elemento de tipo complexo. Portanto, a definição de tipo complexo é analisada e o processo de mapeamento cria a tabela a seguir.

Customers (CustomerID, CompanyName, Phone)

O tipo de dados de cada coluna na tabela é derivado do tipo de esquema XML do elemento ou atributo correspondente especificado.

Observação

Se o elemento customers for de um tipo de dados de esquema XML simples, como inteiro, nenhuma tabela será gerada. As tabelas são criadas apenas para os elementos de nível superior que são tipos complexos.

No esquema XML seguinte, o elemento Schema tem dois elementos filhos, InStateCustomers e OutOfStateCustomers.

<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>

Tanto os elementos InStateCustomers quanto os elementos filho OutOfStateCustomers são elementos de tipo complexo (customerType). Portanto, o processo de mapeamento gera as duas tabelas idênticas no DataSet a seguir.

InStateCustomers (CustomerID, CompanyName, Phone)
OutOfStateCustomers (CustomerID, CompanyName, Phone)

Nesta seção

Mapeando restrições XSD (esquema XML) para restrições de conjunto de dados Descreve os elementos de esquema XML usados para criar restrições de chave exclusiva e estrangeira em um DataSet.

Gerando relações de DataSet a partir de XML Schema (XSD) Descreve os elementos de XML Schema usados para criar relações entre colunas de tabela em um DataSet.

Restrições e relações de esquema XML Descreve como as relações são criadas implicitamente ao usar elementos de esquema XML para criar restrições em um DataSet.

Usando XML em um Conjunto de Dados Descreve como carregar e persistir a estrutura relacional e os dados em dados DataSet como XML.

Consulte também