Pregunta

Cuando quiero validar mis documentos XML contra un esquema en mi Java del lado del servidor, uso la implementación integrada de JRE Xerces y javax.xml.validation.Schema. Funciona bien, pero cuando falla la validación, Xerces da mensajes de error que son casi inútiles, por ejemplo:

cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respect to minLength '1' for type 'PopulatedStringType'

Esto puede tomar una edad para diagnosticar y rastrear a la parte particular del documento XML que falla la validación, y todo debido a un mensaje de error deficiente.

Entonces, mi pregunta es, ¿utiliza un medio alternativo para validar XML contra el esquema, que da un resultado más útil en caso de error de validación?

Tenga en cuenta que esto es Java del lado del servidor, así que no diga "use XML Spy" o similar.

¿Fue útil?

Solución

En su controlador para la validación, debe recibir una excepción SAXParseException con ese mensaje, así como la número de columna y el número de línea en el archivo XML. ¿No es el caso?

Otros consejos

Usamos XDK (Kit de desarrollo de XML) de Oracle que incluye xmlparserv2.jar con un analizador de validación y XSLT 2.0. Utiliza la API de JAXB, por lo que solo deberías agregarla a tu classpath y cambiar tus importaciones. Lanza errores que no son perfectos, pero diría que se entienden más fácilmente que tu ejemplo.

xmlstarlet (xmlstar.sourceforge.net/) es un conjunto de herramientas de línea de comandos. podría ejecutarlo utilizando Runtime.exec () para un xml determinado (siempre que el xml esté en un archivo).

Usamos Castor .

  

Castor es un marco de enlace de datos de código abierto para Java [tm]. Es la ruta más corta entre objetos Java, documentos XML y tablas relacionales. Castor proporciona enlaces de Java a XML, persistencia de Java a SQL y más.

Si tiene problemas para interpretar los errores de Xerces y desea algo que ayude a resaltar en qué parte de su documento ha violado las reglas, consulte algunas de las herramientas de creación de XML, como oXygen .

 texto alternativo
(fuente: oxygenxml.com )

Una vez que asocie el esquema con su documento XML de instancia, el editor resaltará el área ofensiva del documento y le proporcionará una descripción de la violación.

Además, puede usar diferentes motores para realizar la validación:

  

oXygen tiene soporte incorporado para:   Xerces, LIBXML, XSV, Saxon SA,   MSXML4.0, MSXML .NET y SQC.

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