Comprueba tu XML
Etiquetas que no coinciden, entidades no definidas, espacios de nombres rotos: todo detectado y ubicado con precisión por el propio analizador de XML del navegador. No se guarda nada.
- Nunca se guarda
- Sin filas ni esperas
- Sin registro, sin marca de agua
Pega el XML y se valida mientras escribes.
Cómo funciona
Pega tu XML
O suelta el archivo. No se envía nada a ningún lugar.
Lee el veredicto
Bien formado, con un resumen de lo que contiene. O la línea y la columna exactas del primer problema.
Corrige y vuelve a comprobar
Edita ahí mismo; la respuesta se actualiza mientras escribes.
Dos niveles distintos, y cuál es este
XML define dos niveles de corrección, y se confunden constantemente. Bien formado significa que el documento cumple la sintaxis propia de XML: un solo elemento raíz, todas las etiquetas cerradas, anidación correcta, caracteres válidos, signos & y corchetes angulares correctamente escapados, valores de atributo entre comillas y nombres de atributo únicos dentro de cada elemento. Válido significa algo más exigente: que el documento además se ajusta a un esquema concreto, con los elementos correctos en el orden correcto y con el tipo de valor correcto. Esta página comprueba lo primero. Todo analizador de XML rechaza un documento que no lo cumple, así que es la comprobación que decide si un archivo se puede leer o no.
Los fallos son previsibles. Un & sin escapar es, con mucha diferencia, el más común: inicia una referencia a entidad, así que una URL con query string pegada tal cual dentro de un elemento rompe el documento. Un < suelto en el texto hace lo mismo. Después vienen las etiquetas que no coinciden o que no se cierran, los elementos cerrados en el orden equivocado, dos elementos raíz y algún carácter de control perdido que XML no admite en absoluto, aunque esté invisible en el archivo.
Nunca se descarga una DTD ni un esquema, a propósito, y eso es una medida de seguridad, no una función que falta. Un documento XML puede nombrar una entidad externa, y un analizador que la resuelve va a buscar aquello a lo que apunta: un archivo en disco, una dirección de una red interna. Esa es la vulnerabilidad XML External Entity (XXE), una de las clases de fallo más explotadas que existen, y la única defensa completa es no resolverlas. Así que aquí nada se conecta a nada, y el precio es que la validación contra un esquema queda fuera del alcance.
Lo que obtienes es la línea y la columna exactas donde se detuvo el análisis. Como con cualquier analizador, ese es el punto donde el documento dejó de tener sentido, no donde está el error: una etiqueta sin cerrar suele señalarse en la etiqueta de cierre inesperada que viene después, a veces cientos de líneas más abajo. La posición indicada es desde donde hay que empezar a buscar hacia arriba, no lo que hay que editar.
Si buscas otra cosa
Para validar contra un esquema, xmllint es la herramienta de referencia: xmllint --noout --schema schema.xsd file.xml para XSD, --relaxng para RELAX NG y --noout --valid para una DTD. Informa de todas las infracciones en lugar de detenerse en la primera, que es lo que quieres cuando un documento está realmente mal y no solo roto.
Con cualquier entrada que no sea de confianza, la configuración del analizador importa más que el validador. Desactiva explícitamente la resolución de entidades externas y el procesamiento de DTD en el lenguaje que uses (defusedxml en Python, LIBXML_NONET en PHP, el procesamiento seguro en Java), porque varios analizadores populares todavía resuelven entidades por defecto, y es en ese valor por defecto donde vive la vulnerabilidad.
Preguntas frecuentes
¿Se guarda mi XML en algún lugar?
No. No hay llamadas al servidor ni registros, y no se guarda nada. Puedes desconectarte de internet después de que cargue la página y sigue funcionando. Aquí eso importa más de lo que parece: lo que la gente pega en un formateador en línea son respuestas de API, archivos de configuración y mensajes de error, y es habitual que contengan tokens, datos de clientes y nombres de servidores internos.
¿Qué significa “bien formado”?
Que el documento cumple las reglas propias de XML: todas las etiquetas cerradas, anidadas en el orden correcto, exactamente un elemento raíz, atributos entre comillas, y cada & y cada < escapados o formando parte de una entidad válida. Es la primera de las dos preguntas que puedes hacerle a un XML. La segunda, si el documento se ajusta a un esquema concreto, es aparte, y esta página no la responde.
¿Valida contra un esquema DTD o XSD?
No. Comprueba que el documento sea XML bien formado, que es el fallo que la mayoría de la gente tiene delante en realidad. La validación contra un esquema necesita tu archivo de esquema y un analizador validador, y ningún navegador trae uno; decir que lo hacemos aquí significaría enviar tu documento a un servidor o, sin avisar, no comprobar nada. Vale la pena conocer la diferencia: un documento puede estar perfectamente bien formado y aun así no ajustarse a su esquema.
¿Cuáles son los errores de XML más comunes?
El habitual es un & suelto: & debe escribirse &, incluso dentro de una URL, así que una query string pegada tal cual dentro de un elemento rompe el documento. Después: una etiqueta cerrada en el orden equivocado, dos elementos raíz, una entidad no definida como (que HTML define y XML no) y un prefijo de espacio de nombres usado sin declararlo. Cada uno se indica por su nombre y con su posición.
¿El HTML es XML válido?
Normalmente no, y eso es lo normal, no un error. HTML permite etiquetas sin cerrar como <br> y <li>, atributos sin comillas y signos & sueltos; XML no permite nada de eso. Si necesitas HTML que además sea XML válido, eso es XHTML, y debe cerrar todas las etiquetas.
¿Hay un límite de tamaño?
La memoria disponible, no un tope que impongamos nosotros. Los documentos de unos pocos megabytes se formatean al instante; los muy grandes están limitados por cuánto se puede mantener en memoria a la vez, no por nada de nuestra parte.
Conviene saber: Comprueba que esté bien formado; no valida contra un esquema. Se revisa que las etiquetas estén equilibradas, bien anidadas y con caracteres válidos, y obtienes la línea y la columna exactas del primer problema. Validar contra una DTD o XSD implicaría descargarla, y esa es una solicitud de red que esta página no hace nunca, a propósito.
Agrega esta herramienta a tu sitio web
Gratis para cualquier blog, página de clase o artículo de ayuda. Pega un fragmento de código y tus visitantes podrán usarla directamente en tu página.
Más Herramientas para desarrolladores
Formatear XML
Aplica sangría al XML para poder leerlo
Validar JSON
Descubre exactamente dónde falla tu JSON
Formatear JSON
Convierte un JSON ilegible en uno legible
Decodificar JWT
Lee el contenido de un token de forma privada
Codificar Base64
Convierte texto o un archivo a Base64
Decodificar Base64
Convierte Base64 de nuevo en texto o en un archivo