Question

Je dois construire un composant qui prendrait quelques documents XML en entrée et vérifier le type de règles suivantes:

XML1:/bookstore/book[price>35.00] != null 
and (XML2:/city/name = 'Montreal'
     or XML3://customer[@language] contains 'en')

En gros devrait être en mesure de mon composant:

  • remplacer les jetons XML avec le document de XML correspondant (avant deux points)
  • appliquer requête XPath sur ce document XML
  • vérifier la sortie de XPath contre résultat attendu (les "=", "! =", "Contient")
  • suivre la syntaxe de base ( "et", "ou" et entre parenthèses)
  • dire si la règle est vraie ou fausse

Connaissez-vous une bibliothèque qui pourrait me aider? JavaCC peut-être?

Merci

Était-ce utile?

La solution 2

Quelqu'un sur la liste de diffusion JavaCC me montra la bonne direction, en mentionnant Schematron . Il m'a conduit à Probatron qui semble être la meilleure application java disponible.

site web Schematron prétend que la langue prend en charge « saut à travers des liens et entre les documents XML pour vérifier les contraintes », mais il semble Probatron ne permet pas. Je ne peux pas le tordre ou de trouver un truc pour que (comme la construction d'un document XML temporaire contenant tous mes documents source). En dehors de cela, il semble Probatron est la bibliothèque pour moi.

Autres conseils

Pour évaluer XPath je recommande Jaxen .

  

Jaxen est une bibliothèque XPath open source   écrit en Java. Il est adaptable à   beaucoup de différents modèles d'objet,   y compris DOM, XOM, dom4j et JDOM.   Est-il également possible d'écrire des adaptateurs   qui traitent des arbres non-XML tels que   compilé byte code Java ou beans Java   comme XML, vous permettant ainsi d'interroger   ces arbres avec XPath aussi.

Le API Java XPath ( Java 5 / javax.xml.xpath ) est également une option, mais je l'ai pas encore essayé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top