共用方式為


Restriction 項目繫結支援

.NET Framework 會提供 <restriction> 項目的部分繫結支援。

讓 .NET Framework 提供完整表示繫結的唯一型別限制,只有字串型簡單型別的列舉型別 (Enumeration)。

說明

XML 結構描述定義語言會同時透過擴充和限制啟用基底型別 (Base Type) 至新型別的衍生。衍生複雜型別時一定會用到擴充。限制則可以用來衍生複雜型別和簡單型別,然而通常還是用於簡單型別。

儘管在 .NET Framework 中永遠會透過類別定義完整表示 XML 結構描述型別擴充,但唯一存在繫結的型別限制只有簡單型別的列舉型別,可以透過 XPath simpleType/restriction/enumeration 找到。此外,<enumeration> 項目只有在套用至字串型簡單型別時才會繫結。

對於 simpleType/restriction 項目的所有其他子項目而言 (或是將列舉型別套用至非字串基底型別時),下列事項為真:

  • 從 XML 結構描述文件產生原始程式碼時,Xsd.exe 會忽略限制;它只會產生對應至基底簡單型別的 .NET Framework 型別。

  • 將物件序列化為 XML 以及從 XML 還原序列化時,XmlSerializer 類別會忽略限制。

對於複雜型別來說,如果限制涉及複雜內容,則 Xsd.exe 會透過 XPath complexType/complexContent/restriction 產生繼承自基底類別的空類別。XmlSerializer 類別會忽略限制。Xsd.exe 無法透過 XPath complexType/simpleContent/restriction 辨識涉及簡單內容的限制。

當限制具有受限繫結支援時,便會完整地呈現於結構描述物件模型中。簡單型別限制會有 XmlSchemaSimpleTypeRestriction 類別,而兩種複雜型別限制則有 XmlSchemaComplexContentRestrictionXmlSchemaSimpleContentRestriction 類別。此外,XmlSchemaSimpleTypeRestrictionXmlSchemaSimpleContentRestriction 兩者都具有 Facets 屬性,可以存放代表 simpleType/restrictionsimpleContent/restriction 之任何子項目的物件。

這些類別的物件都可以用來以程式設計方式建立結構描述物件模型,此模型會採用 XML 結構描述規格中提供的任何種類型別限制。這類模型可以序列化為 XML 結構描述文件,也可以從 XML 結構描述文件還原序列化。

此外,還可以根據使用限制的 XML 結構描述,使用 XmlValidatingReader 物件來驗證 XML 執行個體文件。

可能的屬性 繫結支援

base

<restriction> 項目需要 base 屬性,此屬性值為基底資料型別的完整名稱。

如果透過限制定義簡單型別,base 屬性的值會判斷 Xsd.exe 是否會辨識限制。如果基底型別為繫結至字串的 XML 結構描述資料型別,Xsd.exe 便會產生 enum 型別。否則,Xsd.exe 會產生 .NET Framework 型別的欄位,而此型別會繫結至 base 值。

透過限制定義複雜型別時,請參閱上述說明 base 屬性用法的內容。

id

Xsd.exe 公用程式忽略試圖提供唯一識別項的 id 屬性。

可能的父項目:<complexContent><simpleContent><simpleType>

可能的子項目:<all><annotation><anyAttribute><attribute><attributeGroup><choice><enumeration><fractionDigits><group><length><maxExclusive><maxInclusive><maxLength><minExclusive><minInclusive><minLength><pattern><sequence><simpleType><totalDigits><whiteSpace>

請參閱

參考

XmlSchemaComplexContentRestriction
XmlSchemaSimpleContentRestriction
XmlSchemaSimpleTypeRestriction

Footer image

Copyright © 2007 by Microsoft Corporation. All rights reserved.