オプションのタグsort_expression
を持つXMLスキーマを定義しようとしています。そのオプションのタグが提供されている場合、第2のオプションのタグalternate_sort_expression
は許可されますが、最初のタグの存在を条件とします。XMLスキーマ:別のオプションのタグが提供されている場合にのみ、タグを許可します。
例えば、私が検証するためにこれらの例たい:
<indication>
<label>A label for the item</label>
<sort_expression>Some Value</sort_expression>
<!-- one sort expression was provided -->
</indication>
または
<indication>
<label>A label for the item</label>
<!-- no sort expression was provided -->
</indication>
または
<indication>
<label>A label for the item</label>
<sort_expression>Some Value</sort_expression>
<alternate_sort_expression>Some Value</alternate_sort_expression>
</indication>
をしかし、以下が検証に合格しないでください。
<indication>
<label>A label for the item</label>
<!-- no main sort expression was provided -->
<alternate_sort_expression>INVALID</alternate_sort_expression>
</indication>
私は、2つのシーケンスの選択を使用して、次のスキーマが機能すると考えました。残念ながら、スキーマ自体は検証されていません。 AltovaのXMLのスパイは、複合型表示の内容モデルが曖昧である」私に言っている:
<xs:complexType name="indication">
<xs:sequence>
<xs:element name="label" type="xs:string"/>
<xs:choice>
<xs:sequence>
<xs:element name="sort_expression" type="xs:string" minOccurs="0"/>
</xs:sequence>
<xs:sequence>
<xs:element name="sort_expression" type="xs:string"/>
<xs:element name="alternate_sort_expression" type="xs:string" maxOccurs="unbounded"/>
</xs:sequence>
</xs:choice>
</xs:sequence>