Formateador y minificador XML

Pega XML para formatearlo, embellecerlo o minificarlo al instante.

Ningún dato sale de tu dispositivo

Cómo usar

  1. Pega tu XML en el área de entrada.
  2. Haz clic en Formatear para embellecer o en Minificar para comprimir.
  3. 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:

Bien formado frente a válido: no son lo mismo

XML usa dos niveles de conformidad diferentes y son fáciles de confundir:

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á &amp sin un ; de cierre.

EntidadCarácterDónde se requiere
&lt;<Siempre en el contenido de elementos (de lo contrario, iniciaría una etiqueta)
&amp;&Siempre (de lo contrario, iniciaría una referencia de entidad)
&gt;>Obligatorio dentro de la secuencia ]]> en el contenido; recomendado en otros lugares por simetría
&apos;'Dentro de valores de atributo delimitados con comillas simples
&quot;"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:

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

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

  1. Un & sin escapar en el contenido de texto. Un ampersand desnudo siempre es inválido; usa &amp;.
  2. 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/>).
  3. 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.
  4. 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.
  5. Caracteres reservados en los valores de atributo. <tag attr="a<b"> es inválido aunque < parezca inofensivo entre comillas.
  6. 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.
  7. 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.

Herramientas relacionadas

Formateador y validador JSON gratuito en línea Convertidor JSON a YAML Formateador SQL gratuito