Introducción a XML

HTML

Desde que W3C aprobó la especificación 1.0 de XML en febrero de 1998, ha sido increíble la cantidad de información, aplicaciones y software que se ha ido generando alrededor de este nuevo estándar.

En este tutorial veremos las principales características de XML y como lo podemos utilizar para crear nuestras aplicaciones para Internet.

El lenguaje HTML, a pesar de su sencillez, es sin duda un invento prodigioso. Es el más exitoso sistema de presentación de documentos de la historia. Desde que apareció WWW, gracias a HTML hemos podido publicar y acceder a más información de la que jamás podíamos haber imaginado.

Pero, a su vez, HTML ha sido víctima de su propio éxito. El gran crecimiento de Internet, los intereses comerciales y la necesidad de poder realizar páginas web vistosas, ha dado lugar a que en poco tiempo este lenguaje haya evolucionado muy rápidamente y, por desgracia, no siempre por el camino más adecuado. Actualmente estamos en la versión 4.0 y, sin embargo, sigue siendo igual de rígido e inflexible como era en un principio. Y es que es un lenguaje limitado en cuanto que no nos permite realizar sobre Internet todas las aplicaciones o cosas que nos gustaría.

XML

Estas razones han obligado a los miembros de W3 Consortium a desarrollar nuevas versiones de HTML un nuevo lenguaje (mejor dicho, metalenguaje), que han denominado XML (Extensible Markup Language); que aproveche las innegables ventajas de HTML, pero que a su vez permita realizar muchas cosas más. Esto no significa, al menos por el momento, el fin de HTML. Existen demasiadas páginas en HTML y resulta muy sencillo crearlas. Además, los navegadores no soportarán todavía XML y tecnologías asociadas, en toda su potencia, pero es evidente una reformulación de HTML como una aplicación XML y un cambio radical en la forma de elaborar las páginas web en los próximos años.

La diferencia es clara en el siguiente ejemplo:

Tecnología XML

En la imagen, podemos observar cómo Amazon presenta en su web información sobre los libros.

El código en HTML es el siguiente:

Libro de Amazón en HTML

En XML lo podríamos escribir de la siguiente manera:

Libro de Amazón en XML

Evidentemente, no hay que ser ningún programador experto para entender que cualquier programa informático podrá trabajar de forma más eficiente sobre el segundo ejemplo que sobre el primero.

Esto permitirá, por ejemplo, realizar motores de búsqueda mucho más eficaces, lo que nos permitirá un acceso más rápido y eficiente a la información. Nos permitirá acceder a nuestras páginas favoritas desde nuestro teléfono móvil, o desde la radio de nuestro coche, en el momento en el que los programas de reconocimiento de voz trabajen con XML. Facilitará el intercambio de información y la cooperación entre las empresas facilitando el comercio electrónico, etc. Y es que XML busca precisamente crear la capacidad de hacerlo todo en la web.

La potencia de esta forma de trabajar radica en que estamos etiquetando e identificando el contenido, olvidándonos en un principio por la forma de presentarlo. ¡Ya nos encargaremos luego de darle un formato de salida! En W3C se está trabajando actualmente en el desarrollo de un lenguaje de hojas de estilo que lo permita, denominado XSL (Extensible Style Languaje). Mediante XSL, podremos transformar un documento XML en otro XML (por ejemplo en HTML), o convertirlo a un formato de impresión: RTF, PDF, etc.

Tecnología XML

Si HTML supuso una revolución porque permite la comunicación entre las personas, XML supondrá una revolución porque va a permitir la comunicación entre las máquinas.

HTML, XML versus SGML

Tampoco tenemos que equivocarnos y pensar que XML es un HTML++. Tanto el XML como HTML tienen su base en SGML (Standard Generalized Markup Language, ISO 8879), que es el estándar internacional para la definición de la estructura y el contenido de diferentes tipos de documentos electrónicos. Es decir, es un metalenguaje que nos permite definir lenguajes para definir la estructura y el contenido de nuestros documentos. La definición de la estructura y el contenido de un tipo de documento se realiza en una DTD. En ella definimos los elementos que conformarán ese tipo de documentos y cómo tienen que estar organizados para que sea correcto.

Un ejemplo de DTD puede ser la que define cómo tendrán que ser los documentos HTML. Por tanto, HTML no es más que un tipo de documento SGML que se utiliza en el web, y esto es importante, ya que aquí radica su principal diferencia con XML.

XML no es ningún tipo de documento SGML, sino que es una versión abreviada de SGML, optimizada para su utilización en Internet. Esto significa que con él vamos a poder definir nuestros propios tipos de documentos (podremos definir nuestras propias etiquetas) por lo que ya no dependeremos de un único e inflexible tipo de documento HTML.

Tecnología XML

XML, más que un HTML++, hay que considerarlo como un SGML– optimizado para su utilización en Internet. Como escribió Richard Ligth en su libro Presenting XML: “XML ofrece el 80% de las ventajas de SGML con un 20% de su complejidad”. Y es que los diseñadores de XML intentaron dejar fuera sólo aquellas partes que raramente se utilizan. Esta reducción resultó ser muy importante: la especificación XML ocupa aproximadamente 30 páginas, frente a las 500 del SGML.

Entre muchas que existen, podemos destacar tres:

  • Sencillez
  • Variedad de estructuras de datos
  • Excelente tratamiento de caracteres internacionales.

Sencillez

La primera y más importante ventaja de XML se refiere a su sencillez, en especial si lo comparamos con los formatos binarios.

XML es un formato basado en caracteres y por tanto comprensible para los seres humanos. Además los documentos XML pueden leerse fácilmente, crearse y modificarse por medio de las herramientas que utilizamos normalmente, como editores de texto. Todo esto hace que la compresión y el análisis de documentos XML resulte mucho más sencillo que los escritos en formato binario.

Otro ejemplo de la sencillez de XML tiene que ver con su habilidad para representar estructuras de datos en forma de árbol, con todas las ventajas que esto comporta. Existen otras sintaxis estándar, como por ejemplo la ANS.1 (Abstract Syntaxt Notation 1), que permiten representar datos estructurados en forma de árbol, pero dicho estándar resulta bastante complicado de entender y generar. Se pueden utilizar herramientas de generación automática para facilitar la tarea, pero las herramientas adecuadas suelen ser bastante costosas. Por el contrario, XML posee la misma habilidad para representar datos estructurados en forma de árbol y su compresión y manejo son más sencillos.

Si algo puede decirse del intrincado mundo de Internet es que la “sencillez gana y la eficacia pierde”. En Internet la regla de oro es la apertura, es decir, accesibilidad y disponibilidad para todos. Incluso si se trata de tecnologías totalmente revolucionarias, sólo logrará imponerse si cuenta con el apoyo de la mayoría de la población afectada. Un tecnología menos eficaz pero abierta a todo el mundo y fácilmente comprensible tendrá más probabilidad de imponerse en Internet que otra mejor, pero de acceso restringido. Por esto ha triunfado HTML y por esta razón esta triunfando XML: es sencillo.

Variedad de estructuras de datos

Aunque sencillo, XML tiene potencia suficiente para expresar estructuras complejas de datos. Para muchas aplicaciones, una estructura en forma de árbol es lo suficientemente general y potente como para expresar datos con un cierto nivel de complejidad. De hecho, supone un buen equilibrio entre el nivel de expresividad y sencillez. Incluso estructuras de datos tan complicadas como gráficos (VML, SVG) pueden llegar a representarse en un árbol. Por todo esto, XML permite expresar estructuras complejas de datos que satisfacen las exigencias de casi todas las aplicaciones.

Tratamiento de caracteres internacionales

Una de las grandes ventajas de XML, que no debe subestimarse, es su capacidad para gestionar conjuntos de caracteres internacionales. Incluso si se está diseñando un documento muy simple, esta sola característica basta para decantarse por XML.

Hoy en día, los negocios se realizan a escala mundial. Esto es especialmente cierto cuando se trata de aplicaciones Web, puesto que Internet se ha encargado de borrar las fronteras nacionales. Resulta muy común que las transacciones comerciales contengan, por ejemplo, nombres de calles en chino o nombres propios de origen árabe. La recomendación 1.0 de XML está definida de acuerdo con el conjunto de caracteres ISO-10646 (Unicode), por lo que virtualmente todos los caracteres que actualmente se utilizan en el mundo son caracteres oficiales.

En este curso se estudia la utilización de XML para el etiquetado y la estructuración de documentación. Pero XML es tan potente y flexible que muchas personas lo utilizan para otros fines. Algunas de estas otras aplicaciones las podemos englobar en estos tres grupos:

  • Uso de XML para describir metacontenidos respecto a documentos o recursos en línea.
  • Uso de XML para publicar e intercambiar contenidos de bases de datos.
  • Uso de XML como formato para sistemas de mensajería con el fin de permitir la comunicación entre programas de aplicaciones.

Metainformación

En 1997, XML se consideraba fundamentalmente un lenguaje para definir metacontenidos. Un metacontenido no es más que la información relativa al contenido del documento, como su título, autor, amaño del archivo, fecha de creación, historial de cambios, palabras clave, y demás información asociada. Se puede utilizar un metacontenido, por ejemplo, para realizar búsquedas, filtrar información y gestionar el documento.

HTML, dado que es un lenguaje de marcas enfocado a la presentación, proporciona mecanismos muy pobres para la manipulación de metacontenidos.

XML está considerado el mejor vehículo para definir una sintaxis de metacontenidos dada su flexibilidad, legibilidad y capacidad de ampliación. Ademas nos proporciona la posibilidad de definir estos metacontenidos fuera del documento. RDF, CDF y OSD son ejemplos de formatos de metacontenidos definidos en XML.

Bases de datos

Muchas aplicaciones basadas en el modelo de tres capas, extraen los datos a partir de sistemas remotos de bases de datos. Por lo general, los resultados se transforman a través de la etiqueta <table> de HTML y se muestran en pantalla. Si los datos se suministran en un documento XML que preserva la información original, como nombres de columnas y tipos de datos, el cliente puede utilizarlos para otros fines además de visualizarlos en pantalla. Por ejemplo, podrá descargar los datos e insertarlos en una hoja de cálculo para realizar sumas y promedios.

Mensajería

Es sin duda alguna el área de aplicación más importante de XML. Por mensajería se entiende el intercambio de mensajes entre organizaciones o entre sistemas de aplicación dentro de una misma organización.

La mensajería entre distintas compañías se ha realizado tradicionalmente a través de EDI (Intercambio Electrónico de Datos), que ha sido ampliamente utilizado por sectores tan importantes como el financiero o productivo desde la década de los setenta.

Uno de los problemas técnicos de EDI tiene que ver con el formato estándar que debe adoptarse, y aquí XML puede desempeñar un papel decisivo. Entre las habilidades necesarias para construir un sistema EDI, destaca el conocimiento de los formatos de los mensajes X12 y EDIFACT. El formato de estos fichero es complicado de leer. La gran diferencia entre EDI y XML es que en XML, lo nombres de elementos tienen sentido por si mismos. Es verdad que los mensajes son procesados normalmente por programas y no por usuarios de carne y hueso, sin embargo, la legibilidad sigue siendo un aspecto fundamental para los programadores de aplicaciones, que desarrollan, depuran y mantienen los programas que procesan los mensajes EDI.