Guías  /  Herramientas para desarrolladores

Cómo validar XML y corregir errores de formato

6 de julio de 2026  ·  6 min de lectura

Escrito por Andrian ·  Redactor técnico, Static.app

Revisado por Roman Frank ·  Revisor técnico, Static.app

Quieres validar tu XML, lo pegas en un analizador y te devuelve una avalancha de errores en rojo: "not well-formed", "junk after document element" o un número de línea y de columna que no dice nada a primera vista. Casi todos estos errores vienen de uno de siete fallos de sintaxis, y cada uno tiene una solución rápida y predecible. El visor XML de Static.app, gratuito y en el navegador, avisa cuando la entrada no está bien formada y vuelve a aplicar la sangría al resto, y así es como encuentras dónde se rompe.

Bien formado frente a válido: dos comprobaciones distintas

Que un documento esté bien formado es una comprobación de sintaxis, y que sea válido es una comprobación de esquema que se añade a la anterior. Un documento bien formado cumple las reglas de sintaxis de XML. Un documento válido está bien formado y además se ajusta a un DTD o a un XSD. Mucha gente usa los dos términos como sinónimos, pero saber cuál de las dos comprobaciones falla te dice dónde mirar.

  • Bien formado se refiere solo a la sintaxis. El documento tiene exactamente un elemento raíz, todas las etiquetas están cerradas, las etiquetas se anidan correctamente, los valores de los atributos van entre comillas y los caracteres especiales &, < y > están escapados. Los nombres de etiqueta distinguen mayúsculas de minúsculas, así que <Title> y </title> no coinciden. Si se rompe cualquiera de estas reglas, ningún analizador XML leerá el archivo.
  • Válido es una comprobación más estricta y opcional que se suma a la de estar bien formado. Un documento válido está bien formado y se ajusta a un esquema, un DTD o un XSD, que define qué elementos se permiten, en qué orden y con qué atributos. Un documento puede estar perfectamente bien formado y aun así no ser válido frente a un esquema.
Tu XML PASO 1 ¿Bien formado? falla Ningún analizador leerá el archivo pasa PASO 2 OPCIONAL ¿Válido? falla Se analiza bien, pero incumple el esquema pasa Bien formado y válido
El orden no es negociable. Un documento puede estar perfectamente bien formado y aun así no cumplir su esquema, pero nada puede ser válido sin estar antes bien formado, porque un validador de esquemas no puede comprobar un archivo que el analizador no ha podido cargar.

La mayoría de los problemas del día a día del tipo "mi XML no se analiza" son problemas de XML mal formado. Arregla primero la sintaxis y preocúpate del esquema cuando el analizador ya pueda cargar el archivo.

Los errores más comunes de XML mal formado y cómo arreglar cada uno

Siete fallos de sintaxis explican casi todos los errores de XML mal formado: etiquetas sin cerrar o que no coinciden, más de un elemento raíz, ampersands y corchetes angulares sin escapar, valores de atributo sin comillas, caracteres sueltos antes del prólogo, orden de anidación incorrecto y caracteres de control no válidos. Cada uno tiene un único arreglo mecánico.

QUÉ LO ROMPE QUÉ LO ARREGLA <item>shoes <item>shoes</item> <user/><user/> <users><user/><user/></users> Ben & Jerry Ben &amp; Jerry <book id=42> <book id="42"> Cada arreglo añade sintaxis. Ninguno cambia tus datos.
Cuatro de los fallos de esta sección, junto a su arreglo. Merece la pena interiorizar el patrón: la solución siempre es mecánica y los valores que te importan nunca eran el problema.

Etiquetas sin cerrar o que no coinciden

Cada etiqueta de apertura necesita una de cierre con el mismo nombre y las mismas mayúsculas. <item>shoes</item> es correcto; <item>shoes o <item>shoes</Item> no lo son. Los elementos vacíos pueden cerrarse a sí mismos, como <br/>. Cuando un analizador informa de un final de archivo inesperado, la causa suele ser una etiqueta que se dejó abierta antes.

Más de un elemento raíz

Un documento XML debe tener un único elemento de nivel superior que envuelva todo lo demás. Dos elementos hermanos de nivel superior sin nada alrededor, como <user>...</user><user>...</user>, provocan "junk after document element". Envuélvelos en un contenedor, por ejemplo <users>...</users>.

Ampersands y corchetes angulares sin escapar

Un & sin escapar inicia una referencia de entidad, así que Ben & Jerry dentro del contenido de texto es un error. Escribe Ben &amp; Jerry. Del mismo modo, un < o un > literal en el texto debe escribirse como &lt; o &gt;. Si tu contenido tiene mucho texto parecido a marcado, envuélvelo en una sección <![CDATA[ ... ]]> en lugar de escapar cada carácter.

Valores de atributo sin comillas

Todos los valores de atributo necesitan comillas. <book id=42> no está bien formado; usa <book id="42">. Valen comillas simples o dobles, siempre que coincidan en el mismo atributo.

La declaración XML <?xml version="1.0"?> debe ser lo primero de todo en el archivo, sin espacios, líneas en blanco ni caracteres delante. Un culpable oculto frecuente es una marca de orden de bytes (BOM) de UTF-8 o un espacio copiado antes de la declaración, que produce errores como "content is not allowed in prolog". Borra todo lo que haya antes de <?xml.

LOS PRIMEROS BYTES DEL ARCHIVO BYTE UNO Falla BOM esp < ? x m l … "content is not allowed in prolog" Funciona < ? x m l … la declaración es lo primero de todo
Los dos archivos se ven idénticos en un editor, y eso es lo que hace tan molesto este error. Una marca de orden de bytes y un espacio suelto son caracteres invisibles que cuentan igualmente como contenido, y antes de la declaración no se permite contenido.

Orden de anidación incorrecto

Las etiquetas deben cerrarse en orden inverso al de apertura. <b><i>text</b></i> está en desorden; lo correcto es <b><i>text</i></b>. Los elementos que se solapan son uno de los fallos estructurales más comunes cuando se edita XML a mano.

CORRECTO <b> </b> <i>text</i> <b><i>text</i></b> Cada etiqueta se cierra dentro de la anterior. EN DESORDEN <b> </b> <i> </i> <b><i>text</b></i> Las dos cajas se cruzan: ningún árbol lo admite.
Por eso la regla es cerrar en orden inverso al de apertura. Los elementos son cajas dentro de cajas: uno puede estar dentro de otro o a su lado, pero nunca mitad dentro y mitad fuera. Los solapamientos son el fallo estructural más común al editar XML a mano.

Caracteres no válidos

XML 1.0 no admite la mayoría de los caracteres de control, como un salto de página o un byte nulo, aunque parezcan invisibles. Suelen colarse al copiar y pegar desde otro programa. Eliminar el byte problemático, o sustituirlo por una referencia de carácter válida, resuelve el error.

Cómo el visor XML saca a la luz el fallo

El visor XML de Static.app saca a la luz el fallo volviendo a aplicar la sangría al documento y negándose a formatear una entrada que no esté bien formada. Leer el error en bruto de un analizador es mucho más fácil cuando puedes ver el documento formateado. El visor XML, gratuito, está pensado justo para esto y funciona por completo en tu navegador: nada de lo que pegas se sube a un servidor.

  1. Pega tu XML en el panel de entrada o abre un archivo .xml de tu ordenador. Hay un botón Ejemplo si quieres probarlo primero.
  2. Pulsa Formatear. El visor XML vuelve a aplicar la sangría al documento con la anidación correcta para que la estructura se recorra con facilidad, y comprueba sobre la marcha que la entrada esté bien formada.
  3. Si algo está roto, el visor señala el problema en lugar de formatear en silencio un texto defectuoso, y así puedes ir directo a la etiqueta sin cerrar o al carácter suelto y corregirlo.
  4. Cuando el documento esté limpio, copia el resultado formateado o descárgalo como archivo.

En cuanto a la seguridad, el visor XML rechaza las declaraciones DOCTYPE y las entidades externas, lo que lo protege frente a ataques XXE (XML external entity). Nunca deberías "activar la carga de DTD externos" para que un documento rebelde se analice; esa es justo la puerta por la que entra XXE. Si un archivo solo se analiza con las entidades externas activadas, trátalo como una señal de alarma sobre el archivo, no como un ajuste que haya que cambiar.

Cuando ya esté bien formado

Cuando tu XML esté bien formado, el conversor de XML a JSON de Static.app convierte el documento en un objeto JSON estructurado. Esa es la forma que suele esperar una aplicación JavaScript o una API. Y si estás dudando qué formato elegir en primer lugar, la guía JSON vs XML explica dónde encaja cada uno.

Preguntas frecuentes

Las cuatro respuestas siguientes explican qué separa un XML bien formado de uno válido, por qué un ampersand suelto rompe un documento, si el visor XML envía tus datos a algún sitio y si puede comprobar un documento contra un esquema.

¿Qué diferencia hay entre XML bien formado y XML válido?

Bien formado significa que el documento cumple las reglas de sintaxis de XML: un elemento raíz, etiquetas cerradas y bien anidadas, atributos entre comillas y caracteres especiales escapados. Válido significa que está bien formado y además se ajusta a un esquema (un DTD o un XSD) que define los elementos y la estructura permitidos. Un documento puede estar bien formado sin ser válido, pero no puede ser válido sin estar antes bien formado.

¿Por qué un ampersand hace que mi XML esté mal formado?

En XML, un & suelto inicia una referencia de entidad, así que el analizador espera que después venga algo como &amp; o &#38;. Un ampersand aislado en el contenido de texto rompe esa expectativa. Escápalo como &amp; o envuelve el texto que lo rodea en una sección CDATA si contiene muchos caracteres especiales.

¿El visor XML envía mis datos a algún sitio?

No, siempre que tengas JavaScript activado. El visor XML formatea y comprueba entonces tu XML directamente en tu navegador, así que el contenido nunca se guarda en un servidor. Con JavaScript desactivado, el formulario se envía a nuestro servidor. Además, el visor bloquea DOCTYPE y las entidades externas, de modo que ver XML de origen dudoso es seguro.

¿Puede comprobar mi XML contra un esquema?

No. El visor XML de Static.app comprueba solo que el documento esté bien formado: confirma que la sintaxis es correcta y lo formatea para leerlo con comodidad. La validación completa contra un DTD o un XSD concreto es un paso aparte. Que el documento esté bien formado es el requisito previo, ya que un validador de esquemas no puede comprobar un archivo que el analizador ni siquiera es capaz de cargar.

¿Quieres probarlo?

Valida tu XML ahora

Volver a todas las guías