Gliora

XML

Concepto de Datos y formatos en Utilidades, conectado con sus herramientas y conceptos vecinos.

Actualizado el 31 de agosto de 2026

XML (eXtensible Markup Language) es un lenguaje de marcado diseñado para almacenar y transportar datos de forma estructurada y legible tanto por personas como por máquinas. A diferencia de HTML, XML no define etiquetas predefinidas: cada proyecto puede definir su propia estructura. Publicado por el W3C en 1998, fue durante años el formato universal de intercambio de datos, rol que hoy comparte —y en muchos contextos ha cedido— a JSON.

Estructura básica de un documento XML

<?xml version="1.0" encoding="UTF-8"?>
<catalogo>
  <producto id="P001" categoria="electronica">
    <nombre>Auriculares Bluetooth</nombre>
    <precio moneda="EUR">79.99</precio>
    <disponible>true</disponible>
    <etiquetas>
      <etiqueta>audio</etiqueta>
      <etiqueta>inalambrico</etiqueta>
    </etiquetas>
  </producto>
  <producto id="P002" categoria="hogar">
    <nombre>Lámpara LED</nombre>
    <precio moneda="EUR">24.50</precio>
    <disponible>false</disponible>
  </producto>
</catalogo>

Un documento XML bien formado debe cumplir estas reglas:

  1. Un único elemento raíz que contenga a todos los demás.
  2. Todas las etiquetas cerradas: <nombre>Valor</nombre> o autocerrante <vacio />.
  3. Atributos entre comillas dobles: id="P001".
  4. Caracteres reservados escapados: <&lt;, >&gt;, &&amp;, "&quot;.
  5. Sensible a mayúsculas: <Nombre> y <nombre> son etiquetas distintas.

Elementos vs. atributos: ¿cuándo usar cada uno?

XML permite representar los mismos datos de dos formas:

<!-- Con atributos -->
<producto id="P001" nombre="Auriculares" precio="79.99" />

<!-- Con elementos hijos -->
<producto>
  <id>P001</id>
  <nombre>Auriculares</nombre>
  <precio>79.99</precio>
</producto>

La convención general: usa atributos para metadatos que identifican o clasifican el elemento (IDs, categorías, unidades de medida), y elementos hijos para el contenido principal que puede tener subestructura o cambiar con frecuencia.

Namespaces: evitar colisiones de nombres

Los namespaces evitan conflictos cuando combinas XML de distintas fuentes. Se declaran con xmlns:

<raiz xmlns:factura="http://empresa.es/factura"
      xmlns:envio="http://empresa.es/envio">
  <factura:numero>F-2026-0042</factura:numero>
  <envio:direccion>Gran Vía 10, Madrid</envio:direccion>
</raiz>

El prefijo (factura:, envio:) asocia cada etiqueta a su namespace. La URI del namespace no tiene que ser una URL real; es solo un identificador único global.

XML frente a JSON y YAML

CaracterísticaXMLJSONYAML
LegibilidadModerada (muchas etiquetas)AltaMuy alta
AtributosSí (nativo)No (todo son propiedades)No
ComentariosSí (<!-- -->)NoSí (#)
NamespacesNoNo
Validación de esquemaXSD, DTD, Relax NGJSON SchemaJSON Schema
TransformaciónXSLT
Velocidad de parseoLentaRápidaMedia
Uso típicoSOAP, Office, SVG, legadoAPIs RESTConfiguración, DevOps

¿Dónde se usa XML hoy?

  • Microsoft Office y LibreOffice: .docx, .xlsx, .pptx son archivos ZIP que contienen XML internamente. Puedes renombrar un .docx a .zip, descomprimirlo y editar el XML a mano.
  • SVG: el formato de gráficos vectoriales escalables es XML. Puedes abrir cualquier .svg con un editor de texto y modificar sus atributos directamente.
  • RSS y Atom: los feeds de noticias y podcasts usan XML. Cada <item> o <entry> describe un artículo con su título, URL y fecha de publicación.
  • SOAP: el protocolo de servicios web heredado usa XML para los mensajes de petición y respuesta. Aún domina en banca, seguros y administración pública.
  • Android: los layouts de interfaz (res/layout/*.xml) y el AndroidManifest.xml están en XML.
  • Maven (Java): el pom.xml describe las dependencias y la configuración del proyecto.
  • Configuración de servidores: Tomcat, Spring y muchos servidores de aplicaciones Java usan XML para su configuración principal.

Conceptos relacionados

Preguntas frecuentes

¿Para qué se usa XML hoy en día?
XML sigue siendo el formato estándar en muchos contextos: los archivos de Office (.docx, .xlsx) son ZIP con XML internamente, los feeds RSS y Atom usan XML, el protocolo SOAP para servicios web lo usa para sus mensajes, los layouts de Android están en XML y SVG es XML para gráficos vectoriales.
¿Qué diferencia hay entre XML y HTML?
¿Es XML mejor que JSON?
Depende del contexto. XML es más expresivo (namespaces, atributos, validación con XSD, transformación con XSLT) y sigue siendo el estándar en SOAP, SVG y documentos de Office. Para APIs REST modernas, JSON es preferible: más compacto, más rápido de parsear y más sencillo de trabajar en JavaScript.

Ver todas las herramientas de Utilidades.