Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Met keyref het element kunt u koppelingen tot stand brengen tussen elementen in een document. Dit is vergelijkbaar met een vreemde-sleutelrelatie in een relationele database. Als een schema het keyref-element opgeeft, wordt het element tijdens schematoewijzing geconverteerd naar een overeenkomstige vreemde-sleutelbeperking op de kolommen in de tabellen van de DataSet. Standaard genereert het keyref element ook een relatie, met de BovenliggendeTabel, KindTabel, BovenliggendeKolom en ChildColumn met de eigenschappen die voor de relatie zijn gespecificeerd.
De volgende tabel bevat een overzicht van de msdata kenmerken die u in het keyref element kunt opgeven.
| Naam van kenmerk | Beschrijving |
|---|---|
| msdata:ConstraintOnly | Als ConstraintOnly="true" is opgegeven voor het keyref element in het schema, wordt er een beperking gemaakt, maar er wordt geen relatie gemaakt. Als dit kenmerk niet is opgegeven (of is ingesteld op Onwaar), worden zowel de beperking als de relatie gemaakt in de DataSet. |
| msdata:ConstraintName | Als het ConstraintName kenmerk is opgegeven, wordt de waarde ervan gebruikt als de naam van de beperking. Anders biedt het name kenmerk van het keyref element in het schema de naam van de beperking in de DataSet. |
| msdata:UpdateRule | Als het UpdateRule kenmerk is opgegeven in het keyref element in het schema, wordt de waarde toegewezen aan de UpdateRule eigenschap constraint in de DataSet. Anders is de UpdateRule eigenschap ingesteld op Trapsgewijs. |
| msdata:DeleteRule | Als het DeleteRule kenmerk is opgegeven in het keyref element in het schema, wordt de waarde toegewezen aan de DeleteRule eigenschap constraint in de DataSet. Anders is de DeleteRule eigenschap ingesteld op Trapsgewijs. |
| msdata:AcceptRejectRule | Als het AcceptRejectRule kenmerk is opgegeven in het keyref element in het schema, wordt de waarde toegewezen aan de AcceptRejectRule eigenschap constraint in de DataSet. Anders is de AcceptRejectRule eigenschap ingesteld op Geen. |
Het volgende voorbeeld bevat een schema dat de key en keyref relaties aangeeft tussen het OrderNumber onderliggende element van het Order element en het OrderNo onderliggende element van het OrderDetail element.
In het voorbeeld verwijst het OrderNumber onderliggende element van het OrderDetail element naar het OrderNo belangrijkste onderliggende element van het Order element.
<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>
Het XSD-schematoewijzingsproces (XML Schema Definition Language) levert het volgende DataSet, dat twee tabellen bevat.
OrderDetail(OrderNo, ItemNo) and
Order(OrderNumber, EmpNumber)
Daarnaast definieert de DataSet volgende beperkingen:
Een unieke beperking in de
Ordertabel.Table: Order Columns: OrderNumber ConstraintName: OrderNumberKey Type: UniqueConstraint IsPrimaryKey: FalseEen relatie tussen de
OrderenOrderDetailtabellen. DeNestedeigenschap is ingesteld opFalseomdat de twee elementen niet zijn genest in het schema.ParentTable: Order ParentColumns: OrderNumber ChildTable: OrderDetail ChildColumns: OrderNo ParentKeyConstraint: OrderNumberKey ChildKeyConstraint: OrderNoRef RelationName: OrderNoRef Nested: FalseEen foreign key-beperking op de
OrderDetailtabel.ConstraintName: OrderNoRef Type: ForeignKeyConstraint Table: OrderDetail Columns: OrderNo RelatedTable: Order RelatedColumns: OrderNumber