¿Qué herramientas de validación XML pueden recomendar tanto para el rendimiento como para la precisión, cada una de las cuales es un problema crítico en nuestro sistema? Contamos con los siguientes requisitos:Validación de esquema XML con RelaxNG
- Es no xmllint (ver más abajo)
- Soporta RelaxNG
- puede integrarse fácilmente con Perl (esto es opcional, pero sería agradable)
¿Por qué no xmllint? (Este es el fondo y puede omitirlo si lo desea)
Tenemos un gran sistema Perl que utiliza RelaxNG para validar nuestro XML. Usamos el compact RelaxNG format y trang para convertirlo al formato estándar RelaxNG. Luego hacemos la validación real a través de xmllint.
Entonces comienzan los problemas. Xmllint tiene problemas para informar los errores de validación de forma incorrecta. No da falsos positivos o negativos, pero si el documento no puede validar, xmllint a menudo informará el elemento o atributo incorrecto para un error dado. A veces el error es correcto ("no esperaba ver el elemento 'barra'), pero solo porque no se informó un error anterior (porque se suponía que 'bar' estaba siguiendo el elemento requerido pero faltante 'foo', pero xmllint doesn ' Esto nos dice que este es un problema de larga data con xmllint e incluso la última versión tiene los mismos problemas. A menudo tenemos enormes documentos XML y el error de notificación de los errores causa mucha pena tanto para los clientes como para los desarrolladores.
Dado que esto se solicitó hace más de 7 años (ahora es 2015): ¿xmllint sigue siendo demasiado defectuoso para su propósito? – Jens
Jens: eso fue en la BBC y no he trabajado allí durante años, ni he usado xmllint desde entonces. – Ovid