Freigeben über


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

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.