次のように 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>
これはまったく可能ですか?はいの場合、誰かがその方法を示すか、少なくとも正しい方向に向けることができますか?