Qué es el XML

Breve historia del XML

Los primeros lenguajes de marcas se idearon a finales de los 60 para la preparación de documentos de texto (William W. Tunnicliffe, 1967). En los años 70 se crearon varias normas de lenguajes de marcas (GenCode, GML) para su uso en la industria editorial. En 1986, bajo la dirección de Charles Goldfarb, investigador de IBM, se creó el SGML (Standard Generalized Markup Language), una norma extraordinariamente compleja y publicada como norma ISO 8879 en 1986.

En 1989, Tim Berners-Lee se basó en la sintaxis del SGML para crear el HTML, el lenguaje de marcas de la web. Inicialmente pensada para su uso en el laboratorio europeo CERN, la web se extendió por todo el planeta de una forma fulminante. Para tutelar el crecimiento y organización de la web, en 1994 se creó el W3C, un organismo internacional formado por empresas, instituciones e investigadores.

El primer trabajo del W3C fue normalizar el HTML, incorporando las novedades que aparecían continuamente en los navegadores. Pese a ello, el crecimiento de la web seguía aumentado las presiones para ampliar el HTML para todo tipo de usos. El W3C decidió que la solución no nopdía ser seguir ampliando el HTML, sino crear unas reglas generales para que cualquiera pudiera crear lenguajes de marcas adecuados a sus necesidades, pero manteniendo unas estructuras y sintaxis comunes que permitieran compatibilizarlos y tratarlos con las mismas herramientas. Ese conjunto de reglas es el XML (eXtensible Markup Language = Lenguaje de Marcas Extensible), cuya primera versión se publicó en 1998. Así, el XML no es un lenguaje de marcas, pero sí la base común elegida por el W3C para sus desarrollos posteriores.

En los primeros años del siglo XXI el W3C planteó una triple línea de trabajo:

Veinte años después, este ambicioso plan ha fracasado. Aunque el W3C cumplió su parte elaborando y aprobando decenas de recomendaciones en esas tres líneas de trabajo, el mercado no las ha adoptado, especialmente en la web.

Para empezar, los fabricantes de navegadores no aceptaron el XHTML y crearon en 2004 una nueva organización, el WHATWG, para continuar el desarrollo del HTML que el W3C había abandonado. En 2007 el W3C reconoció su fracaso y retomó el desarrollo del HTML (incluyendo en él una versión XHTML, basada en XML). En octubre de 2014 el W3C publicó la recomendación HTML 5, que incluye las dos variantes: HTML 5, no basada en XML, y XHTML 5, basada en XML (una tercera variante, llamada HTML políglota ha sido abandonada). Desde entonces se han ido publicando versiones actualizadas del HTML 5, pero realmente el desarrollo del HTML ya no se hace en el seno del W3C, sino en el WHATWG.

Por otro lado, aunque por unos años el XML se convirtió en la herramienta básica para el intercambio y almacenamiento de información en muchos sectores de la informática, poco a poco el mercado ha ido evolucionando en otras direcciones, empleando tecnologías más sencillas no basadas en el XML.

Para terminar, la iniciativa de la Web semántica (aún suponiendo que hubiera propuesto las tecnologías adecuadas para permitir el procesamiento inteligente de la información contenida en las páginas web) no ha tenido la menor oportunidad de éxito, puesto que la web no adoptó ninguno de los componentes de la web semántica.

Reconociendo el fracaso, en 2013 el W3C ya había cerrado prácticamente todos los grupos de trabajo dedicados a la web semántica y en 2018 el W3C también ha cerrado prácticamente todos los grupos de trabajo dedicados al XML. Probablemente el principal motivo del fracaso sea que el XML, con su exigencia de ausencia de errores en los documentos, es demasiado estricto para una web que en gran parte todavía se elabora manualmente.

Pero aunque la web haya abandonado el XML, el XML se sigue utilizando en muchos ámbitos especializados para el almacenamiento y transmisión de la información, por lo que cuesta creer que su desarrollo en esos ámbitos no sea retomado, dentro o fuera del W3C, en los próximos años.

Notas:

Tecnologías XML

El W3C y otras organizaciones de normalización desarrollaron numerosas tecnologías XML. En las lecciones Normas y recomendaciones XML y Web semántica se listan las recomendaciones del W3C en las que se definen esas tecnologías.

El cuadro siguiente muestra algunas de esas tecnologías agrupándolas por temas:

Servicios web SOAP WS Policy WSDL XML Signature XML Encryption Web semántica RDF RDFa RDF-S OWL RIF SPARQL Localización XPath Consultas XQuery Transformación XSLT DOM SAX Enlaces XLink XPointer Modelo de datos / Vocabulario XHTML FO SVG DocBook XBRL BMEcat ... Modelización y validación de datos DTD XML Schema RelaxNG Schematron

Las tecnologías XML básicas desarrolladas por el W3C son las siguientes:

XML Namespaces (Espacios de nombres XML)
Define los mecanismos para permitir que en un mismo documento se puedan utilizar elementos y atributos de diferentes lenguajes de marcas (resolviendo, por ejemplo, el problemas de que algunos nombres de elementos coincidan).
XML Infoset
Describe un modelo de datos abstracto para documentos XML a partir de elementos de información. Se utiliza en las especificaciones de lenguajes XML, para describir restricciones en el lenguaje.
XPath
Permite seleccionar los componentes de un documento XML y facilitar su acceso a los programas que procesan documentos XML.
XSLT
Lenguaje de transformación de documentos XML a otros formatos (XML o no XML)
XSL Formatting Objects (XSL-FO)
Lenguaje de marcas para formatear documentos XML que se usa, por ejemplo, para generar PDFs.
XQuery
Lenguaje de consulta orientado a XML, que permite acceder, manipular y devolver fragmentos de documentos XML.
XML Signature
Define la sintaxis y las reglas de procesamiento para crear firmas digitales en documentos XML.
XML Encryption
Define la sintaxis y las reglas de procesamiento para encriptar documentos XML.

Otras tecnologías XML desarrolladas por el W3C no tuvieron apenas implantación, como las siguientes:

XInclude
Define el mecanismo para incluir un documento de texto (XML o no XML) dentro de un documento XML.
XLink
Define métodos para incluir enlaces internos y externos en documentos XML y asociar metadatos a los enlaces.
XPointer.
Define el mecanismo para identificar fragmentos de un documentos.