Formateador y Validador de XML

Indenta, minifica y valida XML en tu navegador. Conserva comentarios, CDATA y la declaración, y te señala el error con línea y columna.

Resultado

Pega un XML para formatearlo o minificarlo.

Todo ocurre en tu navegador. Tu XML no se envía a ningún servidor.

Compartir

Qué hace esta herramienta

Indenta, minifica y valida XML directamente en tu navegador. Le pegas un documento en una sola línea o con la indentación destrozada y te lo devuelve legible, señalando el error si no está bien formado.

Lo que la separa de la mayoría es qué conserva. Casi todos los formateadores analizan el XML, construyen un árbol y lo vuelven a serializar; por el camino se dejan los comentarios, las secciones CDATA y la declaración inicial. Aquí el formateador trabaja sobre el texto, así que lo que había sigue estando.

Bien formado no es lo mismo que válido

Es la distinción que más confusión genera, y conviene tenerla clara antes de pelearse con un error.

Bien formado significa que cumple las reglas de sintaxis del XML: cada etiqueta que se abre se cierra, el anidamiento no se cruza, hay un único elemento raíz, los valores de los atributos van entrecomillados y los caracteres reservados están escapados. Es lo que comprueba esta herramienta.

Válido significa, además, que cumple un esquema concreto —un XSD o una DTD—: que los elementos son los que ese esquema espera, en el orden que espera y con los tipos que espera. Eso solo se puede comprobar teniendo el esquema delante, y depende de cada documento.

Un CFDI puede estar perfectamente bien formado y ser rechazado por el SAT porque no es válido contra su XSD. Son dos filtros distintos y este es el primero.

Por qué el error señala más abajo de donde está

Un analizador de XML lee de principio a fin y solo se da cuenta de que algo va mal cuando llega a un punto imposible. Si te dejas un </item> sin poner, sigue leyendo tan tranquilo, y el error salta mucho después, cuando encuentra un cierre que no corresponde a lo que tenía abierto.

La consecuencia práctica: busca desde la línea que te indica hacia arriba, no hacia abajo. El problema real casi siempre está antes.

Los tres casos que aparecen una y otra vez:

  1. Una etiqueta sin cerrar. El clásico.
  2. Anidamiento cruzado, del tipo <a><b></a></b>. En HTML el navegador lo perdona; en XML, no.
  3. Un & suelto en el texto. En XML hay que escribirlo &amp;, porque a secas inicia una entidad. Es el error que más aparece en documentos generados concatenando cadenas.

Cuándo formatear y cuándo minificar

Formatear cuando el destino es un humano: leer una respuesta de un servicio SOAP, revisar un pom.xml heredado, entender un feed RSS, depurar un comprobante fiscal.

Minificar cuando el destino es la red o el almacenamiento: el espacio en blanco entre etiquetas no aporta nada al significado del documento y sí ocupa. En un XML muy anidado, la indentación puede ser un tercio del archivo.

Ojo con un matiz: el minificado de aquí quita el espacio entre etiquetas, nunca dentro del contenido de un elemento. Si tu documento tiene texto con saltos de línea significativos, se respetan.

Sobre la validación

La comprobación se apoya en fast-xml-parser (licencia MIT), que devuelve el motivo con línea y columna. El formateo y el minificado son propios, precisamente para poder conservar lo que un ciclo de análisis y serialización tiraría.

Preguntas frecuentes

¿Pierdo los comentarios o el CDATA al formatear?

No. El formateador trabaja sobre el texto y no reconstruye el documento a partir de un árbol, que es lo que hace que muchas herramientas se dejen por el camino los comentarios, las secciones CDATA y la declaración inicial. Aquí se conservan tal cual estaban.

¿Qué significa que un XML esté bien formado?

Que cumple las reglas de sintaxis: cada etiqueta abierta se cierra, el anidamiento no se cruza, hay un único elemento raíz y los valores de los atributos van entrecomillados. Es distinto de ser válido, que significa además cumplir un esquema XSD o una DTD concretos. Esta herramienta comprueba lo primero.

¿Por qué el error aparece más abajo de donde está el problema?

Porque el analizador solo se da cuenta de que algo no cuadra cuando llega a un punto imposible. Si te dejas una etiqueta sin cerrar, sigue leyendo tan tranquilo hasta que encuentra un cierre que no corresponde. Busca desde la línea indicada hacia arriba.

¿Sirve para un CFDI o una factura electrónica?

Para leerlo e indentarlo, sí. Si lo que quieres es interpretar sus campos —emisor, receptor, conceptos, impuestos— tienes el visor de CFDI, que entiende la estructura del comprobante en lugar de tratarlo como XML genérico.

Reseñas y valoraciones

Aún no hay reseñas. ¡Sé la primera persona en opinar!

Escribe una reseña

Tu calificación *