Extension 要素のバインディング サポート
このトピックの対象は、レガシ テクノロジに特定されています。XML Web サービスと XML Web サービス クライアントは以下を使用して作成してください。 Windows Communication Foundation.
.NET Framework では、<extension> 要素のバインディングをサポートしています。
Xsd.exe ツールでは、複合コンテンツだけに対して、base 属性の値に応じて基本クラスを生成します。単純コンテンツに対しては生成されません。
説明
XML スキーマ定義言語を使用すると、拡張および制限の両方の方法で、基本型から新しいデータ型を派生させることができます。拡張は、複合型を派生させるために、常に使用されます。拡張は、単純コンテンツまたは複合コンテンツを基にします。それぞれの違いは次のとおりです。
単純コンテンツ : XPath
complexType/simpleContent/extension
を使用します。派生複合型には、子要素は含まれず、単純コンテンツ (属性と本文テキストのどちらかまたは両方) だけが含まれます。複合コンテンツ: XPath
complexType/complexContent/extension
を使用します。派生複合型と基本複合型の両方に、子要素が含まれます。また、属性と本文テキストも含まれることがあります。
XML スキーマ型拡張は、.NET Framework のクラス定義によって、常に完全に表現されます。Xsd.exe によって XML スキーマ ドキュメントからソース コードが生成される方法は、拡張が単純コンテンツと複合コンテンツのどちらを基にしているかによって、次のように異なります。
単純コンテンツ : Xsd.exe では、<extension> 要素の base 属性で指定される基本データ型に対応した型のパブリック フィールドを使用して、新規クラスを生成します。
複合コンテンツ : Xsd.exe では、<extension> 要素の base 属性で指定される基本データ型に対応したクラスと、派生データ型のクラスを生成します。2 番目のクラスは、
public class DerivedClass : BaseClass
のようなクラス宣言を使用して、1 番目のクラスから継承します。
Xsd.exe では、XML スキーマからクラスへ、および新規 XML スキーマ ドキュメントへのラウンドトリップ変換で、どちらの拡張も維持されます。
単純コンテンツの拡張の例については、<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