Extension 項目繫結支援
本主題專門說明舊有技術。 應該使用下列建立 XML Web Service 及 XML Web Service 用戶端: Windows Communication Foundation.
.NET Framework 會提供 <extension> 項目的繫結支援。
Xsd.exe 工具只會針對複雜內容 (而非簡單內容),產生對應到 base 屬性 (Attribute) 值的基底類別。
說明
XML 結構描述定義語言會同時透過擴充和限制啟用基底型別 (Base Type) 至新資料型別的衍生。衍生複雜型別時一定會用到擴充。擴充可能會依簡單內容或複雜內容而有所區分,如下所示:
簡單內容:使用 XPath
complexType/simpleContent/extension
。衍生的複雜型別不會包含子項目,只會包含屬性或本文 (或兩者) 的簡單內容。複雜內容:使用 XPath
complexType/complexContent/extension
。衍生和基底複雜型別都會包含子項目,這些子項目也可以包含屬性和本文。
在 .NET Framework 中,永遠都會透過類別定義來完整表示 XML 結構描述型別擴充。Xsd.exe 從 XML 結構描述文件產生原始程式碼的方式,取決於擴充是以簡單內容或複雜內容為基礎,如下所示:
簡單內容:Xsd.exe 會產生具有公用欄位的新類別,此欄位的型別對應到 <extension> 項目的 base 屬性所指定的基底資料型別。
複雜內容:Xsd.exe 會產生對應到基底資料型別的類別 (基底資料型別是由 <extension> 項目的 base 屬性指定),並產生衍生資料型別的類別。後面的類別繼承自前面的類別,使用的類別宣告如下所示:
public class DerivedClass : BaseClass
.
當 Xsd.exe 從 XML 結構描述轉譯至類別,然後又轉譯回到新的 XML 結構描述文件時,Xsd.exe 會保留雙向轉譯上的其中一種擴充。
如需簡單內容擴充的範例,請參閱 <simpleContent> 項目。
可能的屬性 | 繫結支援 |
---|---|
base |
<extension> 項目需要 base 屬性,此屬性值為基底資料型別的完整名稱。 如果是簡單內容擴充而言,Xsd.exe 工具會從 base 屬性的值產生公用欄位。如果是複雜內容擴充,Xsd.exe 工具會從 base 值產生基底類別。請參閱上述內容。 |
id |
Xsd.exe 公用程式忽略試圖提供唯一識別項的 id 屬性。 |
可能的父項目:<complexContent>、<simpleContent>
可能的子項目:<all>、<annotation>、<anyAttribute>、<attribute>、<attributeGroup>、<choice>、<group>、<sequence>
另請參閱
參考
XmlSchemaComplexContentExtension
XmlSchemaSimpleContentExtension