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 類別,而兩種複雜型別限制則有 XmlSchemaComplexContentRestriction 和 XmlSchemaSimpleContentRestriction 類別。此外,XmlSchemaSimpleTypeRestriction 和 XmlSchemaSimpleContentRestriction 兩者都具有 Facets 屬性,可以存放代表 simpleType/restriction
或 simpleContent/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
Copyright © 2007 by Microsoft Corporation. All rights reserved.