Pregunta

Tengo que construir un componente que tendría unos documentos XML en la entrada y comprobar el siguiente tipo de reglas:

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

Básicamente mi componente debe ser capaz de:

  • sustituir los tokens XML con el documento XML correspondiente (antes de colon)
  • solicite consulta XPath en este documento XML
  • comprobar la salida XPath resultado esperado ( "=", "! =", "Contiene")
  • seguir la sintaxis básica ( "y", "o" y los paréntesis)
  • saber si la regla es verdadera o falsa

¿Conoce usted cualquier biblioteca que me podría ayudar? tal vez JavaCC?

Gracias

¿Fue útil?

Solución 2

Alguien en la lista de correo JavaCC me señaló a la dirección correcta, mencionando Schematron . Me llevó a Probatron que parece ser la mejor aplicación java disponible.

sitio web Schematron afirma que el lenguaje es compatible con "salto a través de enlaces y entre documentos XML para comprobar las restricciones" pero parece Probatron no permite eso. Puede que no retocarlo o encontrar un truco para que (como la construcción de un documento XML temporal que contiene todas mis documentos fuente). Aparte de eso, se ve Probatron es la biblioteca adecuada para mí.

Otros consejos

Para evaluar XPaths recomiendo Jaxen .

  

Jaxen es una biblioteca de XPath de código abierto   escrito en Java. Es adaptable a   muchos diferentes modelos de objetos,   incluyendo DOM, XOM, dom4j y JDOM.   ¿También es posible escribir adaptadores   que los árboles tratar a los no-XML como   compilado el código de bytes de Java, Java Beans   como XML, lo que le permite consultar   estos árboles con XPath también.

El de Java XPath API ( Java 5 / javax.xml.xpath ) es también una opción, pero no he probado todavía.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top