Cómo formatear y validar XML: bien formado frente a válido
XML sigue moviendo buena parte del mundo: feeds RSS, sitemaps, facturas, ficheros bancarios, documentos de Office, diseños de Android e infinidad de archivos de configuración. Y no perdona: basta una etiqueta sin cerrar o un & suelto para que el programa que lo lee se detenga con un error.
Esta guía explica cómo formatear XML para que sea legible, la diferencia entre bien formado y válido, cómo validar con un esquema XSD y cómo corregir los seis errores detrás de la mayoría de XML rotos, con el formateador de XML y el validador de XML gratuitos.
Formatear XML
El XML suele llegar en una sola línea, generado por un programa para otros programas. Formatearlo añade saltos de línea y sangría para que se vea la estructura:
<catalog><book id="bk101"><title>XML Basics</title><price>29.95</price></book></catalog><catalog>
<book id="bk101">
<title>XML Basics</title>
<price>29.95</price>
</book>
</catalog>Un buen formateador cambia solo los espacios entre etiquetas. Los nombres de los elementos, los atributos, el texto, los comentarios y las secciones CDATA quedan exactamente igual, y el texto que mezcla palabras y etiquetas (como <p>Hola <b>mundo</b></p>) no se toca, porque sus espacios forman parte del contenido.
Cómo formatear XML, paso a paso
- Abre el formateador de XML y pega tu XML en Entrada XML, haz clic en Abrir archivo o suelta un archivo .xml en el recuadro. Ejemplo carga uno de muestra.
- Mira la línea bajo el recuadro: dice ✓ Es un XML bien formado o muestra el primer error con su línea y columna.
- En Sangría, elige 2 espacios, 4 espacios, Tabulador o Una línea (minificado) para volver a dejarlo en una sola línea. Marca Escribir elementos vacíos como <tag/> para acortar los elementos vacíos, o desmarca Conservar comentarios para quitarlos.
- Haz clic en Formatear XML y copia o descarga el resultado.
Bien formado frente a válido: ¿qué diferencia hay?
Se suelen confundir, pero significan cosas distintas:
- Un XML bien formado cumple las reglas del propio lenguaje XML: cada etiqueta se cierra y se anida bien, hay exactamente un elemento raíz, los valores de los atributos van entre comillas y los caracteres especiales están escapados. Todo XML debe estar bien formado; si no, nada puede leerlo.
- Un XML válido está bien formado y además cumple un esquema: una descripción de qué elementos y atributos se permiten, en qué orden y qué tipo de valores contienen. Por ejemplo, “cada libro necesita un id y el precio debe ser un número”.
El lenguaje de esquemas más habitual es XSD (XML Schema). Los esquemas se usan siempre que dos sistemas intercambian XML y deben ponerse de acuerdo en su forma exacta, como en las facturas electrónicas, las transferencias bancarias o los feeds de productos.
Cómo validar XML con un esquema XSD
- Abre el validador de XML y añade tu XML a la izquierda.
- Pega tu esquema en Esquema XSD (opcional) a la derecha o abre un archivo .xsd. Déjalo vacío para comprobar solo que el XML está bien formado.
- Haz clic en Validar XML. Un informe verde significa que el XML cumple el esquema. Si no, cada problema aparece con su línea, como un atributo obligatorio que falta o un precio que no es un número, e Ir a la línea te lleva directamente a él.
La comprobación del esquema se hace en tu navegador con libxml2, la biblioteca XML estándar que usan muchos programas, por eso sus mensajes están en inglés. Si un esquema importa otros archivos, primero hay que copiar esas definiciones en un solo esquema.
Los 6 errores de XML más comunes y cómo corregirlos
1. Una etiqueta que nunca se cierra
Cada etiqueta de apertura necesita su etiqueta de cierre, o cerrarse a sí misma, como <cover/>.
<!-- mal -->
<title>XML Basics
<!-- bien -->
<title>XML Basics</title>2. Etiquetas cerradas en mal orden o con mayúsculas distintas
Las etiquetas deben cerrarse en orden inverso al que se abrieron. Además, XML distingue mayúsculas: <Title> y </title> no coinciden.
<!-- mal -->
<b><i>Important</b></i>
<Title>XML Basics</title>
<!-- bien -->
<b><i>Important</i></b>
<title>XML Basics</title>3. Un & o un < sin escapar
En el texto, & debe escribirse & y < debe escribirse <. Es el error más común en el XML escrito a mano.
<!-- mal -->
<company>Smith & Sons</company>
<!-- bien -->
<company>Smith & Sons</company>4. Valores de atributo sin comillas
HTML a veces permite omitirlas; XML nunca. Usa comillas dobles o simples.
<!-- mal -->
<book id=101>
<!-- bien -->
<book id="101">5. Más de un elemento raíz
Un documento XML tiene exactamente un elemento exterior. Agrupa los elementos repetidos dentro de uno padre.
<!-- mal -->
<book>First</book>
<book>Second</book>
<!-- bien -->
<books>
<book>First</book>
<book>Second</book>
</books>6. Entidades de HTML como
XML solo conoce cinco entidades con nombre: &, <, >, " y '. Escribe las demás como números de carácter, por ejemplo   para un espacio de no separación.
<!-- mal -->
<price>10 EUR</price>
<!-- bien -->
<price>10 EUR</price>El formateador y el validador reconocen cada uno de estos errores y los explican con palabras sencillas, con la línea y la columna.
Más cosas que puedes hacer con XML
- XML a JSON: convierte XML en JSON para aplicaciones web y API.
- XML a CSV: abre registros XML en Excel o Google Sheets.
- Probador de XPath: encuentra exactamente los elementos que necesitas con expresiones XPath.
- ¿También trabajas con JSON? Lee cómo formatear y validar JSON.
¿Se sube mi XML?
No. El formateo y la validación, incluida la comprobación del esquema, se hacen en tu navegador, así que tu XML y tu esquema nunca salen de tu dispositivo.
Preguntas frecuentes
¿Necesito un esquema para validar XML?
No. Sin esquema, el validador comprueba que el XML está bien formado, lo que detecta la mayoría de errores. Un esquema añade comprobaciones de estructura y valores.
¿Por qué aparece como error?
Porque es una entidad de HTML, no de XML. Usa   en su lugar o declara la entidad en el DOCTYPE del documento.
¿Formatear cambia mis datos?
No. Solo cambian los espacios entre etiquetas. El texto, los atributos, los comentarios y el CDATA quedan exactamente igual.