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 XML Schema Definition (XSD)-Sprachschema gibt das unique-Element die eindeutige Einschränkung für ein Element oder Attribut an. Beim Übersetzen eines XML-Schemas in ein relationales Schema (DataSet) wird die im XML-Schema für ein Element oder Attribut angegebene unique-Einschränkung einer unique-Einschränkung in der DataTable des entsprechenden DataSets zugeordnet, das erstellt wird.
Die folgende Tabelle enthält die msdata-Attribute, die Sie im unique-Element angeben können.
| Attributname | Beschreibung |
|---|---|
| msdata:ConstraintName | Wenn dieses Attribut angegeben ist, wird sein Wert als Einschränkungsname verwendet. Andernfalls enthält das name-Attribut den Wert des Einschränkungsnamens. |
| msdata:PrimaryKey | Wenn PrimaryKey="true" im unique-Element vorhanden ist, wird eine unique-Einschränkung erstellt, für deren IsPrimaryKey-Eigenschaft True festgelegt ist. |
Das folgende Beispiel zeigt ein XML-Schema, das mit dem unique-Element eine Eindeutigkeitseinschrä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. Beim Erstellen des DataSets liest der Zuordnungsprozess dieses Schema und generiert folgende Tabelle:
Customers (CustomerID, CompanyName, Phone)
Der Zuordnungsprozess erstellt außerdem eine unique-Einschränkung für die CustomerID-Spalte, wie im folgenden DataSet gezeigt. (Der Einfachheit halber 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 generierten DataSet ist für die IsPrimaryKey-Eigenschaft der unique-Einschränkung False festgelegt. Die unique-Eigenschaft der Spalte gibt an, dass die CustomerID-Spaltenwerte eindeutig sein müssen. (Es kann sich um einen NULL-Verweis handeln, wie von der AllowDBNull-Eigenschaft der Spalte angegeben.)
Wenn Sie das Schema ändern, das optionale msdata:PrimaryKey-Attribut des unique-Elements angeben und für den Wert True festlegen, wird die unique-Einschränkung für die Tabelle erstellt. Für die AllowDBNull-Spalteneigenschaft ist False und für die IsPrimaryKey-Eigenschaft der Einschränkung True festgelegt, so dass die CustomerID-Spalte eine primäre Schlüsselspalte ist.
Sie können eine unique-Einschränkung für eine Kombination aus Elementen oder Attributen im XML-Schema angeben. Im folgenden Beispiel wird gezeigt, wie eine Kombination aus CustomerID-Werten und CompanyName-Werten für alle Customers in jeder Instanz als eindeutig angegeben wird, indem ein anderes xs:field-Element in das Schema eingefügt wird.
<xs:unique
msdata:ConstraintName="SomeName"
name="UniqueCustIDConstr" >
<xs:selector xpath=".//Customers" />
<xs:field xpath="CustomerID" />
<xs:field xpath="CompanyName" />
</xs:unique>
Nachfolgend sehen Sie die Einschränkung, die im daraus entstehenden DataSet erstellt wird.
ConstraintName: SomeName
Table: Customers
Columns: CustomerID CompanyName
IsPrimaryKey: False
Siehe auch
Zuordnen von XML-Schema (XSD)-Einschränkungen zu DataSet-Einschränkungen | Generieren von DataSet-Beziehungen aus einem XML-Schema (XSD) | Datentypunterstützung zwischen XML-Schematypen (XSD) und .NET Framework-Typen