Qué hace el formateador XML
Un formateador XML organiza datos que se guardan como etiquetas anidadas. XML se usa en feeds RSS, sitemaps, API SOAP, layouts de Android, archivos pom.xml de Maven, documentos de Office y muchas exportaciones de datos. Las máquinas suelen escribirlo en una sola línea larga. Esta herramienta lo organiza con un elemento por línea y una sangría uniforme, para que el anidamiento sea fácil de seguir.
Tiene tres acciones:
- Formatear aplica sangría al XML.
- Minificar quita los espacios entre etiquetas para que el archivo ocupe menos.
- Validar comprueba que el documento esté bien formado e informa del primer problema.
Cómo usarlo
- Pega XML en el cuadro de la izquierda, pulsa Abrir archivo o pulsa Ejemplo. El XML pegado se formatea al instante.
- Elige una Sangría de 2 espacios, 4 espacios o tabulaciones.
- Pulsa Formatear, Minificar o Validar. Ctrl+Intro repite la última acción.
- Pulsa Copiar, o Descargar para guardar el resultado como archivo
.xml.
Antes y después
Un catálogo de productos en una sola línea:
<?xml version="1.0" encoding="UTF-8"?><catalog><book id="bk101"><author>Gambardella, Matthew</author><title>XML Developer's Guide</title><price>44.95</price></book><book id="bk102"><author>Ralls, Kim</author><title>Midnight Rain</title><price>5.95</price></book></catalog>
Después de Formatear con 2 espacios:
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<price>44.95</price>
</book>
<book id="bk102">
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<price>5.95</price>
</book>
</catalog>
El contenido de texto se queda en la misma línea que su elemento. Eso importa, porque poner un salto de línea dentro de <price>44.95</price> cambiaría el valor que lee un programa.
Minificar convierte la versión formateada de nuevo en la línea única de arriba. Validar con la misma entrada informa: XML bien formado. Elemento raíz <catalog>, 9 elementos en total.
Las secciones CDATA se quedan exactamente como están, así que <script><![CDATA[if (a < b) run();]]></script> sale sin cambios.
Errores que detecta el validador
Muchos formateadores XML “reparan” en silencio el marcado roto, por ejemplo cerrando una etiqueta en un sitio que no querías. Este comprueba primero el documento y se detiene en el primer problema. Estos son mensajes reales:
| Entrada | Mensaje |
|---|---|
<to>Tove</from> |
Línea 2, columna 11: La etiqueta de cierre </from> no coincide con <to>, abierta en la línea 2 |
Smith & Sons |
Línea 1, columna 16: Un "&" suelto debe escribirse como & |
Un <item> que nunca se cierra |
Línea 4, columna 1: La etiqueta de cierre </list> no coincide con <item>, abierta en la línea 3 |
<book id=101/> |
Línea 1, columna 10: El valor de "id" debe ir entre comillas |
| Dos elementos de nivel superior | Línea 2, columna 1: Solo se permite un elemento raíz y se encontró un segundo: <b> |
Pulsa Mostrar en la entrada para mover el cursor al problema.
Qué significa “bien formado”
Un documento XML está bien formado cuando cumple las reglas básicas de sintaxis:
- Cada etiqueta de apertura tiene su etiqueta de cierre, o se cierra sola, como
<br/>. - Las etiquetas se cierran en el orden inverso al que se abrieron.
- Hay exactamente un elemento raíz.
- Los valores de los atributos van entre comillas simples o dobles, y ningún atributo aparece dos veces en el mismo elemento.
- Un
&o un<literal en el texto se escribe como&o<. - La declaración
<?xml ... ?>, si existe, es lo primero del archivo.
Las entidades con nombre como solo se permiten cuando un DOCTYPE las declara, porque XML por sí mismo solo conoce cinco: <, >, &, ' y ". Por eso, si escribes á o ñ como en HTML, sin un DOCTYPE que los declare, el validador muestra el error Entidad desconocida á. En un archivo UTF-8 puedes escribir directamente “á”, “ñ”, “¿” o “¡”, que se aceptan sin problema.
Consejos y límites
- La validación no usa ningún esquema. Un documento puede estar bien formado y aun así tener elementos que tu aplicación no espera.
- Los espacios dentro del texto se conservan. Si necesitas recolocar el texto, edítalo a mano.
- Minificar conserva los comentarios. Bórralos antes si necesitas el archivo más pequeño posible.
- Todo funciona en local, así que puedes pegar configuraciones internas y exportaciones con tranquilidad.
Otras formas de formatear XML
xmllint. En Linux y macOS, xmllint --format file.xml muestra una copia con sangría, y xmllint --noout file.xml solo informa de los errores. También puede validar contra un esquema con --schema.
VS Code. Instala una extensión de XML (la de Red Hat es una opción habitual) y ejecuta Dar formato al documento.
Notepad++. El plugin XML Tools añade un comando Pretty Print.
Herramientas relacionadas
Si tus datos están en JSON, usa el formateador JSON. Para archivos de configuración, el formateador YAML hace el mismo trabajo con YAML. Para páginas web, usa el formateador HTML, que entiende reglas de HTML que XML no permite.