Ableiten einer relationalen 'DataSet'-Struktur aus einem XML-Schema (XSD)
Aktualisiert: November 2007
Dieser Abschnitt enthält eine Übersicht über das Erstellen des relationalen Schemas eines DataSet aus einem XSD-Schemadokument (XML Schema Definition Language). Im Allgemeinen wird für jedes untergeordnete complexType-Element eines Schemaelements eine Tabelle im DataSet generiert. Die Tabellenstruktur wird durch die Definition des komplexen Typs festgelegt. Tabellen werden im DataSet für Elemente auf der obersten Ebene des Schemas erstellt. Allerdings werden Tabellen für complexType-Elemente auf der obersten Ebene nur dann 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 zu XSD finden Sie unter "World Wide Web Consortium (W3C) XML Schema Part 0: Primer Recommendation", "XML Schema Part 1: Structures Recommendation" und "XML Schema Part 2: Datatypes Recommendation" unter http://www.w3.org/.
Im folgenden Beispiel wird ein XML-Schema veranschaulicht, bei dem customers das dem DataSet-Element MyDataSet untergeordnete 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. Daher wird die Definition des komplexen Typs analysiert, und der Zuordnungsprozess erstellt die folgende Tabelle.
Customers (CustomerID , CompanyName, Phone)
Der Datentyp jeder Spalte in der Tabelle wird aus dem XML-Schematyp des entsprechenden angegebenen Elements oder Attributs abgeleitet.
![]() |
---|
Wenn das customers-Element einen einfachen XML-Schematyp aufweist, z. B. integer, wird keine Tabelle generiert. Tabellen werden nur für Elemente auf oberster Ebene erstellt, bei denen es sich um komplexe Typen handelt. |
Im folgenden XML-Schema weist das Schema-Element die folgenden zwei untergeordneten 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). Der Zuordnungsvorgang generiert daher die folgenden zwei identischen Tabellen im DataSet.
InStateCustomers (CustomerID , CompanyName, Phone)
OutOfStateCustomers (CustomerID , CompanyName, Phone)
In diesem Abschnitt
Zuordnen von XSD-Einschränkungen (XML-Schema) zu DataSet-Einschränkungen
Beschreibt die zum Erstellen von eindeutigen Einschränkungen und Fremdschlüsseleinschränkungen in einem DataSet verwendeten XML-Schemaelemente.Generieren von DataSet-Beziehungen aus einem XML-Schema (XSD)
Beschreibt die zum Erstellen von Beziehungen zwischen Tabellenspalten in einem DataSet verwendeten XML-Schemaelemente.Einschränkungen und Beziehungen in einem XML-Schema (ADO.NET)
Beschreibt das implizite Erstellen von Beziehungen, wenn mit XML-Schemaelementen Einschränkungen in einem DataSet erstellt werden.
Verwandte Abschnitte
- Verwenden von XML in einem 'DataSet' (ADO.NET)
Beschreibt, wie die relationale Struktur und die Daten in einem DataSet als XML-Daten geladen und beibehalten werden.