Formateador y Validador XML
Formatea, valida o minifica XML al instante en tu navegador — el resultado se actualiza en vivo mientras escribes.
Tu documento se queda en tu equipo
Nada que borrar después
Seguro para documentos regulados
Funciona en todo navegador moderno
Cómo funciona
- 1
Pega tu XML
Un archivo de configuración, una respuesta de API, una factura, un feed o una exportación que necesitas leer.
- 2
Formatea o minifica
Indéntalo para leerlo o vuelve a comprimirlo: los avisos aparecen en ambos casos.
- 3
Copia el resultado
Llévalo a un editor, un tique, un juego de pruebas o un documento que estés a punto de enviar.
Por qué usar esta herramienta
Te avisa si formatear cambia los datos
Indentar un elemento que contiene texto altera ese texto, y lo sabes antes de que ocurra en lugar de después.
Prefijos de espacio de nombres preservados
Los prefijos quedan tal como se escribieron, así que las expresiones XPath y las hojas XSLT siguen funcionando.
Las entidades externas nunca se resuelven
No se lee ningún archivo ni se descarga ninguna URL, que es la propiedad que más falta le hace a una herramienta XML.
Bombas de expansión rechazadas
Un documento pequeño que se despliega en gigabytes se detecta y se rechaza en vez de congelar la pestaña.
Declaración y codificación intactas
La declaración XML, su atributo de codificación y cualquier marca de orden de bytes salen igual que entraron.
Nada sale del navegador
Facturas, mensajes SOAP y aserciones de identidad se procesan en esta página y no se suben a ninguna parte.
Indentar XML no es cosmético: el espacio dentro de un elemento son datos
Este es el hecho que separa el formateo de XML del de JSON, y casi todas las sorpresas del tema se derivan de él. En JSON, el espacio entre tokens queda por completo fuera del modelo de datos: reformatea un documento y cada valor que lea tu analizador será idéntico. XML no ofrece esa garantía. El contenido de un elemento es un nodo de texto, y el espacio forma parte de ese nodo salvo que algo diga explícitamente lo contrario. Convierte `<nombre>Ali</nombre>` en una forma indentada con el texto en su propia línea y el elemento ya no contiene `Ali`: contiene un salto de línea, dos espacios, `Ali`, otro salto y más espacios. La mayoría del código de aplicación oculta esto recortando al leer, y por eso mismo pasa desapercibido hasta que importa: un valor comparado con una base de datos, una suma de verificación, una firma. La especificación de XML ofrece `xml:space="preserve"` para declarar que el espacio es significativo, y un esquema puede marcar un elemento como insensible al espacio, pero un formateador que solo ve el documento no conoce ninguno de los dos. Tiene que avisar en vez de suponer, y eso es lo que hace este.
Reformatear un documento firmado invalida la firma, y es por diseño
La consecuencia anterior se vuelve concreta en cuanto un documento está firmado. Las firmas digitales XML no firman el archivo: firman una forma canónica del árbol del documento, producida por un paso de normalización definido en la especificación Canonical XML. Ese paso fija el orden de los atributos, las declaraciones de espacios de nombres y cierto espacio en blanco, de modo que dos documentos que significan lo mismo produzcan el mismo resumen. Lo que no hace es perdonar el espacio que añadiste dentro del contenido de un elemento, porque para el modelo eso no es formato sino un cambio en los datos. Así que una factura firmada, una aserción SAML o un mensaje SOAP embellecido ya no es válido, y el fallo es total: la verificación no informa de una pequeña discrepancia, informa de que la firma no coincide. La regla que hay que llevarse es que un documento firmado es un objeto binario disfrazado de texto. Léelo formateado si quieres, pero envía los bytes que recibiste.
Facturae y el SII: el caso en que todo esto es obligatorio
Pocos contextos hacen este tema tan inmediatamente práctico como la facturación electrónica española. Facturae es XML puro, con firma XAdES incrustada dentro del propio documento, y el Suministro Inmediato de Información remite libros de registro a la Agencia Tributaria mediante mensajes SOAP, que también son XML. Eso significa que las dos secciones anteriores no son teoría aquí, sino la causa habitual de un rechazo. Primero: la indentación que se cuela dentro del contenido de un elemento cambia valores que una regla de validación compara con un formato o con un total, y un importe con un salto de línea delante deja de ser el importe. Segundo, y más grave: la firma va dentro del mismo archivo, así que abrir el XML en un editor que reindenta al guardar invalida la factura sin que nada lo indique, y el rechazo vuelve sin decirte que la causa fue tu editor. Por eso el patrón es siempre el mismo: leer formateado, enviar sin tocar. Y tercero, una factura lleva NIF, IBAN y la dirección de un cliente, razón suficiente para no subirla al servidor de otra persona.
El prefijo del espacio de nombres no es el nombre: lo es la URI
Los espacios de nombres son donde el diseño de XML más sorprende a quien viene de JSON, y donde un formateador descuidado hace daño real. Un prefijo como `soap:` o `ns2:` es una abreviatura local sin significado propio; lo que identifica a un elemento es la URI a la que ese prefijo está ligado. Dos documentos que usan `a:Body` y `env:Body` son idénticos si ambos prefijos están ligados a la misma URI de espacio de nombres, y dos documentos que usan ambos `ns:Item` no tienen relación alguna si las URI difieren. Por eso una herramienta que amablemente renombra prefijos a algo más ordenado produce un documento técnicamente equivalente y prácticamente roto: cada expresión XPath, cada plantilla XSLT y cada selector escrito a mano en tu código se refiere al prefijo, no a la URI, porque es lo que la gente escribe. Los espacios de nombres por defecto añaden una segunda trampa, ya que un elemento sin prefijo dentro de `xmlns="…"` pertenece a ese espacio mientras que un atributo sin prefijo no pertenece a ninguno. Esta herramienta no cambia ningún prefijo ni mueve ninguna declaración.
La expansión de entidades explica por qué hay que decirle a un analizador XML lo que no debe hacer
XML permite que un documento defina sus propias entidades y que una entidad haga referencia a otra. Esa sola función produce la denegación de servicio más conocida de la historia del formato: define una entidad como diez copias de otra, anida eso diez niveles y un documento de unos cientos de bytes se despliega en mil millones de caracteres. Tiene nombre —el ataque de los mil millones de risas— y funciona en cualquier analizador que expanda entidades sin un presupuesto. El problema más afilado son las entidades externas, que permiten a un documento declarar que el valor de una entidad debe leerse de algún sitio: `SYSTEM "file:///etc/passwd"` lee un archivo local, y una URL `http://` convierte al analizador en un cliente de peticiones que entrará encantado en una red privada por cuenta de un atacante. Eso es XXE, y lleva años usándose para leer credenciales de servidores de producción. La defensa no es analizar con astucia, es negarse: un procesador que nunca resuelve una entidad externa no puede ser inducido a descargar nada. Esta herramienta no resuelve ninguna y limita la expansión, y por eso un documento hostil aquí simplemente se rechaza.
Qué hay realmente dentro del XML que la gente necesita formatear
Vale la pena nombrar los documentos, porque la lista explica la cautela. XML es donde vive la parte regulada del mundo del software: facturas electrónicas presentadas a una agencia tributaria, mensajes SOAP que circulan entre bancos, aserciones SAML que son literalmente la identidad de alguien en tránsito, historiales médicos, escritos judiciales, exportaciones de nóminas, feeds de producto con precios no publicados. Cuando alguien echa mano de un formateador, casi siempre es porque uno de esos documentos ha fallado y hay que leerlo, lo que significa que el ejemplo en su portapapeles es real, con el NIF del cliente y el sujeto de la aserción incluidos. Pegarlo en un formateador alojado sube exactamente eso, y una aserción SAML en particular es una credencial al portador mientras siga siendo válida. Esta página analiza e imprime el documento en JavaScript y no hace ninguna petición mientras tanto; el panel de red de tus herramientas de desarrollo mostrará lo mismo.
Errores comunes que conviene evitar
- Suponer que formatear XML es tan seguro como formatear JSON. El espacio dentro de un elemento forma parte de su nodo de texto, así que indentar cambia los valores que un analizador vuelve a leer.
- Embellecer un documento firmado. Las firmas cubren una forma canónica del árbol, y el espacio añadido dentro del contenido de un elemento es un cambio de datos: la verificación falla del todo.
- Reindentar una Facturae antes de enviarla. La firma XAdES va dentro del propio archivo, así que un editor que reindente al guardar invalida la factura sin avisar de nada.
- Dejar que una herramienta renombre prefijos de espacio de nombres. La URI es la identidad, pero cada XPath y XSLT de tu código se refiere al prefijo.
- Analizar XML no fiable con las entidades externas activadas. `SYSTEM "file:///…"` lee archivos locales y una URL http hace que el analizador descargue por cuenta de un atacante: eso es XXE.
Comparativa
| Aspecto | Esta herramienta | Formateadores online | Un complemento de editor |
|---|---|---|---|
| Documento enviado a un servidor | Nunca | Normalmente sí | No |
| Avisa cuando indentar cambia los datos | Sí | No | Rara vez |
| Resuelve entidades externas | Nunca | A veces | Configurable |
| Preserva prefijos de espacio de nombres | Siempre | Normalmente | Normalmente |
| Mantiene declaración y marca de orden de bytes | Sí | Varía | Normalmente |
| Precio | Gratis | Gratis / planes de pago | Gratis |
Características
Formateo y minificación
Ambas direcciones, con el ancho de indentación bajo tu control y tabuladores donde un proyecto los exija.
Comprobación de buena formación
Etiquetas desbalanceadas, ampersands sueltos y nombres inválidos se informan con su línea y columna.
Avisos de seguridad de espacios
Los elementos con contenido mixto o texto significativo se marcan antes de que la indentación los reescriba.
Orden de atributos intacto
Los atributos permanecen en orden de documento, porque algunos consumidores y algunas firmas dependen de ello.
CDATA y comentarios preservados
Las secciones se mantienen literales, incluido el contenido que de otro modo habría que escapar.
Documentos grandes admitidos
Una exportación de varios megabytes se formatea sin subida ni tope de tamaño.
Nada que instalar
Sin herramienta de compilación, sin entorno de ejecución, sin dependencias: funciona en la página web.
Listo para árabe y RTL
Interfaz completa en ocho idiomas, incluido el árabe de derecha a izquierda.
Seguro por defecto
Servido por HTTPS, sin rastreo de contenido ni subida a terceros.
Quién la usa
Desarrolladores de integraciones
Leer una respuesta SOAP que llegó en una sola línea sin cortes.
Equipos de finanzas y facturación
Inspeccionar una factura electrónica que la agencia tributaria rechazó.
Administradores de sistemas
Ordenar un archivo de configuración antes de subirlo al control de versiones.
Quien depura una API
Encontrar el único ampersand sin escapar que impidió analizar un documento.
Preguntas Frecuentes
No. Todo se ejecuta localmente en tu navegador — tu texto nunca se sube, guarda ni comparte.
Sí — totalmente gratis, sin cuenta y sin límites.