A veces, tengo que comprobar la validez de algunos archivos xml grandes con un archivo xsd. El archivo xml más grande que recibí tenía un tamaño cercano a 1,5 GB.
xmllint
Tomó toda mi RAM y casi todo el espacio de intercambio, para un uso total de memoria de 18 GB. En consecuencia, el proceso de validación duró 24 horas.
Mi pregunta: ¿Existe alguna alternativa xmllint --schema
que consuma menos memoria, tal vez haciendo uso de algunas funciones de transmisión en lugar de cargar el archivo en la memoria?
Respuesta1
No probé estos validadores, pero desde lo más profundo de mi mente/pequeña búsqueda:
- XMLStarlet- también se puede utilizar para otras cosas
msv
- Validador de múltiples esquemas SunHaXML
- las herramientas haskell xml contienen utilidades de línea de comando (una es un validador)xsltproc
También debe verificar los documentos al inicio.
Hay muchas más opciones ya que la mayoría de las utilidades validarán automáticamente el documento xml, como por ejemplo xsltproc
.
Respuesta2
En la biblioteca de paquetes de mi sistema Linux encontré xmlcopyeditor. Lo usé para verificar un archivo XML y también para editarlo. La página de manual afirma que realiza "validación DTD/XML Schema/RELAX NG, XSLT, XPath, impresión bonita, resaltado de sintaxis, plegado, finalización/bloqueo de etiquetas, revisión de ortografía/estilo y, en Windows, importación/exportación sin pérdidas de Microsoft Documentos de Word." pero realmente no he probado qué tan bien hace nada de eso. Lo que sí sé es que la impresión bonita no funcionó hasta que las etiquetas de inicio y fin coincidieron correctamente. http://xml-copy-editor.sourceforge.net/