Relationele structuur van DataSet afleiden uit XML-schema (XSD)
In deze sectie vindt u een overzicht van hoe het relationele schema van een schema DataSet
is gebouwd op basis van een XSD-schemadocument (XML Schema Definition Language). Over het algemeen wordt voor elk complexType
onderliggend element van een schema-element een tabel gegenereerd in het DataSet
. De tabelstructuur wordt bepaald door de definitie van het complexe type. Tabellen worden gemaakt in de voor elementen op het DataSet
hoogste niveau in het schema. Er wordt echter alleen een tabel gemaakt voor een element op het hoogste niveau complexType
wanneer het complexType
element in een ander complexType
element is genest. In dat geval wordt het geneste complexType
element toegewezen aan een DataTable
element binnen het DataSet
element.
Zie het W3C-schemaonderdeel 0 van het World Wide Web Consortium (W3C): Primer Recommendation, the XML Schema Part 1: Structures Recommendation, and the XML Schema Part 2: Datatypes Recommendation.
In het volgende voorbeeld ziet u een XML-schema waarin customers
het onderliggende element van het MyDataSet
element is, een DataSet-element .
<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>
In het voorgaande voorbeeld is het element customers
een complex typeelement. De definitie van het complexe type wordt daarom geparseerd en het toewijzingsproces maakt de volgende tabel.
Customers (CustomerID, CompanyName, Phone)
Het gegevenstype van elke kolom in de tabel is afgeleid van het XML-schematype van het bijbehorende element of kenmerk dat is opgegeven.
Notitie
Als het element customers
van een eenvoudig gegevenstype XML-schema is, zoals geheel getal, wordt er geen tabel gegenereerd. Tabellen worden alleen gemaakt voor de elementen op het hoogste niveau die complexe typen zijn.
In het volgende XML-schema heeft het schema-element twee onderliggende elementen en 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>
Zowel de InStateCustomers
onderliggende elementen als de OutOfStateCustomers
onderliggende elementen zijn complexe typeelementen (customerType
). Daarom genereert het toewijzingsproces de volgende twee identieke tabellen in de DataSet
.
InStateCustomers (CustomerID, CompanyName, Phone)
OutOfStateCustomers (CustomerID, CompanyName, Phone)
In dit gedeelte
Beperkingen voor XML-schema (XSD) toewijzen aan datasetbeperkingen
Beschrijft de XML-schema-elementen die worden gebruikt voor het maken van unieke en refererende sleutelbeperkingen in een DataSet
.
Gegevenssetrelaties genereren van XML-schema (XSD)
Beschrijft de XML-schema-elementen die worden gebruikt voor het maken van relaties tussen tabelkolommen in een DataSet
.
Beperkingen en relaties voor XML-schema's
Beschrijft hoe relaties impliciet worden gemaakt wanneer u XML-schema-elementen gebruikt om beperkingen in een DataSet
.
Gerelateerde secties
XML gebruiken in een dataset
Hierin wordt beschreven hoe u de relationele structuur en gegevens in een DataSet
XML-gegevens laadt en persistent maakt.