Condition basée sur la valeur de l'attribut (schéma XML)

Est-il possible de définir un Schéma XML à une condition fondée sur la valeur de l'attribut? Par exemple, lorsque test@attrib="one"je veux one-element et obligatoire ou lorsque test@attrib="two"je veux two-element et obligatoire.

Par exemple, des documents valides sont:

<root>
    <test attrib="one"/>
    <some-element-1/>
    <some-element-2/>
    ...
    <some-element-n/>
    <one-element>
    </one-element>
</root>

ou

<root>
    <test attrib="two"/>
    <some-element-1/>
    <some-element-2/>
    ...
    <some-element-n/>
    <two-element>
    </two-element>
</root>

Faux documents:

<root>
    <test attrib="one"/>
    <some-element-1/>
    <some-element-2/>
    ...
    <some-element-n/>
</root>

ou

<root>
    <test attrib="two"/>
    <some-element-1/>
    <some-element-2/>
    ...
    <some-element-n/>
    <one-element>
    </one-element>
</root>

Est-il possible dans XSD?

source d'informationauteur Pol | 2012-01-10