Cómo funciona el formateador de XML
La página lee tu XML y lo descompone en sus partes: etiquetas, atributos, texto, comentarios, secciones CDATA, instrucciones de procesamiento como <?xml …?> y el doctype. Después las escribe de nuevo, cada elemento en su propia línea, con una sangría por nivel de profundidad de 2 espacios, 4 espacios o una tabulación. Minificar hace lo contrario y quita los espacios en blanco entre etiquetas.
Solo cambian los espacios en blanco entre etiquetas. El texto se conserva carácter por carácter, los atributos mantienen su orden y sus comillas, y los comentarios, CDATA y el doctype se copian tal como están escritos. Donde se mezclan texto y etiquetas, como en <p>Hello <b>world</b></p>, o donde está definido xml:space="preserve", los espacios importan, así que esa parte se deja exactamente como estaba.
Para validar, la página también pasa tu XML al analizador de XML de tu propio navegador (DOMParser), el mismo que lee los archivos RSS y SVG. Comprueba que el documento está bien formado: un único elemento raíz, todas las etiquetas cerradas en el orden correcto, atributos entre comillas, ningún atributo repetido y solo entidades conocidas. Los errores se muestran con su línea y su columna. No comprueba con un esquema (XSD o DTD) y nunca descarga archivos externos.
Ejemplo
Una configuración pequeña, minificada en una línea:
<?xml version="1.0"?><config><!-- web tier --><server name="web-1" port="443"><tls enabled="true"/><root>/var/www</root></server></config>Formateada con 2 espacios queda como la versión de abajo. El comentario, la etiqueta autocerrada <tls/> y el orden de los atributos no cambian; si la minificas de nuevo, vuelves a obtener exactamente la línea de arriba.
<?xml version="1.0"?>
<config>
<!-- web tier -->
<server name="web-1" port="443">
<tls enabled="true"/>
<root>/var/www</root>
</server>
</config>Preguntas
¿Cómo formateo XML?
Pégalo en el cuadro de arriba, o abre el archivo, y elige 2 espacios, 4 espacios o una tabulación. El XML formateado aparece a la derecha mientras escribes; cópialo o descárgalo como archivo. En la línea de comandos, xmllint --format file.xml hace lo mismo en Linux y macOS.
¿Cómo compruebo si un XML es válido?
Pégalo arriba: la página dice si está bien formado y, si no, indica la línea, la columna y el motivo, como una etiqueta de cierre que no coincide. Bien formado significa que la sintaxis es correcta. Comprobarlo con un esquema (un XSD o un DTD) es un paso aparte, por ejemplo con xmllint --schema schema.xsd file.xml.
¿Formatear cambia mi XML?
Solo los espacios en blanco entre etiquetas, que los programas de XML normalmente ignoran. El texto, los valores de los atributos y su orden, los comentarios, CDATA, las instrucciones de procesamiento y el doctype se quedan exactamente como estaban. El contenido mixto (texto con etiquetas dentro) y todo lo que esté bajo xml:space="preserve" no se toca en absoluto, porque allí los espacios pueden importar.
¿Qué diferencia hay entre un XML bien formado y uno válido?
Un XML bien formado cumple las reglas de sintaxis: un único elemento raíz, todas las etiquetas cerradas y bien anidadas, valores de atributo entre comillas y ningún atributo repetido. Un XML válido está bien formado y además cumple un esquema o DTD que indica qué elementos y atributos se permiten. Un analizador puede leer cualquier archivo bien formado; solo la validación te dice que tiene la estructura correcta.
¿Es seguro pegar aquí XML con contraseñas o claves?
Sí. El formateo y la comprobación se ejecutan en tu navegador, y nada de lo que pegas se envía a un servidor ni se guarda. Además, el analizador de XML del navegador no descarga DTD ni entidades externas. Al cerrar la pestaña, el texto desaparece.