Partilhar 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 (XML Schema Definition Language). 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 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, caso em que o elemento aninhado complexType é mapeado para um DataTable dentro do DataSet.

Para obter mais informações sobre o XSD, consulte o Esquema XML Parte 0 do World Wide Web Consortium (W3C): Recomendação de 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 é o elemento filho do MyDataSet elemento , que é um elemento 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>  

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.

Nota

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 a seguir, o elemento Schema tem dois filhos de elementos 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>  

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

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

Nesta Secção

Mapeando restrições de esquema XML (XSD) para restrições de conjunto de dados
Descreve os elementos do esquema XML usados para criar restrições de chave exclusivas e estrangeiras em um DataSetarquivo .

Gerando relações de conjunto de dados a partir do esquema XML (XSD)
Descreve os elementos do esquema XML usados para criar relações entre colunas de tabela em um DataSetarquivo .

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

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

Consulte também