Bonjour à tous,
J'ai besoin d'effectuer divers contrôles sur un documents XML, et ensuite de faire des traitements (modification d'une base de donnée, ...) suivant la valeur des différents champs.
J'ai donc cherché un peu, et j'ai trouvé RelaxNG, qui avec RelaxNGCC semblait parfait pour ce que je voulais faire. Sauf qu'il y a de nombreuses co-contraintes dans la vérification du document.
Par exemple :
Et la valeur de B4 dépend de celle de B1 et de celle de B2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <ROOT> <B1>chaine</B1> <B2>chaine2</B2> <B3> <B4>chaine3</B4> </B3> </ROOT>
S'il n'y en avait qu'une, ça irait, mais la valeur de B2 peut aussi influencer la valeur d'une autre balise, etc...
Donc, ma question serait de savoir si RelaxNG peut exprimer de telles co-contraintes.
Si non, j'ai vu que Schematron avait l'air de correspondre à mes besoins, mais pour la validation uniquement. En effet, j'aimerais bien pouvoir appeler des méthodes de traitement, et ce que je trouvais super avec RelaxNGCC c'est la possibilité de le faire directement dans le fichier rng.
Est-il possible de faire la même chose avec Schematron, ou, dans le cas contraire, comment faudrait-il s'y prendre.
Bien cordialement,
Dieppe
EDIT : j'ai oublié de précisé, mais j'ai aussi des contraintes du styles : si telle balise et telle balise valent X, alors la balise Y est obligatoire. L'ordre des balises n'est pas fixé.
Partager