≡En resumen
- XML no tiene etiquetas predefinidas: cada formato define las suyas para describir sus datos.
- Un documento XML es «bien formado» si cumple la sintaxis y «válido» si además respeta un esquema.
- JSON lo ha sustituido en la mayoría de las API, pero XML sigue siendo el estándar en sitemaps, feeds, ofimática y facturas.
- En España, la factura electrónica usa formatos XML como Facturae y UBL.
- Se procesa con herramientas estándar: DOM, SAX, XPath, XSLT y XQuery.
01 ¿Qué es XML?
XML nació como una versión simplificada de SGML (norma ISO 8879), el lenguaje de documentación técnica de los años ochenta. El grupo de trabajo del W3C, presidido por Jon Bosak (Sun Microsystems), lo diseñó entre agosto y noviembre de 1996, y los editores de la especificación fueron Tim Bray, Jean Paoli y C. M. Sperberg-McQueen. Entre sus objetivos de diseño estaban que se pudiera usar directamente en Internet, que fuera legible por personas y que escribir un programa para procesarlo fuese sencillo.
La versión en uso es XML 1.0, quinta edición (26 de noviembre de 2008). Existe un XML 1.1 (segunda edición de 2006), pero casi todo el software y los formatos siguen declarando la versión 1.0.
02 Sintaxis de XML: elementos, atributos y reglas
| Pieza | Qué es |
|---|---|
| Declaración | Primera línea opcional que indica la versión de XML y la codificación (casi siempre UTF-8) |
| Elemento raíz | Un único elemento que envuelve todo el documento |
| Elemento | Etiqueta de apertura y de cierre con texto u otros elementos dentro |
| Atributo | Par nombre-valor dentro de la etiqueta de apertura, como moneda="EUR" |
| Espacio de nombres | Prefijo ligado a una URI para mezclar vocabularios sin choques de nombres |
| Comentario | Texto entre los signos de comentario que el programa ignora |
<?xml version="1.0" encoding="UTF-8"?>
<!-- pedido de prueba -->
<pedido id="1042">
<cliente>Ana Pérez</cliente>
<producto sku="ZR-41" cantidad="1">Zapatilla running</producto>
<total moneda="EUR">89.95</total>
</pedido>
La primera línea es la declaración, pedido es el elemento raíz, id, sku y moneda son atributos, y el texto entre etiquetas es el contenido.
- ✓Toda etiqueta que se abre se cierra, o se escribe como etiqueta vacía con la barra al final.
- ✓Los elementos se anidan sin cruzarse: el que se abre dentro de otro se cierra antes que él.
- ✓Mayúsculas y minúsculas cuentan: Precio y precio son etiquetas distintas.
- ✓Los valores de los atributos van siempre entre comillas, simples o dobles.
- ✓El ampersand y el signo menor que se escriben como entidades dentro del texto.
- ✓Hay un solo elemento raíz por documento.
03 ¿Para qué sirve XML? Usos en la web y en la empresa
Sitemaps
El protocolo sitemaps.org 0.9 es XML: lista las URL que quieres que rastreen Google y Bing, con extensiones para imágenes, vídeo, noticias e idiomas.
Feeds RSS y Atom
Los blogs, pódcast y medios publican sus novedades en feeds XML que leen agregadores, apps de pódcast y herramientas de automatización.
Factura electrónica
Facturae (formato de las Administraciones Públicas españolas) y UBL son vocabularios XML con esquemas XSD oficiales.
Documentos de oficina
Los .docx, .xlsx y .pptx (Office Open XML) y los ficheros OpenDocument son paquetes ZIP con archivos XML dentro.
Gráficos y mapas
SVG, el formato de gráficos vectoriales de la web, y KML, el de los mapas de Google Earth, son XML.
Integraciones empresariales
Servicios web SOAP, feeds de productos para marketplaces y comparadores, y el intercambio de datos financieros con XBRL.
Para un negocio online, el uso más visible es el sitemap XML: un archivo mal generado (URL con error, redirecciones, etiquetas inválidas) hace que los buscadores lo ignoren. Revisarlo es una de las tareas básicas si quieres posicionar tu web.
04 XML y factura electrónica en España: Facturae y UBL
La factura electrónica no es un PDF: es un fichero estructurado que el programa del cliente lee sin intervención humana, y en la práctica ese fichero suele ser XML. Desde el 15 de enero de 2015, la Ley 25/2013 obliga a facturar electrónicamente a las Administraciones Públicas a través de FACe, en formato Facturae (versión vigente 3.2.2, con su esquema XSD publicado en facturae.gob.es).
Entre empresas, el Real Decreto 238/2026 desarrolla la obligación creada por la Ley 18/2022 «Crea y Crece»: las facturas B2B deberán ajustarse a la norma europea EN 16931 en sintaxis UBL, CII, EDIFACT o Facturae. Tienes el calendario y las obligaciones en nuestra ficha de facturación.
05 XML vs JSON vs HTML: diferencias
| Criterio | XML | JSON | HTML |
|---|---|---|---|
| Para qué sirve | Estructurar e intercambiar datos y documentos | Intercambiar datos entre programas | Presentar contenido en el navegador |
| Etiquetas | Las define cada formato | No tiene etiquetas: objetos y arrays | Predefinidas por el estándar |
| Atributos y metadatos | Sí (atributos, espacios de nombres) | No (solo pares nombre-valor) | Sí |
| Comentarios | Sí | No | Sí |
| Validación formal | DTD, XSD, RELAX NG | JSON Schema (externo) | Validador del W3C |
| Tolerancia a errores | Ninguna: un error detiene el análisis | Ninguna | Alta: el navegador corrige |
| Uso típico hoy | Sitemaps, RSS, facturas, ofimática, SOAP | API REST, configuración, JSON-LD | Páginas web |
JSON desplazó a XML en las API web porque es más compacto y se convierte directamente en objetos del lenguaje de programación. XML se mantiene donde importan los esquemas estrictos, los espacios de nombres para mezclar vocabularios o los documentos con texto y marcado mezclados. No es una cuestión de cuál es mejor: cada integración usa el formato que exige el otro lado.
06 Cómo abrir, leer y procesar un archivo XML
-
1
Ábrelo en el navegador o en un editor
Chrome, Firefox o un editor como VS Code muestran el árbol de elementos y señalan si el documento no está bien formado.
-
2
Compruébalo con un validador
Si el formato tiene esquema (sitemap, Facturae, UBL), valida el archivo contra su XSD para detectar campos que faltan o sobran.
-
3
Consulta datos con XPath
Expresiones como //producto/@sku extraen valores concretos sin recorrer todo el documento.
-
4
Transforma con XSLT
Convierte un XML en HTML, en otro XML o en texto; es lo que usan muchos sitemaps para verse «bonitos» en el navegador.
-
5
Procésalo desde código
Todos los lenguajes tienen librerías: DOM carga el árbol completo en memoria y SAX lo lee por eventos, ideal para ficheros enormes.
Si necesitas extraer datos de XML ajenos, XPath es el lenguaje de consulta que conviene aprender primero. Y cuando el XML forma parte de un producto (importar catálogos de proveedores, generar facturas, conectar con un ERP), lo habitual es resolverlo dentro de un proyecto de desarrollo de aplicaciones web a medida, con validación automática contra el esquema en cada intercambio.
Preguntas frecuentes sobre XML
Significa Extensible Markup Language, lenguaje de marcado extensible. «Extensible» indica que no tiene etiquetas fijas: cada formato define las suyas.
Sirve para guardar e intercambiar datos estructurados entre programas: sitemaps, feeds RSS, facturas electrónicas, documentos de Office, gráficos SVG o integraciones con ERP y marketplaces.
Con cualquier navegador o editor de texto. Para trabajar con sus datos, puedes importarlo en Excel o procesarlo con XPath, XSLT o una librería de tu lenguaje de programación.
HTML tiene etiquetas fijas para mostrar contenido en el navegador y tolera errores; XML define etiquetas propias para describir datos y un solo error de sintaxis invalida el documento.
Depende del uso. JSON es más ligero y es el estándar de las API; XML ofrece esquemas estrictos, atributos y espacios de nombres, y es obligatorio en sitemaps, feeds y factura electrónica.
Un grupo de trabajo del W3C presidido por Jon Bosak, con Tim Bray, Jean Paoli y C. M. Sperberg-McQueen como editores. Se publicó como recomendación el 10 de febrero de 1998.
En España, normalmente sí: Facturae y UBL son formatos XML. La normativa B2B admite también CII y EDIFACT, este último no basado en XML.
Fuentes consultadas
Sobre el autor
Germán Gutiérrez
Development Manager en appyweb
Dirige el equipo de desarrollo de appyweb: aplicaciones web y móviles, SaaS, integraciones y arquitectura de software.
Ver perfil en LinkedIn ↗