Manual de XML en castellano

Ir al Indice General


En esta página:

Introducción

Hace aproximadamente un año que el W3C [1] aprobó la especificación 1.0 del XML. Desde entonces ha sido increible la cantidad de información, aplicaciones y software que se ha ido generando alrededor de este nuevo estándar, aunque en la práctica todavía no hayamos notado su utilización de forma generalizada. Esto se ha debido posiblemente a que la versión 4 del Netscape no la soporta, y la de Explorer de forma limitada. Pero está a punto de aparecer la versión 5 de ambos (la de Explorer en este mes de Febrero), y ambas con un amplio soporte para XML lo que supondrá, por tanto, un empujón importante a la utilización del XML.

El número de empresas que han migrado sus páginas web a esta especificación ha pasado de un 1%, cifrado durante el segundo trimestre de 1998, a un 16% estimado en el último trimestre del año, de acuerdo con un estudio de Zona Research. Las cifras aún denotan una adopción tecnológica limitada. Sin embargo, el crecimiento para 1999, unido a los avances del lenguaje, hacen concluir que el XML obtendra su madurez y estandarización a lo largo de este año.

A lo largo de este manual iremos viendo las principales caracteríticas del XML y como podemos irlo utilizando para crear nuestras aplicaciones para internet. Para situarnos empezaremos viendo un poco en qué consiste y cuál es su relación con el lenguaje HTML y SGML.

HTML

El lenguaje HTML, a pesar de su sencillez, es sin duda un invento prodigioso. Es el más existoso sistema de presentación de documentos de la historia. Desde que aparecio el WWW, gracias al HTML hemos podido publicar y acceder a más información de la que jamás hemos podido imaginar.

Pero a su vez, el 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 del W3 Consortium a, en lugar de desarrollar nuevas versiones de HTML desarrollar un nuevo lenguaje (mejor dicho metalenguaje) que han denominado XML (Extensible Markup Language) que aproveche las innegables ventajas del HTML pero que a su vez permita realizar muchas cosas más. Esto no signfica, al menos por el momento, el fin del HTML. Existen demasiadas páginas en HTML y resulta muy sencillo crearlas. Ademas los navegadores no soportarán todavía en toda su potencia el XML y tecnologías asociadas, pero es evidente una reformulación del HTML como una aplicación XML y un cambio radical en la forma de elaborar las páginas WEB en los proximos años.

La idea que subyace bajo el XML es la de crear un lenguaje muy general que sirva para muchas cosas. El HTML está diseñado para presentar información directamente a los humanos, y esto sin duda es algo bueno, pero es un lenguaje complicado de procesar para los programas informáticos. El HTML no es bueno porque no indica lo que está representando, se preocupa principalmente de que eso tiene que ir en azul, o con un tipo de letra determinada, pero no te dice que lo que está mostrando es el título de un libro o el precio de un artículo. El XML hace precisamente esto: describe el contenido de lo que etiqueta.

La diferencia es clara en el siguiente ejemplo:


Figura 1. Ejemplo de libro en Amazón

donde podemos observar como Amazón presenta en su Web información sobre los libros.

El código en HTML es el siguiente:


<p>
<dt>
<b>
<a href="/exec/obidos/ASIN/0764531999/qid=919015337">
Xml : Extensible Markup Language</a></b> ~ 
<NOBR><font color=#990033>Usually ships in 24 hours</font></NOBR>
<dd> Elliotte Rusty Harold / Paperback / Published 1998
<br>
Our Price: $31.99 ~ 
<NOBR><font color =#990033>You Save: $8.00 (20%)</font></NOBR>
<br>
<a href="/exec/obidos/ASIN/0764531999/qid=919015337">
<i>Read more about this title...</i></a>

y en XML lo podríamos escribir de la siguiente manera:


<?xml version="1.0"?>
<libro>
  <titulo>Xml: Extensible Markup Language</titulo>
  <disponible tiempo="24" unidad="hours"/>
  <autor>Elliotte Rusty Harold</autor>
  <formato>Paperback</formato>
  <publicacion>1998</publicacion>
  <precio cantidad="31.99" moneda="dolar"/>
  <descuento cantidad="20"/>
  <enlacelibro href="/exec/obidos/ASIN/0764531999/qid=919015337"/>
</libro>

Es evidente que 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 el 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!. El W3c está trabajando actualmente en el desarrollo de un lenguaje de hojas de estilo que nos lo permitan, denominado XSL (Extensible Style Languaje). Mediante una XSL podremos transformar un document XML en otro XML (por ejemplo en HTML) o convertirlo a un formato de impresión: RTF, PDF, etc.


Figura 2. Funcionamiento XSL

Si el HTML supuso una revolución porque permite la comunicación entre las personas, el XML supondra 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 el XML es un HTML++. Tanto el XML como el HTML tienen su base en el SGML. El SGML (Standard Generalized Markup Language, ISO 8879) 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 como tienen que estar organizados para que sea correcto.

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

El 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) y, por tanto , ya no dependeremos de un único e inflexible tipo de documento HTML.


Figura 3. Diferencia entre el SGML, XML y HTML

El 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 del 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.

Enlaces Recomendados

Entrevista a Tim Bray
http://www.revistaweb.com/entrevistes/tbrayen9.html
Entrevista a Tim Bray, uno de los editores de las especificaciones del XML, en la revista WEB.

XML ¿Una solución a la incompatibilidad?
http://barquisimeto.com/cielorojo/computacion/ar0601.html
Artículo en castellano de introducción al XML, en el suplemento sobre computación de la revista Cielo Rojo.

Overview of XML
http://www.software.ibm.com/xml/education/tutorial-prog/overview.html
Introducción al XML. Este tutorial es el primero de una colección que IBM dedica a este metalenguaje en su Web sobre XML.

Anotaciones:

[1]W3C son las siglas de World Wide Web Consortium, la organización encargada de velar por los estándares en Internet. Está formada por representantes de aquellas compañías que tienen intereses en la Red.

Ir al Indice General Ir al principio de la página.


© 99, Joaquin Bravo Montero
Convertido a HTML utilizando DSSSL y el Jade de James Clark.