Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Mit dem keyref Element können Sie Verknüpfungen zwischen Elementen innerhalb eines Dokuments herstellen. Dies ähnelt einer Fremdschlüsselbeziehung in einer relationalen Datenbank. Wenn ein Schema das keyref-Element angibt, wird das Element während des Schemazuordnungsprozesses in eine entsprechende Fremdschlüsseleinschränkung für die Spalten in den Tabellen von DataSet umgewandelt. Standardmäßig generiert das keyref Element auch eine Beziehung mit der parentTable, ChildTable, ParentColumn und ChildColumn eigenschaften, die für die Beziehung angegeben sind.
In der folgenden Tabelle sind die msdata-Attribute aufgeführt, die Sie im keyref-Element angeben können.
| Attributname | BESCHREIBUNG |
|---|---|
| msdata:ConstraintOnly | Wenn ConstraintOnly="true" für das keyref Element im Schema angegeben wird, wird eine Einschränkung erstellt, aber keine Beziehung erstellt. Wenn dieses Attribut nicht angegeben ist (oder auf False festgelegt ist), werden sowohl die Einschränkung als auch die Beziehung im DataSet erstellt. |
| msdata:ConstraintName | Wenn das ConstraintName Attribut angegeben wird, wird der Wert als Name der Einschränkung verwendet. Andernfalls stellt das name Attribut des keyref Elements im Schema den Einschränkungsnamen im DataSet bereit. |
| msdata:UpdateRule | Wenn das UpdateRule Attribut im keyref Element im Schema angegeben wird, wird dessen Wert der UpdateRule Einschränkungseigenschaft im DataSet zugewiesen. Andernfalls wird die UpdateRule Eigenschaft auf Cascade festgelegt. |
| msdata:DeleteRule | Wenn das DeleteRule Attribut im keyref Element im Schema angegeben wird, wird dessen Wert der DeleteRule Einschränkungseigenschaft im DataSet zugewiesen. Andernfalls wird die DeleteRule Eigenschaft auf Cascade festgelegt. |
| msdata:AcceptRejectRule | Wenn das AcceptRejectRule Attribut im keyref Element im Schema angegeben wird, wird dessen Wert der AcceptRejectRule Einschränkungseigenschaft im DataSet zugewiesen. Andernfalls wird die AcceptRejectRule Eigenschaft auf "None" festgelegt. |
Das folgende Beispiel enthält ein Schema, das die Beziehungen zwischen dem OrderNumber-Kindelement des Order-Elements und dem OrderNo-Kindelement des OrderDetail-Elements angibt.
Im Beispiel bezieht sich das OrderNumber untergeordnete Element des OrderDetail Elements auf das OrderNo Schlüsseluntergeordnete Element des Order Elements.
<xs:schema id="MyDataSet" 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="OrderDetail">
<xs:complexType>
<xs:sequence>
<xs:element name="OrderNo" type="xs:integer" />
<xs:element name="ItemNo" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Order">
<xs:complexType>
<xs:sequence>
<xs:element name="OrderNumber" type="xs:integer" />
<xs:element name="EmpNumber" type="xs:integer" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
<xs:key name="OrderNumberKey" >
<xs:selector xpath=".//Order" />
<xs:field xpath="OrderNumber" />
</xs:key>
<xs:keyref name="OrderNoRef" refer="OrderNumberKey">
<xs:selector xpath=".//OrderDetail" />
<xs:field xpath="OrderNo" />
</xs:keyref>
</xs:element>
</xs:schema>
Der XSD-Schemazuordnungsprozess (XML Schema Definition Language) erzeugt Folgendes DataSet mit zwei Tabellen:
OrderDetail(OrderNo, ItemNo) and
Order(OrderNumber, EmpNumber)
Darüber hinaus definiert die DataSet folgenden Einschränkungen:
Eine eindeutige Einschränkung für die
OrderTabelle.Table: Order Columns: OrderNumber ConstraintName: OrderNumberKey Type: UniqueConstraint IsPrimaryKey: FalseEine Beziehung zwischen den
Order- undOrderDetail-Tabellen. Die EigenschaftNestedist aufFalsegesetzt, da die beiden Elemente im Schema nicht geschachtelt sind.ParentTable: Order ParentColumns: OrderNumber ChildTable: OrderDetail ChildColumns: OrderNo ParentKeyConstraint: OrderNumberKey ChildKeyConstraint: OrderNoRef RelationName: OrderNoRef Nested: FalseEine Fremdschlüsseleinschränkung für die
OrderDetailTabelle.ConstraintName: OrderNoRef Type: ForeignKeyConstraint Table: OrderDetail Columns: OrderNo RelatedTable: Order RelatedColumns: OrderNumber