Différents traitements en fonction d'un enum
Bonjour à tous,
Après m'être pris la tête pendant des heures, je me décide enfin à poser la question sur le forum. Peut-être qu'un expert passera par là et pourra m'aider.
Je cherche à pouvoir, en fonction d'une valeur d'un attribut en enum, de changer les différentes règles d'éléments fils. Voici en gros une description du problème :
Imaginons un élément TOTO qui a un attribut FCT (fonction) qui peut prendre trois valeurs : FCT1, FCT2, FCT3.
Cet élément possède plusieurs éléments fils, appelons-les FILS1, FILS2, FILS3, FILS4.
Je cherche à déclarer dans mon fichier XSD la règle suivante : Si FCT1 est sélectionné, alors FILS1 doit être présent 1 seule et unique fois, FILS2 et FILS3 et FILS 4 ne doivent pas apparaitre. Si FCT2 est sélectionné, alors FILS2 et FILS3 doivent être présent, pas FILS1 ni FILS4. Si FCT3 est sélectionné, alors le choix est libre.
Visiblement, cela est dorénavant possible avec XSD 1.1, mais je n'utilise que la version 1.0.
Un prof m'a donné une aide, mais je n'arrive pas à l'implémenter :
Citation:
On peut peut-être quand même ruser avec des références, par exemple spécifier que FILS1 est une "référence" à l'attribut dont la valeur est FCT1, et que cette référence est obligatoire pour chaque
occurrence de la valeur FCT1 de cet attribut. Sans garantie de succès, je n'ai pas toutes les contraintes en tête.
Quelqu'un a une idée de l'écriture de ces références ?
Merci beaucoup :)