Formateador y minificador XML
Pega XML para formatearlo, embellecerlo o minificarlo al instante.
Cómo usar
- Pega tu XML en el área de entrada.
- Haz clic en Formatear para embellecer o en Minificar para comprimir.
- Copia o descarga el resultado.
Preguntas frecuentes
¿Qué pasa si mi XML tiene errores?
La herramienta valida tu XML mediante el DOMParser integrado en el navegador. Los errores de sintaxis se muestran en un recuadro rojo encima de la salida.
¿Admite las secciones CDATA, comentarios e instrucciones de procesamiento?
Sí. El formateador preserva todos los tipos de nodo XML, incluidas las secciones CDATA, los comentarios y las instrucciones de procesamiento.
¿Hay algún límite de tamaño?
No hay un límite estricto · depende de la memoria de tu navegador. Los archivos XML de varios MB suelen formatearse al instante.
Un recorrido práctico por XML
XML 1.0 se convirtió en Recomendación del W3C el 10 de febrero de 1998, editado por Tim Bray, Jean Paoli y C. M. Sperberg-McQueen, con un grupo de trabajo presidido por Jon Bosak, de Sun. La cita de lanzamiento de Tim Bray capturó la intención del diseño: «XML es extensible, internacionalizado, robusto, simple y está hecho para la Web.» La versión canónica actual es la Quinta Edición, publicada el 26 de noviembre de 2008, editada por Bray, Paoli, Sperberg-McQueen, Eve Maler y François Yergeau. XML desciende directamente de SGML (ISO 8879:1986), un formato de documento mucho más grande y mucho más difícil de implementar del que XML eliminó la mayoría de las partes poco usadas mientras mantenía intacto el modelo de documento.
Dónde sigue viviendo XML en 2026
JSON ha dominado las cargas útiles de las API REST durante más de una década, pero XML sigue afianzado allí donde el rigor de los esquemas, la semántica de documentos o los estándares establecidos lo fijan. Saber dónde te lo encontrarás un día cualquiera es la mitad del valor de un buen formateador:
- Formatos de documentos de oficina: los
.docx/.xlsx/.pptxde Microsoft son archivos zip llenos de partes XML, estandarizados como ECMA-376 e ISO/IEC 29500. Los.odt/.ods/.odpde OpenDocument (ISO/IEC 26300) siguen el mismo patrón. Los libros electrónicos EPUB también están empaquetados en XML. - Vocabularios web: SVG (gráficos vectoriales), MathML (notación matemática), las fuentes Atom, RSS 2.0 y el protocolo
sitemap.xmlque Google y Bing analizan para la programación del rastreo. - SOAP y mensajería empresarial: los back-ends de banca, telecomunicaciones, seguros y administración pública aún exponen endpoints SOAP, a menudo tras una fachada REST. Los estándares del sector sobre XML incluyen FpML para derivados, XBRL para los informes ante la SEC, ACORD para seguros e ISO 20022 para la mensajería de pagos.
- Archivos de compilación y configuración: el
pom.xmlde Maven, los beans heredados de Spring, todos los recursos de Android (AndroidManifest.xml,res/values/strings.xml,res/layout/*.xml) y elInfo.plistde Apple en su variante XML. - Intercambio de dominio vertical: KML para Google Earth, GPX para rastros de GPS, MusicXML para partituras (4.0 publicada en 2021), XLIFF para localización (2.1 estandarizada como ISO 21720 en julio de 2024), HL7 v3 / CDA para documentos clínicos.
Bien formado frente a válido: no son lo mismo
XML usa dos niveles de conformidad diferentes y son fáciles de confundir:
- Bien formado significa que el documento obedece la gramática de XML: exactamente un elemento raíz, todas las etiquetas equilibradas y correctamente anidadas, los valores de atributo entre comillas, las referencias de entidad cerradas con un punto y coma, ningún
<ni&sin escapar en el contenido de texto. - Válido significa que un documento bien formado, además, se ajusta a una DTD, un XSD (XML Schema 1.1), un RELAX NG o un esquema Schematron declarados: los elementos correctos en los lugares correctos, con valores de atributo de los tipos correctos, en las cardinalidades correctas.
Este formateador solo comprueba la buena formación. El DOMParser integrado del navegador informa del primer error de análisis que encuentra mediante un elemento parsererror, que la herramienta muestra en el cuadro de error rojo. La validación con un esquema necesita una herramienta diferente (Saxon para XSD, libxml2 con xmllint --schema, el servicio de validación del W3C, etc.).
Las cinco referencias de entidad predefinidas
Según el §4.6 de XML 1.0 del W3C, «los documentos bien formados no necesitan declarar ninguna de las siguientes entidades»: amp, lt, gt, apos, quot. El punto y coma final es obligatorio: XML, a diferencia de algún uso de HTML, nunca aceptará & sin un ; de cierre.
| Entidad | Carácter | Dónde se requiere |
|---|---|---|
< | < | Siempre en el contenido de elementos (de lo contrario, iniciaría una etiqueta) |
& | & | Siempre (de lo contrario, iniciaría una referencia de entidad) |
> | > | Obligatorio dentro de la secuencia ]]> en el contenido; recomendado en otros lugares por simetría |
' | ' | Dentro de valores de atributo delimitados con comillas simples |
" | " | Dentro de valores de atributo delimitados con comillas dobles |
Secciones CDATA, comentarios e instrucciones de procesamiento
Tres características sintácticas especiales con las que cualquiera que formatee XML acaba topándose:
- Secciones CDATA: los bloques
<![CDATA[ … ]]>te permiten incrustar texto arbitrario sin escapar<ni&. La única secuencia que no puedes poner dentro de una CDATA es el delimitador de cierre literal]]>. Útil para incrustar muestras de código, patrones de regex o fragmentos de HTML dentro de la documentación XML. - Comentarios:
<!-- … -->. La cadena--es ilegal dentro de un comentario. - Instrucciones de procesamiento:
<?target …?>. La declaración XML en sí, técnicamente, no es una instrucción de procesamiento, pero la mayoría de las herramientas la tratan igual:<?xml version="1.0" encoding="UTF-8"?>es la primera línea recomendada.
Espacios de nombres
El mecanismo de espacios de nombres de XML es lo que permite que múltiples vocabularios coexistan en un solo documento: Atom más una extensión personalizada, SOAP más cabeceras WS-Security, la parte del documento principal de OOXML que referencia relaciones, dibujos e imágenes de espacios de nombres hermanos. La sintaxis es xmlns="…" para un espacio de nombres por defecto y xmlns:prefix="…" para uno con prefijo, y el formateador conserva ambos sin cambios. Los URI de espacio de nombres son identificadores, no URLs: no tienen que resolver a nada.
Dos famosas trampas de seguridad de XML
El ataque Billion Laughs. Un pequeño archivo XML con entidades que se expanden recursivamente puede hincharse hasta miles de millones de caracteres en la memoria del analizador:
<!ENTITY lol "lol">
<!ENTITY lol2 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;">
<!ENTITY lol3 "&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;">
<!-- … nine more layers later, the document expands to 10^9 lols -->
Los analizadores modernos limitan la expansión de entidades para frustrar esto. Los ataques XXE (entidad externa de XML) explotan un analizador que resuelve entidades externas para leer archivos locales (<!ENTITY xxe SYSTEM "file:///etc/passwd">) o desencadenar peticiones SSRF desde el servidor. La hoja de referencia de prevención de XXE de OWASP es inequívoca: «la forma más segura de prevenir XXE es deshabilitar siempre por completo las DTD (entidades externas).» Eso es exactamente lo que hace el DOMParser del navegador: ignora por completo las declaraciones de entidad DOCTYPE, razón por la cual este formateador del lado del cliente también es seguro para alimentarlo con XML no confiable.
Embellecido frente a minificado
- Formatear / Embellecer sangra los elementos anidados, coloca las etiquetas de apertura y cierre en sus propias líneas y produce una salida que es mucho más fácil de leer, pero normalmente un 30-50 % más grande que el equivalente minificado. Usa esto al depurar, revisar diffs o aprender un esquema desconocido.
- Minificar elimina todo el espacio en blanco entre elementos mientras conserva el espacio en blanco dentro del contenido de texto (XML define el espacio en blanco dentro del contenido de elementos como significativo por defecto, a menos que se anule con
xml:space="default"). Usa esto para las cargas útiles de producción y para cualquier caso en el que importen los bytes transmitidos.
El atributo xml:space es tu vía de escape cuando el espacio en blanco importa de verdad: código fuente literal incrustado en la documentación, por ejemplo. Establece xml:space="preserve" en un elemento ancestro y un procesador conforme conservará cada espacio y salto de línea de los descendientes byte a byte.
Errores XML comunes que detecta un formateador
- Un
&sin escapar en el contenido de texto. Un ampersand desnudo siempre es inválido; usa&. - Etiquetas no coincidentes o sin cerrar. El error de análisis más común. Cada
<tag>necesita un</tag>coincidente (o usa la forma de autocierre<tag/>). - Múltiples elementos raíz. Un documento XML debe tener exactamente un elemento más externo. Si tienes dos hermanos en el nivel superior, envuélvelos en un padre.
- Discrepancia de codificación. Una declaración
<?xml version="1.0" encoding="UTF-8"?>debe coincidir con la codificación de bytes real del archivo. Una BOM de UTF-16 con una declaración de UTF-8 es la versión clásica de este error. - Caracteres reservados en los valores de atributo.
<tag attr="a<b">es inválido aunque<parezca inofensivo entre comillas. - Una BOM perdida delante de la declaración XML. Algunos editores de texto insertan silenciosamente una BOM de UTF-8 que confunde a los analizadores estrictos.
- Finales de línea mezclados dentro de las regiones
xml:space="preserve". Un CR / LF / CRLF inconsistente puede producir artefactos de espacio en blanco visibles al ir y volver por distintas plataformas.
Más preguntas frecuentes
¿Por qué mi formato XML no produce salida?
La mayoría de las veces porque la entrada no está bien formada. El cuadro de error encima de la salida muestra el primer error de análisis que encuentra el DOMParser del navegador, normalmente una etiqueta que falta o no coincide, un & sin escapar o un elemento raíz que falta. Corrige el error y vuelve a ejecutar.
¿Se sube mi XML a un servidor?
No. Tanto el formateo como la minificación se ejecutan dentro del DOMParser integrado del navegador y un pequeño serializador de JavaScript. Tu XML nunca sale de la página, lo que es importante para las cargas útiles SOAP, los archivos de configuración y cualquier otra cosa que pueda contener credenciales, URLs internas o datos sensibles de clientes.
¿Puede la herramienta validar con un esquema XSD o DTD?
No. La validación de esquemas requiere cargar el archivo de esquema y resolver sus referencias, lo cual es un problema diferente de la comprobación de buena formación que realiza el navegador. Para la validación XSD, usa Saxon o xmllint --schema en la línea de comandos, o el servicio validador de esquemas XML del W3C.
¿Sigue siendo relevante XML en 2026, o debería usar simplemente JSON?
Depende de lo que estés haciendo. Para las nuevas API REST, JSON es casi siempre la elección correcta. Pero XML sigue siendo el valor por defecto para los documentos de oficina (.docx, .xlsx), la mensajería empresarial (SOAP, estándares financieros), los recursos de Android, EPUB, RSS / Atom, SVG y la mayoría de los intercambios de las industrias reguladas. Saber leer, formatear y validar XML sigue siendo una habilidad básica; simplemente ya no es la primera herramienta de cada día como lo es JSON.
¿Qué significa «preservar todos los tipos de nodo» para el formateador?
Las secciones CDATA, los comentarios y las instrucciones de procesamiento se conservan todos exactamente como aparecen en la entrada: el formateador solo cambia el espacio en blanco entre elementos. Así, un bloque <![CDATA[ if (a < b) { … } ]]> va y vuelve byte a byte aunque su contenido contenga caracteres < que de otro modo necesitarían escaparse.