DataSet-relációs struktúra származtatása XML-sémából (XSD)
Ez a szakasz áttekintést nyújt arról, hogyan épül fel egy DataSet
XML-sémadefiníciós nyelvből (XSD) készült sémadokumentum relációs sémája. A sémaelem minden gyermekeleméhez complexType
általában egy tábla jön létre a DataSet
. A táblázat szerkezetét az összetett típus definíciója határozza meg. A rendszer táblákat hoz létre a DataSet
séma legfelső szintű elemeihez. A rendszer azonban csak akkor hoz létre táblázatot egy legfelső szintű complexType
elemhez, ha az complexType
elem egy másik complexType
elembe van ágyazva, ebben az esetben a beágyazott complexType
elem egy adott elemhez DataTable
van leképezve.DataSet
Az XSD-ről további információt a World Wide Web Consortium (W3C) XML Schema Part 0: Primer Recommendation, az XML Schema Part 1: Structures Recommendation és az XML Schema Part 2: Datatypes Recommendation című részben talál.
Az alábbi példa egy XML-sémát mutat be, amely customers
az elem gyermekelemeMyDataSet
, amely adathalmazelem.
<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>
Az előző példában az elem customers
egy összetett típusú elem. Ezért a komplex típusdefiníció elemzésre kerül, és a leképezési folyamat a következő táblát hozza létre.
Customers (CustomerID, CompanyName, Phone)
A táblázat egyes oszlopainak adattípusa a megadott megfelelő elem vagy attribútum XML-sématípusából származik.
Feljegyzés
Ha az elem customers
egy egyszerű XML-séma adattípusa, például egész szám, akkor a rendszer nem hoz létre táblát. A táblák csak az összetett típusok legfelső szintű elemeihez jönnek létre.
A következő XML-sémában a sémaelem két elemből áll, InStateCustomers
és OutOfStateCustomers
a .
<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>
A gyermek és a InStateCustomers
OutOfStateCustomers
gyermek elem egyaránt összetett típuselem (customerType
). Ezért a leképezési folyamat a következő két azonos táblát hozza létre a DataSet
.
InStateCustomers (CustomerID, CompanyName, Phone)
OutOfStateCustomers (CustomerID, CompanyName, Phone)
A szakasz tartalma
XML-séma (XSD) korlátozásai adathalmaz-korlátozásokhoz való leképezése
A azokat az XML-sémaelemeket ismerteti, amelyek egyedi és idegenkulcs-megkötések létrehozására szolgálnak.DataSet
Adatkészlet-kapcsolatok létrehozása XML-sémából (XSD)
A táblázatoszlopok DataSet
közötti kapcsolatok létrehozásához használt XML-sémaelemeket ismerteti.
XML-séma korlátozásai és kapcsolatai
Ismerteti, hogyan jönnek létre a kapcsolatok implicit módon, amikor XML-sémaelemeket használnak kényszerek létrehozására egy DataSet
.
Kapcsolódó témakörök
XML használata adathalmazban
Ismerteti, hogyan töltheti be és őrizheti meg a relációs struktúrát és az adatokat XML-adatokként DataSet
.