Problème de vérification de choix pour les attributs
Bonjour,
Je me trouve actuellement face à un problème. Je souhaiterai savoir si il est possible d'effectuer la vérification suivante avec un schéma XML :
J'ai un code XML qui peut s'écrire de 3 façons différentes.
Code:
<couleur rouge="255" vert="42" bleu="0">Le texte à colorer</couleur>
ou
Code:
<couleur hexa="e4e4f2">Le texte à colorer</couleur>
ou
Code:
<couleur nom="bleu">Le texte à colorer</couleur>
En fonction de ces codes, je souhaiterai pouvoir effectuer la vérification suivante avec un schéma XML :
Vérifier que l’attribut ["rouge" ET "vert" ET "bleu"] sont présents OU l'attribut "hexa" OU l'attribut "nom".
Que me conseillez-vous pour faire face à ce problème ?
J'ai testé le code suivant, mais sans sucés. Car dans ce cas présent le code attend un attribut rouge, hexa et nom en même temps si j'ai bien compris...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| <xsd:element name="couleur">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute type="checkColorRGB" name="rouge"/>
<xsd:attribute type="checkColorRGB" name="vert"/>
<xsd:attribute type="checkColorRGB" name="bleu"/>
<xsd:attribute type="checkColorHexa" name="hexa"/>
<xsd:attribute type="checkColorName" name="nom"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:key name="key-RGB">
<xsd:selector xpath="."/>
<xsd:field xpath="@rouge|@vert|@bleu"/>
</xsd:key>
<xsd:key name="key-hexa">
<xsd:selector xpath="."/>
<xsd:field xpath="@hexa"/>
</xsd:key>
<xsd:key name="key-name">
<xsd:selector xpath="."/>
<xsd:field xpath="@nom"/>
</xsd:key>
</xsd:element> |
En vous remerciant par avance.