¿Qué es XML?
XML (eXtensible Markup Language) es un lenguaje de marcado diseñado para almacenar, estructurar y transportar datos de forma legible tanto para personas como para aplicaciones.
A diferencia de HTML, XML no define cómo mostrar la información, sino cómo organizarla mediante etiquetas personalizadas.
Conceptos fundamentales
Para comprender XML es imprescindible conocer los siguientes conceptos:
- Documento XML: archivo que contiene datos estructurados.
- Elemento: unidad básica formada por etiquetas de apertura y cierre.
- Etiqueta (Tag): identifica un elemento.
- Atributo: información adicional asociada a un elemento.
- Nodo: cada uno de los componentes que forman el árbol XML.
- DTD/XSD: mecanismos para validar la estructura de un documento XML.
Funcionamiento de XML
Un documento XML almacena los datos mediante elementos anidados.
Ejemplo:
<empleado>
<nombre>Juan</nombre>
<departamento>Informática</departamento>
</empleado>
Cada aplicación interpreta posteriormente el contenido según sus propias necesidades.
Características de XML
XML presenta las siguientes características:
- Lenguaje de marcado extensible.
- Independiente de la plataforma.
- Formato basado en texto.
- Legible por humanos y máquinas.
- Permite estructuras jerárquicas.
- Facilita el intercambio de información.
Estructura de un documento XML
Todo documento XML bien formado puede contener:
- Declaración XML.
- Elemento raíz.
- Elementos hijos.
- Atributos.
- Contenido.
Ejemplo:
<?xml version="1.0" encoding="UTF-8"?>
<libro isbn="9781234567890">
<titulo>XML Básico</titulo>
<autor>Ana García</autor>
</libro>
Elementos y atributos
Los datos pueden representarse mediante elementos o atributos.
Ejemplo:
<usuario id="15">
<nombre>María</nombre>
<edad>28</edad>
</usuario>
En este ejemplo:
- usuario es un elemento.
- id es un atributo.
- nombre y edad son elementos hijos.
Documento bien formado
Un documento XML se considera bien formado cuando cumple las reglas sintácticas del lenguaje.
Las principales reglas son:
- Existe un único elemento raíz.
- Todas las etiquetas tienen cierre.
- Las etiquetas están correctamente anidadas.
- Los nombres distinguen mayúsculas y minúsculas.
- Los valores de los atributos van entre comillas.
Ejemplo correcto:
<persona>
<nombre>Carlos</nombre>
</persona>
Ejemplo incorrecto:
<persona>
<nombre>Carlos
</persona>
Validación mediante DTD y XSD
Además de estar bien formado, un documento XML puede ser válido.
La validación comprueba que el documento cumple una estructura previamente definida.
Los mecanismos más utilizados son:
- DTD (Document Type Definition).
- XSD (XML Schema Definition).
| Característica | DTD | XSD |
|---|---|---|
| Sintaxis | Propia | XML |
| Tipos de datos | Limitados | Avanzados |
| Extensible | No | Sí |
Espacios de nombres (Namespaces)
Los Namespaces evitan conflictos cuando distintos documentos utilizan etiquetas con el mismo nombre.
Ejemplo:
<libro xmlns="https://ejemplo.com/libros">
<titulo>XML</titulo>
</libro>
Cada espacio de nombres identifica de forma única el significado de las etiquetas.
XPath y XSLT
XML suele utilizarse junto con otras tecnologías.
| Tecnología | Función |
|---|---|
| XPath | Localizar nodos dentro de un documento XML. |
| XSLT | Transformar documentos XML a otros formatos. |
Por ejemplo, XSLT puede convertir un XML en:
- HTML.
- PDF.
- Otro XML.
- Texto plano.
Comparación XML vs JSON
| XML | JSON |
|---|---|
| Basado en etiquetas | Basado en pares clave-valor |
| Más verboso | Más compacto |
| Admite validación mediante XSD | Validación menos estandarizada |
| Muy utilizado en sistemas empresariales | Muy utilizado en APIs REST |
| Soporta atributos | No utiliza atributos |
Caso práctico
Situación
Una administración pública necesita intercambiar información de expedientes entre dos aplicaciones diferentes.
Solución
Se utiliza XML porque:
- Es un formato estándar.
- Es independiente de la plataforma.
- Permite validar la estructura mediante XSD.
- Facilita el intercambio de datos entre sistemas heterogéneos.
Ventajas e inconvenientes
Ventajas
- Formato estándar.
- Fácil de interpretar.
- Muy flexible.
- Independiente de la plataforma.
- Permite validación.
- Adecuado para el intercambio de datos.
Inconvenientes
- Más verboso que JSON.
- Mayor tamaño de los documentos.
- Procesamiento más costoso.
- Sintaxis más estricta.
Errores habituales
- Confundir XML con HTML.
- Pensar que XML define el diseño visual.
- Olvidar que solo puede existir un elemento raíz.
- No cerrar correctamente las etiquetas.
- Confundir un documento bien formado con uno válido.
- Pensar que XML ha sido sustituido completamente por JSON.
Cómo evitarlos
- Recordar que XML estructura datos y HTML presenta información.
- Comprobar siempre el cierre y la anidación de las etiquetas.
- Diferenciar claramente entre documentos bien formados y válidos.
- Memorizar el papel de DTD, XSD, XPath y XSLT.
Relaciones con otros temas
XML está directamente relacionado con:
- HTML.
- JSON.
- APIs.
- Servicios Web.
- SOAP.
- XSD.
- DTD.
- XPath.
- XSLT.
- Interoperabilidad.
Conceptos clave para recordar
[!NOTE]
- XML significa eXtensible Markup Language.
- Es un estándar del W3C para estructurar e intercambiar información.
- Permite crear etiquetas personalizadas.
- Todo documento XML debe tener un único elemento raíz.
- Un documento puede estar bien formado y, además, ser válido si cumple una DTD o un XSD.
- DTD y XSD permiten validar la estructura del documento.
- XPath localiza nodos dentro de un XML.
- XSLT transforma documentos XML a otros formatos.
- XML es más descriptivo y verboso que JSON, pero continúa siendo muy utilizado en entornos empresariales y en las Administraciones Públicas.