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.
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part <couleur rouge="255" vert="42" bleu="0">Le texte à colorer</couleur>
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part <couleur hexa="e4e4f2">Le texte à colorer</couleur>
Code : Sélectionner tout - Visualiser dans une fenêtre à part <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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Partager