All 要素のバインディング サポート

このトピックの対象は、レガシ テクノロジに特定されています。XML Web サービスと XML Web サービス クライアントは以下を使用して作成してください。 Windows Communication Foundation.

.NET Framework では、<all> 要素のバインディングをサポートしています。

ただし、<all> 要素を、一連のクラスから XML スキーマ ドキュメントを生成するときに作成されるようにコードで指定する方法はありません。

説明

<all> 要素を、一連のクラスから XML スキーマ ドキュメントを生成するときに作成されるようにコードで指定する方法はありません。

<all> 要素には、要素の順序なしグループ化機能があります。それぞれの子要素は、1 回出現するか、まったく出現しません。

XML スキーマ ドキュメントからソース コードを生成するとき、Xsd.exe は、<all> 要素の各子要素をパブリック フィールドに変換します。このフィールドは、XML スキーマ内の子要素の順序と同じ順序で出現します。

アセンブリ内の一連のクラスから XML スキーマ ドキュメントを生成するとき、Xsd.exe は、パブリック フィールドに対応する子要素をグループ化するために、<all> 要素の代わりに <sequence> 要素を使用します。複合型内の要素は、順序なしではなく順序付きで出現することが前提となります。

<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 属性で 1 以外の値は無効です。Xsd.exe は、無効な値があるとエラーを報告します。

MaxOccurs 属性のバインディング サポート 属性を参照してください。

minOccurs

<all> 要素に minOccurs 属性が適用されるときは、Xsd.exe はこの属性を無視します。

MinOccurs 属性のバインディング サポート 属性を参照してください。

使用可能な親要素 : <complexType><extension><group><restriction>

使用可能な子要素 : <annotation><element>