All 項目繫結支援
.NET Framework 會提供 <all> 項目的繫結支援。
然而,由於無法在程式碼中指定 <all> 項目,因此從一組類別產生 XML 結構描述文件時,便會建立該項目。
說明
由於無法在程式碼中指定 <all> 項目,因此從一組類別產生 XML 結構描述文件時,便會建立該項目。
<all> 項目會提供一組未排序的項目。每個子項目都可以出現一次或是完全不出現。
從 XML 結構描述文件產生原始程式碼時,Xsd.exe 會將 <all> 項目的每個子項目轉譯成公用欄位。欄位的出現順序會與 XML 結構描述中的子項目相同。
從組件的一組類別中產生 XML 結構描述文件時,Xsd.exe 會使用 <sequence> 項目 (而不使用 <all> 項目),為對應到公用欄位的子項目進行分組。假設複雜型別中的項目必須依序出現,而不是以未排序方式顯示。
在匯入包含 <all> 項目的結構描述時,不要使用順序保留功能 (Xsd.exe 的 /order 參數)。
範例
輸入 XML 結構描述文件:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://example.org/" xmlns="http://example.org/" elementFormDefault="qualified">
<xsd:element name="complexInstance" type="MyComplexType"/>
<xsd:element name="field1" type="xsd:string"/>
<xsd:element name="field2" type="xsd:string"/>
<xsd:element name="field3" type="xsd:string"/>
<xsd:complexType name="MyComplexType">
<xsd:all>
<xsd:element ref="field1"/>
<xsd:element ref="field2"/>
<xsd:element ref="field3"/>
</xsd:all>
</xsd:complexType>
</xsd:schema>
由前面的 XML 結構描述文件所產生的 C# 類別:
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://example.org/")]
[System.Xml.Serialization.XmlRootAttribute("complexInstance", Namespace="http://example.org/", IsNullable=false)]
public class MyComplexType {
public string field1;
public string field2;
public string field3;
}
從前面 C# 原始程式所編譯的組件產生的 XML 結構描述複雜型別:
<xs:complexType name="MyComplexType">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="field1" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="field2" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="field3" type="xs:string" />
</xs:sequence>
</xs:complexType>
可能的屬性 | 繫結支援 |
---|---|
id |
Xsd.exe 公用程式忽略試圖提供唯一識別項的 id 屬性。 |
maxOccurs |
對於 <all> 項目而言, 請參閱 MaxOccurs 屬性繫結支援 屬性。 |
minOccurs |
將 minOccurs 屬性套用至 <all> 項目時,Xsd.exe 工具會忽略該屬性。 請參閱 MinOccurs 屬性繫結支援 屬性。 |
可能的父項目:<complexType>、<extension>、<group>、<restriction>
可能的子項目:<annotation>、<element>
Copyright © 2007 by Microsoft Corporation. All rights reserved.