Generieren einer relationalen DataSet-Struktur aus einem XML-Schema (XSD)
Dieser Abschnitt enthält eine Übersicht über das Erstellen des relationalen Schemas eines DataSets aus einem Schemadokument in der XML Schema Definition (XSD)-Sprache. Im Allgemeinen wird für jedes untergeordnete complexType-Element eines Schemaelements eine Tabelle im DataSet generiert. Die Tabellenstruktur wird von der Definition des komplexen Typs festgelegt. Im DataSet werden Tabellen für Elemente der höchsten Ebene im Schema erstellt. Eine Tabelle wird jedoch nur für ein complexType-Element höchster Ebene erstellt, wenn das complexType-Element in einem anderen complexType-Element geschachtelt ist. In diesem Fall wird das geschachtelte complexType-Element einer DataTable in einem DataSet zugeordnet.
Weitere Informationen über die XML Schema Definition (XSD)-Sprache finden Sie unter "World Wide Web Consortium (W3C) XML Schema Part 0: Primer Recommendation, the XML Schema Part 1: Structures Recommendation" und "XML Schema Part 2: Datatypes Recommendation" unter http://www.w3.org/TR/ (nur auf Englisch verfügbar).
Im folgenden Beispiel wird ein XML-Schema gezeigt, bei dem customers
das untergeordnete Element des MyDataSet
-Elements ist, das wiederum ein DataSet-Element ist.
<xs:schema id="SomeID"
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>
Im vorherigen Beispiel ist das customers
-Element ein Element mit komplexem Typ. Aus diesem Grund wird die Definition des komplexen Typs analysiert, und der Zuordnungsprozess erstellt folgende Tabelle.
Customers (CustomerID , CompanyName, Phone)
Der Datentyp jeder Spalte in der Tabelle wird vom XML-Schematyp des entsprechenden angegebenen Elements oder Attributs abgeleitet. Eine Liste der XML-Schemadatentypen und die entsprechenden .NET Framework-Datentypen finden Sie unter Datentypunterstützung zwischen XML-Schematypen (XSD) und .NET Framework-Typen.
Hinweis Wenn das Element
customers
von einem einfachen XML-Schemadatentyp, wie integer ist, wird keine Tabelle generiert. Tabellen werden nur für Elemente der höchsten Ebene erstellt, bei denen es sich um komplexe Typen handelt.
Im folgenden XML-Schema weist das Schema-Element zwei untergeordnete Elemente auf: InStateCustomers
und OutOfStateCustomers
<xs:schema id="SomeID"
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>
Die beiden untergeordneten Elemente InStateCustomers
und OutOfStateCustomers
sind Elemente komplexen Typs (customerType
). Aus diesem Grund generiert der Zuordnungsprozess die beiden folgenden identischen Tabellen im DataSet.
InStateCustomers (CustomerID , CompanyName, Phone)
OutOfStateCustomers (CustomerID , CompanyName, Phone)
In diesem Abschnitt
- Zuordnen von XML-Schema (XSD)-Einschränkungen zu DataSet-Einschränkungen
Beschreibt die XML-Schemaelemente, mit denen eindeutige und Fremdschlüsseleinschränkungen in einem DataSet erstellt werden. - Generieren von DataSet-Beziehungen aus einem XML-Schema (XSD)
Beschreibt die XML-Schemaelemente, mit denen Beziehungen zwischen Tabellenspalten in einem DataSet erstellt werden. - Verstehen der Beziehung zwischen Einschränkungen und Beziehungen
Beschreibt die implizite Erstellung von Beziehungen, wenn mit XML-Schemaelementen Einschränkungen in einem DataSet erstellt werden.
Verwandte Abschnitte
- XML und das DataSet
Beschreibt, wie die relationale Struktur und Daten in einem DataSet als XML-Daten geladen und beibehalten werden. - XML-Schemareferenz (XSD)
Enthält eine Referenz der XML Schema Definition (XSD)-Sprache.