共用方式為


將唯一的 XML 結構描述 (XSD) 條件約束對應至 DataSet 條件約束

XML 結構描述定義語言 (XSD) 結構描述中,unique 項目是用來指定項目或屬性上條件約束的唯一性。在將 XML 結構描述轉譯到關聯式結構描述的處理序中,會將 XML 結構描述內項目或屬性上指定的 unique 條件約束,對應到所產生的對應 DataSetDataTable 的 unique 條件約束對應。

下列表格列出您可在 unique 項目中指定的 msdata 屬性。

屬性名稱 說明

msdata:ConstraintName

如果指定這個屬性,則它的值會被當成條件約束名稱。否則會由 name 屬性提供條件約束名稱的值。

msdata:PrimaryKey

如果 unique 項目中出現 PrimaryKey="true",則會將 IsPrimaryKey 屬性設定為 true 以建立 unique 條件約束。

下列範例會顯示使用 unique 項目以指定 unique 條件約束的 XML 結構描述。

<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>

結構描述中的 unique 項目指定文件執行個體中所有 Customers 項目的 CustomerID 項目子系值必須是唯一的。建置 DataSet 的過程中,對應處理序會讀取這個結構描述並產生下列表格:

Customers (CustomerID , CompanyName, Phone)

對應處理序也會在 CustomerID 資料行上建立 unique 條件約束,如下列 DataSet 所示。(為了便於瞭解,此處僅顯示相關屬性)。

DataSetName: MyDataSet TableName:Customers ColumnName:CustomerID AllowDBNull:True Unique:True ConstraintName:UcustID       Type:UniqueConstraint Table:Customers Columns:CustomerID IsPrimaryKey:False

產生的 DataSet 中,unique 條件約束的 IsPrimaryKey 屬性設定為 False。資料行上的 unique 屬性指出 CustomerID 資料行值必須是唯一的 (但是也可以由資料行的 AllowDBNull 屬性指定為 Null 參考)。

如果您修改結構描述,並將選擇性的 msdata:PrimaryKey 屬性值設定為 True,即可在資料表上建立 unique 條件約束。將 AllowDBNull 資料行屬性設定為 False,條件約束的 IsPrimaryKey 屬性設定為 True,即可使 CustomerID 資料行成為主索引鍵資料行。

您可以在 XML 結構描述中,將 unique 條件約束指定給合併的項目或屬性。下列範例會示範,如何藉由在結構描述中新增其他的 xs:field 項目,以便指定 CustomerIDCompanyName 值組合,讓這些值在任何狀況中,對所有 Customers 而言都是唯一的。

   <xs:unique                msdata:ConstraintName="SomeName"               name="UniqueCustIDConstr" >       <xs:selector xpath=".//Customers" />       <xs:field xpath="CustomerID" />       <xs:field xpath="CompanyName" />     </xs:unique>

這是得到的 DataSet 中建立的條件約束。

ConstraintName:SomeName Table:Customers   Columns:CustomerID CompanyName  IsPrimaryKey:False

請參閱

概念

從 XML 結構描述 (XSD) 產生 DataSet 關聯

其他資源

將 XML 結構描述 (XSD) 條件約束對應至 DataSet 條件約束