Da formato al XML con una sangría clara, conservando su contenido y significado.
Qué hace
XML Formatter organiza un documento XML con sangría para que veas cómo se anidan sus elementos. Cambia cómo se dispone el documento, no lo que dice: el texto, los atributos, los comentarios, las secciones CDATA, las instrucciones de procesamiento y los espacios de nombres se conservan tal como se escribieron.
Úsalo cuando el XML llega en una sola línea larga o con una sangría irregular. Tu XML se lee como texto sin formato: nada de lo que contiene se ejecuta, y nada a lo que haga referencia se carga ni se consulta.
Qué admite
- Un documento XML bien formado con un único elemento raíz. Se aceptan una declaración XML, un DOCTYPE, comentarios e instrucciones de procesamiento antes del elemento raíz, y también comentarios e instrucciones de procesamiento después de él.
- Un DOCTYPE, incluido uno con una DTD escrita dentro del documento, se conserva exactamente como se escribió, con sus saltos de línea. Para la herramienta es solo texto: no se carga, descarga ni consulta nada a partir de él, y no se expande ninguna entidad que declare. No se admiten: fragmentos con más de un elemento raíz, un segundo DOCTYPE, un DOCTYPE después del elemento raíz y un DOCTYPE que nunca termina.
- Las cinco entidades predefinidas (&, <, >, " y ') y las referencias numéricas de caracteres (A o A) siempre se conocen. Cualquier otra entidad, como , se rechaza cuando el documento no tiene DOCTYPE, porque nada la declara. Cuando el documento tiene un DOCTYPE, esas referencias se aceptan y se dejan como se escribieron; nunca se expanden.
- Espacios de nombres: los prefijos deben declararse. Los prefijos, las declaraciones xmlns y los atributos xml: como xml:lang y xml:space se conservan tal como se escribieron.
- Los comentarios, las secciones CDATA, las instrucciones de procesamiento y la declaración XML se conservan tal como se escribieron, y los valores de los atributos mantienen las comillas, simples o dobles, que usaste.
- El texto nunca se reajusta ni se recorta. El texto de un elemento que solo contiene texto, el texto mezclado con elementos y todo lo que hay dentro de un elemento marcado con xml:space="preserve" se conservan exactamente como se escribieron, con sus espacios y saltos de línea.
- Sangría de 2 o 4 espacios, nunca tabuladores. Los saltos de línea del resultado son siempre del mismo tipo, sea cual sea el de tu texto.
Conviene saber
- XML es estricto. Una etiqueta que nunca se cierra, etiquetas de cierre en el orden equivocado, un valor de atributo sin comillas, un & suelto o un < literal en el texto, un atributo repetido, un prefijo de espacio de nombres sin declarar y un carácter que XML no admite se rechazan. La herramienta señala el problema más cercano al principio que encuentra y nunca repara el XML.
- Además de la sangría, la herramienta hace dos cambios: una serie de líneas en blanco entre elementos pasa a ser una sola línea en blanco, y un elemento con muchos atributos puede tener los atributos repartidos en líneas separadas. Un elemento sin nada entre sus etiquetas, como <a></a>, se queda como lo escribiste.
- El espacio en blanco que solo separa elementos se sustituye por la sangría. Donde el texto está junto a elementos, la herramienta no puede saber si los espacios importan, así que los deja como están: un documento escrito como una sola línea larga de contenido mixto se queda en una sola línea.
- La herramienta comprueba que tu XML esté bien formado, no que sea válido: nunca comprueba el documento contra una DTD ni contra un esquema, así que un DOCTYPE se lleva adelante tal como está.
- Si la sangría hiciera el resultado mucho mayor que el límite de tamaño, la herramienta se detiene antes de formatear. Usa 2 espacios o menos anidamiento.
Cómo usarla
- Pega o escribe un documento XML en el cuadro de entrada. No se ejecuta nada mientras escribes.
- Elige la sangría («2 espacios» o «4 espacios») y pulsa «Formatear».
- Lee el resultado junto a tu entrada. Si tu XML se rechaza, el mensaje indica qué está mal y dónde.
- Pulsa «Copiar» para poner el resultado en el portapapeles, o «Descargar» para guardarlo como formatted.xml.
Ejemplos
Formatear un documento
Pega este XML y pulsa «Formatear» con «2 espacios» seleccionado. Los elementos que solo contienen otros elementos reciben sangría. El elemento note mezcla texto con un elemento, así que se queda en una sola línea, exactamente como lo escribiste. El elemento vacío <book id="2"></book> también se queda como lo escribiste.
<?xml version="1.0" encoding="UTF-8"?><library><book id="1"><title>Dune</title><note>Read <i>first</i>.</note></book><book id="2"></book></library><?xml version="1.0" encoding="UTF-8"?>
<library>
<book id="1">
<title>Dune</title>
<note>Read <i>first</i>.</note>
</book>
<book id="2"></book>
</library>
Una etiqueta de cierre que no coincide
El elemento book nunca se cierra, así que la etiqueta de cierre que viene a continuación, </library>, no coincide con el elemento que está abierto. La herramienta no adivina dónde falta una etiqueta. Se niega y señala la etiqueta de cierre que no pudo emparejar.
<library>
<book>
<title>Dune</title>
</library>Esta etiqueta de cierre no coincide con el elemento que está abierto. Las etiquetas de cierre deben ser idénticas a las de apertura, también en mayúsculas y minúsculas, y cerrarse en orden inverso.
Línea 4, columna 1
Una declaración DOCTYPE
Pega este XML y pulsa «Formatear». El DOCTYPE declara una entidad llamada who y se conserva exactamente como se escribió. Para la herramienta es solo texto: no se carga nada a partir de él, y la referencia &who; se queda como se escribió en lugar de sustituirse por Ana.
<!DOCTYPE note [<!ENTITY who "Ana">]>
<note><to>&who;</to></note><!DOCTYPE note [<!ENTITY who "Ana">]>
<note>
<to>&who;</to>
</note>
Un nombre con letras acentuadas
Pega este XML y pulsa «Formatear». XML permite letras acentuadas en los nombres de elementos y de atributos, y se formatean como cualquier otro nombre.
<livro><título>Dom Casmurro</título><autor ano="1899">Machado de Assis</autor></livro><livro>
<título>Dom Casmurro</título>
<autor ano="1899">Machado de Assis</autor>
</livro>
Límites y privacidad
Límites de tamaño
- Entrada: hasta 2.000.000 bytes de texto en UTF-8 (unos 2 MB). Las letras acentuadas y los emojis ocupan más de un byte cada uno. Una entrada mayor se rechaza.
- Resultado: también hasta 2.000.000 bytes. Si el resultado completo fuera mayor, la herramienta muestra solo una vista previa incompleta de los primeros 100.000 bytes, y esa vista previa no se puede copiar ni descargar.
- Anidamiento: hasta 128 niveles de elementos (la raíz es el nivel 1; los elementos con autocierre también cuentan) dentro de otros. Un XML más profundo se rechaza porque supera lo que procesa la herramienta.
- Tiempo: una ejecución que tarda más que su límite de tiempo se detiene. Prueba con una entrada más pequeña.
Tu privacidad
El texto que escribes o pegas, o abres desde un archivo local, se procesa localmente en tu navegador, en un Web Worker dedicado. Nunca se sube ni se envía al servidor (un archivo que abres se lee solo en tu navegador), y no se escribe en el almacenamiento, en cookies ni en la barra de direcciones.
«Copiar» pone el resultado en el portapapeles y «Descargar» lo guarda como archivo, pero solo cuando pulsas el botón. El archivo se crea en tu navegador, así que no se sube nada.
Para conocer todos los detalles, consulta la Política de privacidad
Herramientas y páginas relacionadas
Tu texto se queda en la página cuando cambias de herramienta en la misma pestaña, así que puedes probar el mismo texto en otra. Recargar o cerrar la pestaña lo termina.