Une autre question XSD - comment puis-je obtenir que les éléments XML suivants sont valides:différents sous-éléments en fonction de l'attribut/valeur de l'élément
<some-element>
<type>1</type>
<a>...</a>
</some-element>
<some-element>
<type>2</type>
<b>...</b>
</some-element>
Les sous-éléments (soit<a>
ou<b>
) devrait dépendre du contenu de <type>
(pourrait également être un attribut). Il serait si simple dans RelaxNG - mais RelaxNG ne supporte pas l'intégrité clé :(
est-il un moyen de mettre en œuvre ce dans XSD
Note: XML version du schéma 1.1 prend en charge <xs:alternative>
, ce qui pourrait être une solution? , mais autant que je sache aucune implémentation de référence (par exemple libxml2) soutient ce encore Je suis à la recherche de solutions de contournement La seule façon que je suis venu avec est:...
<type>1</type>
<some-element type="1">
<!-- simple <xs:choice> between <a> and <b> goes here -->
<a>...</a>
</some-element>
<!-- and now create a keyref between <type> and @type -->