
XML frente a HTML: ¿cuál es la diferencia?
- VersionDude
- Estándares
- 5 min de lectura
Se parecen, pero XML y HTML se crearon para tareas distintas — uno describe documentos para los navegadores, el otro transporta datos estructurados.
HTML y XML se parecen de forma sorprendente, y con razón: ambos descienden de SGML y ambos usan la misma sintaxis de corchetes angulares de etiquetas, atributos y elementos anidados. A primera vista, un fragmento de cada uno puede ser difícil de distinguir. Pero el parecido superficial esconde una diferencia profunda de propósito, y confundir ambos lleva a muchas expectativas equivocadas sobre cómo debería comportarse cada uno.
Fundamentalmente, HTML es deliberadamente indulgente con los errores, y esto es una virtud más que un descuido. El estándar define reglas detalladas de recuperación de errores de modo que incluso el marcado mal escrito sigue produciendo una página utilizable, razón por la cual buena parte de la web se renderiza a pesar de ser técnicamente inválida. Esta tolerancia mantiene la web resiliente y accesible, a costa de dejar pasar errores en silencio.
XML se diseñó con un propósito casi opuesto. No define etiquetas propias; en su lugar es un metalenguaje, un conjunto de reglas para inventar tus propios vocabularios de marcado que transporten datos estructurados. Donde HTML te entrega un vocabulario fijo, XML te entrega la gramática con la que construir cualquier vocabulario que necesites, ya sea para registros financieros, formatos de documentos o configuración.
Esa flexibilidad se acompaña de rigor, que es la otra mitad del carácter de XML. Un documento que no está bien formado —con cada etiqueta cerrada y cada elemento correctamente anidado— se rechaza de plano en lugar de repararse. No hay recuperación de errores a la que recurrir; el analizador se niega a continuar. Esta postura inflexible es exactamente lo que hace fiable a XML para el intercambio máquina a máquina, porque o los datos son estructuralmente correctos o sencillamente no se aceptan en absoluto.

Las dos filosofías reflejan sus casos de uso con precisión. La tolerancia de HTML se adecúa a una web donde innumerables autores de habilidad variable publican documentos que deben mostrarse igualmente para los lectores. El rigor de XML se adecúa a los sistemas que intercambian datos automáticamente, donde un documento silenciosamente malinterpretado podría corromper un proceso aguas abajo. Ningún enfoque es superior en abstracto; cada uno es la respuesta correcta a un problema distinto.
Entre ambos se sitúa XHTML, que es esencialmente HTML expresado bajo las reglas estrictas de XML. Un documento XHTML debe ser XML bien formado además de HTML válido, combinando el vocabulario web de HTML con la disciplina inflexible de XML. Disfrutó de un periodo de popularidad, pero el rigor que lo hacía atractivo en teoría también lo hacía frágil en la práctica, ya que un único fragmento malformado podía romper una página entera.
En el desarrollo web moderno el panorama práctico se ha asentado. HTML5 es el estándar para construir páginas que la gente lee en los navegadores, habiendo absorbido las lecciones tanto de sus predecesores como del experimento de XHTML. XML y los formatos derivados de él, mientras tanto, siguen siendo generalizados para archivos de configuración, fuentes de datos como RSS y Atom, formatos de documentos de oficina y muchos otros lugares donde los datos estructurados necesitan almacenarse o intercambiarse.
También ayuda recordar que XML rara vez viaja solo; ancla toda una familia de tecnologías relacionadas. Esquemas como DTD y XSD definen y validan la estructura de un vocabulario XML concreto, XSLT transforma XML de una forma a otra, y XPath navega dentro de un documento. Este ecosistema circundante es parte de por qué XML perdura en dominios intensivos en datos mucho después de haberse desvanecido de la autoría de páginas en el front-end.
Una regla práctica útil capta la distinción con claridad. Recurre a HTML cuando estés describiendo un documento para que la gente lo lea en un navegador, y recurre a los formatos de la familia XML cuando estés intercambiando o almacenando datos estructurados entre sistemas. Una vez que enmarcas la elección en torno al propósito y no a la apariencia, el aparente solapamiento entre ambos se disuelve, y se vuelve obvio qué herramienta requiere cada trabajo.



HTML se diseñó para un trabajo específico: describir documentos para que los navegadores los muestren a las personas. Tiene un vocabulario fijo y predefinido de elementos —párrafos, encabezados, enlaces, imágenes, etc.—, cada uno con un significado incorporado que los navegadores saben renderizar. No inventas nuevas etiquetas HTML; usas las que el estándar proporciona, porque su significado y su renderizado son parte de la plataforma.