Derivando a estrutura relacional do DataSet do esquema XML (XSD)
Esta seção fornece uma visão geral de como o esquema relacional de um DataSet
é compilado 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, é gerada uma tabela 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. Entretanto, uma tabela só é criada para um elemento complexType
de nível superior quando o elemento complexType
está aninhado em outro elemento complexType
; nesse caso, o elemento complexType
aninhado é mapeado para um DataTable
dentro do DataSetDataSet
.
Para obter mais informações sobre o XSD, consulte no W3C (World Wide Web Consortium): XML Schema Part 0: Primer Recommendation, XML Schema Part 1: Structures Recommendation e XML Schema Part 2: Datatypes Recommendation.
O exemplo a seguir demonstra um XML Schema no qual customers
é o elemento filho do elemento MyDataSet
, 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, o 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 do Esquema XML do elemento ou atributo correspondente especificado.
Observação
Se o elemento customers
for de um tipo de dados simples do XML Schema, como integer, nenhuma tabela será gerada. As tabelas são criadas apenas para os elementos de nível superior que são tipos complexos.
No XML Schema seguir, 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>
Os elementos filho InStateCustomers
e OutOfStateCustomers
são ambos elementos de tipo complexo (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 seção
Mapeamento de restrições de esquema XML (XSD) para restrições de DataSet
Descreve os elementos do XML Schema usados para criar restrições de chave exclusiva e estrangeira em um DataSet
.
Gerar relações de DataSet do esquema XML (XSD)
Descreve os elementos do XML Schema usados para criar relações entre colunas da tabela em um DataSet
.
Relações e restrições de esquema XML
Descreve como as relações são criadas implicitamente ao usar elementos do XML Schema para criar restrições em um DataSet
.
Seções relacionadas
Usando XML em um DataSet
Descreve como carregar e manter a estrutura relacional e os dados em um DataSet
como dados XML.