Freigeben über


Generieren von DataSet-Beziehungen aus dem XML-Schema (XSD)

In einem DataSet erstellen Sie eine Zuordnung zwischen zwei oder mehr Spalten, indem Sie eine Eltern-Kind-Beziehung herstellen. Es gibt drei Möglichkeiten, eine DataSet Beziehung innerhalb eines XSD-Schemas (XML Schema Definition Language) darzustellen:

  • Geben Sie geschachtelte komplexe Typen an.

  • Verwenden Sie die msdata:Relationship-Anmerkung.

  • Geben Sie eine xs:keyref ohne die msdata:ConstraintOnly-Anmerkung an.

Geschachtelte komplexe Typen

Geschachtelte komplexe Typdefinitionen in einem Schema geben die Beziehungen zwischen übergeordneten und untergeordneten Elementen an. Das folgende XML-Schemafragment zeigt, dass es OrderDetail sich um ein untergeordnetes Element des Order Elements handelt.

<xs:element name="Order">
  <xs:complexType>
     <xs:sequence>
       <xs:element name="OrderDetail" />
           <xs:complexType>
           </xs:complexType>
     </xs:sequence>
  </xs:complexType>
</xs:element>

Der XML-Schemazuordnungsprozess erstellt Tabellen im DataSet, die den geschachtelten komplexen Typen im Schema entsprechen. Er erstellt außerdem zusätzliche Spalten, die als übergeordnete - untergeordnete Spalten für die generierten Tabellen verwendet werden. Beachten Sie, dass diese Eltern-Kind-Spalten Beziehungen angeben, was nicht mit der Angabe von Primärschlüssel-/Fremdschlüsseleinschränkungen gleichzusetzen ist.

Die "msdata:Relationship"-Anmerkung

Mit der msdata:Relationship-Anmerkung können Sie für nicht geschachtelte Elemente im Schema die Beziehungen zwischen übergeordneten und untergeordneten Elementen explizit angeben. Das folgende Beispiel zeigt die Struktur des Relationship Elements.

<msdata:Relationship name="CustOrderRelationship"
msdata:parent=""
msdata:child=""
msdata:parentkey=""
msdata:childkey="" />

Die Attribute der msdata:Relationship-Anmerkung identifizieren die Elemente, die an der Beziehung beteiligt sind, sowie die parentkeychildkey Elemente und Attribute, die an der Beziehung beteiligt sind. Der Zuordnungsprozess verwendet diese Informationen zum Generieren von Tabellen in der DataSet und zum Erstellen der Primärschlüssel-/Fremdschlüsselbeziehung zwischen diesen Tabellen.

Beispielsweise gibt das folgende Schemafragment an Order und OrderDetail Elemente auf derselben Ebene (nicht geschachtelt). In dem Schema ist eine msdata:Relationship-Anmerkung angegeben, die die Beziehung zwischen übergeordneten und untergeordneten Elementen für diese beiden Elementen festlegt. In diesem Fall muss eine explizite Beziehung mithilfe der msdata:Relationship-Anmerkung angegeben werden.

 <xs:element name="MyDataSet" msdata:IsDataSet="true">
  <xs:complexType>
    <xs:choice maxOccurs="unbounded">
        <xs:element name="OrderDetail">
          <xs:complexType>

          </xs:complexType>
       </xs:element>
       <xs:element name="Order">
          <xs:complexType>

          </xs:complexType>
       </xs:element>
    </xs:choice>
  </xs:complexType>
</xs:element>
   <xs:annotation>
     <xs:appinfo>
       <msdata:Relationship name="OrdOrdDetailRelation"
          msdata:parent="Order"
          msdata:child="OrderDetail"
          msdata:parentkey="OrderNumber"
          msdata:childkey="OrderNo"/>
     </xs:appinfo>
  </xs:annotation>

Der Zuordnungsprozess verwendet das Relationship Element, um eine Beziehung zwischen der OrderNumber Spalte in der Order Tabelle und der OrderNo Spalte in der OrderDetail Tabelle im DataSet zu erstellen. Der Zuordnungsprozess gibt nur die Beziehung an; Sie gibt keine Einschränkungen für die Werte in diesen Spalten automatisch an, ebenso wie die Primärschlüssel-/Fremdschlüsseleinschränkungen in relationalen Datenbanken.

In diesem Abschnitt

Implizite Beziehungen zwischen geschachtelten Schemaelementen zuordnen Beschreibt die Einschränkungen und Beziehungen, die implizit in einem DataSet Fall erstellt werden, wenn geschachtelte Elemente im XML-Schema gefunden werden.

Für geschachtelte Elemente angegebene Zuordnungsbeziehungen Beschreibt, wie Beziehungen in einem DataSet für geschachtelten Elemente im XML-Schema explizit festgelegt werden.

Beziehungen zwischen Elementen ohne Schachtelung angeben Beschreibt, wie Beziehungen in einem DataSet zwischen XML-Schemaelementen erstellt werden, die nicht geschachtelt sind.

Ableiten der relationalen DataSet-Struktur vom XML-Schema (XSD) Beschreibt die relationale Struktur oder das Schema eines aus DataSet dem XSD-Schema (XML Schema Definition Language) erstellten Schemas.

Zuordnen von XML-Schemaeinschränkungen zu DataSet-Einschränkungen Beschreibt die XML-Schemaelemente, die zum Erstellen eindeutiger und fremder Schlüsseleinschränkungen in einem DataSet verwendet werden.

Siehe auch