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.
In einem XSD-Schema (XML Schema Definition Language) gibt das unique-Element die eindeutige Einschränkung für ein Element oder Attribut an. Beim Übersetzen eines XML-Schemas in ein relationales Schema wird die im XML-Schema für ein Element oder Attribut angegebene eindeutige Einschränkung einer eindeutigen Einschränkung in der DataTable des entsprechenden DataSet zugeordnet, das erstellt wird.
In der folgenden Tabelle werden die msdata-Attribute aufgelistet, die im unique-Element angegeben werden können.
Attributname |
Beschreibung |
|---|---|
msdata:ConstraintName |
Wenn dieses Attribut angegeben ist, wird dessen Wert als Einschränkungsname verwendet. Andernfalls wird der Wert des Einschränkungsnamen vom name-Attribut bereitgestellt. |
msdata:PrimaryKey |
Wenn PrimaryKey="true" im unique-Element vorhanden ist, wird eine eindeutige Einschränkung erstellt, deren IsPrimaryKey-Eigenschaft auf true festgelegt ist. |
Im folgenden Beispiel wird ein XML-Schema dargestellt, das mit dem unique-Element eine eindeutige Einschränkung angibt.
<xs:schema id="SampleDataSet"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<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:element name="SampleDataSet" msdata:IsDataSet="true">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element ref="Customers" />
</xs:choice>
</xs:complexType>
<xs:unique
msdata:ConstraintName="UCustID"
name="UniqueCustIDConstr" >
<xs:selector xpath=".//Customers" />
<xs:field xpath="CustomerID" />
</xs:unique>
</xs:element>
</xs:schema>
Das unique-Element im Schema gibt an, dass der Wert des untergeordneten CustomerID-Elements für alle Customers-Elemente in einer Dokumentinstanz eindeutig sein muss. Wenn das DataSet erstellt wird, liest der Zuordnungsprozess dieses Schema und generiert folgende Tabelle:
Customers (CustomerID, CompanyName, Phone)
Beim Zuordnungsprozess wird auch eine eindeutige Einschränkung für die CustomerID-Spalte erstellt. Dies wird im folgenden DataSet dargestellt. (Zur Vereinfachung werden nur relevante Eigenschaften gezeigt.)
DataSetName: MyDataSet
TableName: Customers
ColumnName: CustomerID
AllowDBNull: True
Unique: True
ConstraintName: UcustID
Type: UniqueConstraint
Table: Customers
Columns: CustomerID
IsPrimaryKey: False
Im erstellten DataSet ist die IsPrimaryKey-Eigenschaft für die eindeutige Einschränkung auf False festgelegt. Die unique-Eigenschaft für die Spalte gibt an, dass die Werte der CustomerID-Spalte eindeutig sein müssen. (Entsprechend der AllowDBNull-Eigenschaft der Spalte können die Werte jedoch ein NULL-Verweis sein.)
Wenn Sie das Schema ändern und den optionalen msdata:PrimaryKey-Attributwert auf True festlegen, wird die eindeutige Einschränkung für die Tabelle erstellt. Die AllowDBNull-Spalteneigenschaft ist auf False festgelegt, und die IsPrimaryKey-Eigenschaft der Einschränkung ist auf True festgelegt. Damit wird die CustomerID-Spalte zu einer Primärschlüsselspalte.
Sie können eine eindeutige Einschränkung für eine Kombination aus Elementen oder Attributen im XML-Schema angeben. Im folgenden Beispiel wird veranschaulicht, wie angegeben wird, dass eine Kombination von CustomerID-Werten und CompanyName-Werten für alle Customers in jeder Instanz eindeutig sein müssen. Hierzu wird dem Schema ein weiteres xs:field-Element hinzugefügt.
<xs:unique
msdata:ConstraintName="SomeName"
name="UniqueCustIDConstr" >
<xs:selector xpath=".//Customers" />
<xs:field xpath="CustomerID" />
<xs:field xpath="CompanyName" />
</xs:unique>
Dies ist die im resultierenden DataSet erstellte Einschränkung.
ConstraintName: SomeName
Table: Customers
Columns: CustomerID CompanyName
IsPrimaryKey: False
Siehe auch
Konzepte
Generieren von DataSet-Beziehungen aus einem XML-Schema (XSD)
Weitere Ressourcen
Zuordnen von XSD-Einschränkungen (XML-Schema) zu DataSet-Einschränkungen