Qué significa XML
XML son las siglas de Extensible Markup Language (lenguaje de marcado extensible). Se convirtió en recomendación del W3C en 1998 y describe los datos con etiquetas a las que tú mismo das nombre: eso es lo que significa “extensible”. A diferencia de HTML, XML no tiene etiquetas predefinidas: un catálogo puede usar <product> y <price>, y una factura, <item> y <total>.
Un documento XML mínimo tiene este aspecto: <book id="1"><title>XML Basics</title><year>2026</year></book>. XML es texto plano, así que las personas pueden leerlo y cualquier lenguaje de programación puede procesarlo. Solo almacena y estructura datos; por sí mismo no hace nada. Son los programas los que deciden qué significan los datos y cómo mostrarlos.
Reglas de sintaxis de XML
Todo documento XML tiene que cumplir unas pocas reglas estrictas. Un documento que las cumple se llama bien formado:
- Hay exactamente un elemento raíz que contiene todos los demás elementos.
- Todo elemento se cierra:
<name>…</name>, o se autocierra, como<br/>. - Los elementos están correctamente anidados:
<b><i>…</i></b>, nunca<b><i>…</b></i>. - Los nombres distinguen entre mayúsculas y minúsculas:
<Item>e<item>son elementos distintos. - Los valores de atributo van siempre entre comillas simples o dobles.
&y<en el texto se escapan como&y<.- La declaración opcional
<?xml version="1.0" encoding="UTF-8"?>debe ir al principio del todo.
Los comentarios se escriben como <!-- … -->. Un validador XML comprueba todas estas reglas en un segundo y señala la línea de cualquier error.
Elementos y atributos
Un elemento consta de una etiqueta de apertura, su contenido y una etiqueta de cierre: <price>19.90</price>. Los elementos pueden contener texto, otros elementos o ambas cosas. Un atributo es un par nombre-valor dentro de la etiqueta de apertura: <price currency="EUR">.
| Elemento | Atributo | |
|---|---|---|
| Ejemplo | <color>red</color> | color="red" |
| Se puede repetir | Sí | No, una vez por elemento |
| Puede contener elementos hijos | Sí | No, solo texto |
| El orden importa | Sí | No |
Una convención habitual: usa elementos para los datos en sí y para todo lo que pueda repetirse o tener estructura, y atributos para metadatos como ID, unidades o tipos.
XML bien formado vs. XML válido
Un XML bien formado cumple las reglas de sintaxis; los parsers rechazan cualquier otra cosa. Un XML válido está bien formado y, además, se ajusta a un esquema que define qué elementos y atributos se permiten, en qué orden y con qué tipos de datos.
- DTD (Document Type Definition) es el lenguaje de esquemas original, integrado en XML 1.0. También permite declarar entidades como
. - XSD (XML Schema Definition) está escrito a su vez en XML y admite tipos de datos como fechas y decimales. Los formatos de factura electrónica como CFDI, NF-e y UBL publican esquemas XSD.
Espacios de nombres XML (namespaces)
Como cualquiera puede inventar nombres de etiquetas, dos vocabularios pueden usar el mismo nombre: el <title> de un libro y el <title> de una persona. Los espacios de nombres los mantienen separados al vincular los nombres a una URI. xmlns:cfdi="http://www.sat.gob.mx/cfd/4" declara el prefijo cfdi, de modo que <cfdi:Comprobante> pertenece al vocabulario del CFDI 4.0 mexicano. Un espacio de nombres predeterminado, xmlns="…" sin prefijo, se aplica a todos los elementos sin prefijo que contiene. La URI es solo un identificador; no se descarga nada de ella.
XML vs. JSON vs. HTML
| XML | JSON | HTML | |
|---|---|---|---|
| Finalidad | Almacenar e intercambiar datos estructurados y documentos | Intercambiar datos, sobre todo en APIs web | Mostrar páginas web |
| Nombres de etiquetas o claves | Los defines tú | Los defines tú | Fijados por el estándar HTML |
| Tipos de datos | Texto, salvo que un esquema defina tipos | Cadena, número, booleano, null, array, objeto | Texto |
| Atributos | Sí | No | Sí |
| Comentarios | Sí | No | Sí |
| Esquemas | DTD, XSD | JSON Schema | – |
| Errores de sintaxis | Los parsers los rechazan | Los parsers los rechazan | Los navegadores los corrigen |
JSON es más compacto y se corresponde directamente con los objetos de JavaScript, por eso la mayoría de las APIs web se pasaron a él. XML sigue siendo fuerte donde los documentos mezclan texto y marcado, necesitan espacios de nombres o deben validarse estrictamente contra esquemas; por eso las autoridades fiscales, las editoriales y los formatos ofimáticos siguen confiando en él.
¿Qué es un archivo XML y cómo abrirlo?
Un archivo .xml es un archivo de texto plano que contiene un documento XML, normalmente codificado en UTF-8. Como es texto, cualquier editor de texto puede abrirlo: el Bloc de notas en Windows, TextEdit en Mac o un editor de código como VS Code. Chrome y Firefox muestran los archivos XML como un árbol cuando los arrastras a una ventana del navegador, y Excel puede importar datos XML a una hoja de cálculo.
Muchos archivos usan XML sin la extensión .xml: las imágenes .svg, los feeds .rss, los esquemas .xsd, las hojas de estilo .xsl, los archivos .config de .NET y los archivos .plist de macOS, que pueden guardarse como XML. Los archivos de Word, Excel y PowerPoint (.docx, .xlsx, .pptx) son archivos ZIP llenos de archivos XML.
Para qué sirve XML
- Sitemaps:
sitemap.xmlindica a los buscadores qué páginas tiene un sitio web. - Feeds RSS y Atom: sitios de noticias, blogs y podcasts publican sus novedades en XML.
- SVG: los gráficos vectoriales de la web son documentos XML.
- Archivos de Office: Office Open XML (DOCX, XLSX, PPTX) y OpenDocument (ODT, ODS) son paquetes ZIP de XML.
- Facturas electrónicas: el CFDI en México y la NF-e en Brasil son archivos XML que deben firmarse digitalmente y autorizarse antes de tener validez legal; UBL es el formato XML que hay detrás de la facturación electrónica Peppol en Europa y otras regiones.
- Servicios web SOAP: bancos, proveedores de pago y sistemas gubernamentales intercambian mensajes XML descritos por archivos WSDL.
- Apps de Android: los layouts, los recursos de texto y
AndroidManifest.xmlse escriben en XML. - Configuración: el
pom.xmlde Maven, elweb.configde .NET y muchos otros ajustes de compilación y de servidor.
Preguntas frecuentes
¿Qué significan las siglas XML?
Extensible Markup Language (lenguaje de marcado extensible). “Extensible” significa que defines tus propias etiquetas, y “de marcado” (markup), que la estructura se escribe como etiquetas alrededor de los datos.
¿XML es un lenguaje de programación?
No. XML es un formato de datos: describe y estructura información, pero no puede calcular nada. Tecnologías relacionadas como XPath y XSLT sirven para consultarlo y transformarlo.
¿Se sigue usando XML hoy en día?
Sí. JSON sustituyó a XML en muchas APIs web, pero XML sigue siendo el estándar para sitemaps, feeds RSS, SVG, documentos de Office, layouts de Android, servicios SOAP y la facturación electrónica en muchos países.
Última actualización: