1

次のように complexType を定義する XML スキーマがあります。

<xs:complexType name="CompType">
    <xs:sequence>
        <xs:element name="A" type="TypeA" minOccurs="0" maxOccurs="1"/>
        <xs:choice minOccurs="1" maxOccurs="12">
            <xs:element name="B" type="TypeB"/>
            <xs:element name="C" type="TypeC"/>
            <xs:element name="D" type="TypeD"/>
        </xs:choice>
    </xs:sequence>
</xs:complexType>

最大 12 個の「通常の」サブ要素 (通常 = TypeB、TypeC、または TypeD) を持つことができる XML 要素を検証する必要がありますが、TypeA の追加の「特別な」サブ要素を持つことができます。

そのままで機能しますが、「特別な」サブ要素が常に最初になるように制限したくありません。つまり、TypeA サブ要素は 1 つしか存在できず、「通常の」サブ要素は 12 個までしか存在できないという制限を追加して、以下のようなことを実行できるようにしたいと考えています。

<xs:complexType name="CompType">
    <xs:sequence>
        <xs:choice minOccurs="1" maxOccurs="13">
            <xs:element name="A" type="TypeA"/>
            <xs:element name="B" type="TypeB"/>
            <xs:element name="C" type="TypeC"/>
            <xs:element name="D" type="TypeD"/>
        </xs:choice>
    </xs:sequence>
</xs:complexType>

これはまったく可能ですか?はいの場合、誰かがその方法を示すか、少なくとも正しい方向に向けることができますか?

4

1 に答える 1