Curso online de XML – Ciberaula.





¿Qué se está haciendo con XML?
Introducción

Hablar de internet es hablar de cambios y transformaciones a nivel mundial. Cada día aparecen nuevos servicios para usuarios que aportan enormes beneficios sociales y económicos. Ya hace más 3 años que XML salió a la luz, pero es ahora cuando comienzan a notarse sus beneficios, aunque estos principalmente sean económicos en la actualidad. Desde sus inicios, los avances que se han dado en XML siempre han encontrado grandes detractores y por contra entusiastas seguidores. Sin embargo, y con un crecimiento exponencial, este estándar comienza a imponerse como herramienta de intercambio de datos en entorno web. Empresas como Software AG, IBM, Microsoft, Hewlett-Packard, etc. comienzan a desarrollar versiones de sus programas compatibles con XML o incorporan este estándar como parte de sus desarrollos. Alguna incluso ha llegado a incluir las tres siglas XML como parte de sus logotipo.

Contexto actual

Si hablamos de la tecnología que capacita a Internet tal y como la conocemos hoy, entonces hablaremos de HTML (lenguaje utilizado para definir la presentación de las páginas que encontramos en la red). Gracias a HTML (Hypertex MarkUp Language) hemos podido combinar toda clase de elementos multimedia y crear sistemas complejos con hiperenlaces entre páginas. Sin embargo HTML no es útil en lo que se refiere a la descripción de datos debido a que dedica mayor esfuerzo a describir el aspecto de las páginas que el própio contenido; presenta problemas de internacionalización; su estructura comienza a hacerse caótica, etc. Para clarificar esto, con HTML podemos dar formato a una tabla, pero no podemos describir la naturaleza de los elementos de datos que la componen. Aquí es donde XML promete ser más util.


XML en la empresa

Hasta no hace mucho, el intercambio de documentos entre empresas o departamentos de una misma empresa se hacía por medio de documentos escritos hasta que se comenzó a trabajar con documentos electrónicos. EDI (INTERCAMBIO ELECTRONICO DE DATOS), es el sistema que permite enviar, recibir, codificar y descodificar los documentos de tipo mercantil y financiero que intercambian las empresas (pedido, factura, albaranes, órdenes de pago, etc.) en formato electrónico. Este sistema, utilizado hasta la fecha, favorecía el intercambio de documentos aumentando la velocidad y reduciendo costos con respecto a la situación anterior. Muchas empresas exigen a sus proveedores y clientes la incorporación de este tipo de sistemas para mejorar los flujos de información. Por otro lado, EDI ha demostrado no ser un sistema eficaz en la pequeña y mediana empresa, siendo caro y dificil de mantener. Al surgir XML, estos problemas son solucionados abaratando costes (pues la información viaja a través de internet y no a través de líneas dedicadas) y resultando fácil de mantener (tanto a PYMES como a empresas de embergadura). Lamentablemente, las grandes inversiones de las empresas en sistemas EDI suponen una barrera de salida, impidiendo la integración de nuevos sistemas XML en la empresa.

XML como metalenguaje

XML es un metalenguaje, es decir, un lenguaje para la definición de otros lenguajes. De esta forma, las empresas pueden definir sus própios lenguajes de datos, no sólo para su intercambio entre dos o más partes sino también para su procesamiento dentro de la empresa. Podemos ver esto con un ejemplo:

Imaginemos un portal de internet cuyo fin sea el comercio electrónico. En principio todo su catalogo podría estar descrito utilizando XML. Todos los artículos ordenados por categorias se encontrarían en distintos documentos organizados en un repositorio. Cuando alguien compra algo, una empresa de mensajería se encarga de recoger el producto de un almacen y entregarlo en el lugar que haya indicado el cliente.Imaginemos ahora que todas las empresas de internet funcionan así y que todas encargan el transporte de sus mercancías a una misma empresa. ¿Se imagina el desorden que podría provocar que cada empresa hiciese sus pedidos electrónicamente pero de forma distinta? Para solucionar esto, la empresa de transporte podría indicarles a todas las empresas que sólo aceptaría ordenes que estuviesen construidas siguiendo un determinado formato en XML

De esta forma se habría definido un lenguaje para la descripción de ordenes de entrega y todas las empresas interesadas podrían trabajar con él. Si además todas las empresas de transporte de mercancias trabajasen de esta forma, también sería factible el intercambio de ordenes entre ellas. En conclusión, habríamos facilitado el intercambio de información estructurada estandarizada entre empresas de forma que cada una luego presentará estos datos de disitintas formas según sus intereses (en internet, en papel, en terminales móviles, etc).

Aplicaciónes XML

Hasta ahora el lector podría estar entendiendo mal cuáles son los ámbitos de actuación de XML. Tiene que quedar claro que aunque es la alternativa más utilizada en la actualidad para desarrollar sistemas de comercio electrónico, las áreas de negocio y los proyectos involucrados en esta tecnología escapan a nuestra imaginación. Así, podemos encontrar desde entornos de teleeducación hasta sistemas de gestión de RRHH. Cualquier sistema que precise un control de información y su transformación a otros lenguajes podría gestionarla por medio de XML.
¿Que es XML?

XML (Extensible Markup Language) es un metalenguaje para crear nuestros propios lenguajes de etiqueta. Es decir es una norma que define la sintaxis y las reglas que tenemos que seguir para crear nuestro propio lenguaje de etiquetas

De esta manera, podremos crear un lenguaje para escribir un libro, o un articulo, o la documentación técnica de un avión de combate, o como tiene que ser una transacción etc.

Evidentemente, todos estos lenguajes los podríamos crear utilizando nuestra propia sintaxis y reglas, pero entonces no estaríamos trabajando con un estándar y perderíamos todas las ventajas que esto ofrece y que podemos observar a lo largo del resto de preguntas de este FAQ.

¿Que diferencias existen entre XML y HTML?

Es curioso, pero las diferencias entre el HTML y el XML son a a la vez mínimas e inmensas. Para entenderlas mejor tenemos que saber que 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.

Por tanto la primera y más importante diferencia entre le HTML y el XML es que el primero es un lenguaje, mientras que el segundo es un metalenguaje.

Esto nos permite crear nuestras etiquetas.
Y como podemos ver si tenemos un poco de cuidado al crear nuestras etiquetas podremos crear fácilmente documentos inteligentes. No hay que ser un experto en informática para observar por ejemplo, que cualquier buscador indexara de forma más eficiente el primer ejemplo que el segundo.

¿Que es una DTD?

Una DTD es el lugar en el que definimos la estructura y los elementos que forman nuestro documento XML.

No son obligatorias, es decir, en XML a diferencia del SGML es posible crear documentos XML sin DTD. Esto da lugar a dos tipos de documentos XML:

• Documentos XML bien formados. Son aquellos que respetan la sintaxis del XML.

• Documentos XML validos.Son aquellos que además de bien formados se ajustan a la DTD que define su estructura.

¿Que puedo hacer con XML?

Puede parecer un eslogan publicitario, pero con XML las oportunidades de aplicaciones son infinitas.

Estamos hablando de un metalenguaje que propone una forma estándar de organizar nuestra información, flexible (permite crear nuestras propias etiquetas), independiente de plataforma, sistema operativo y lenguaje de programación, y además pensado para que los navegadores puedan trabajar con él.

Es decir, estamos hablando de una gran base de datos virtual a la que cualquier aplicación, independientemente del entorno, sistema operativo y lenguaje de programación puede acceder siguiendo unas APIs estándar.

Teniendo esto en cuenta, las limitaciones en el uso del XML en nuestras aplicaciones solo las pone nuestra imaginación.

Se utiliza por ejemplo:

En sistemas de documentación

Permite la estructuración y organización inteligente de la información.
Permite la manipulación inteligente de documentos o parte de estos.
Permite desde una única fuente de datos diferentes formatos de presentación y salida.

En el comercio electrónico

Permite el intercambio de información entre sistemas heterogéneos, lo que facilita el intercambio de información entre empresas.

En el diseño de aplicaciones informáticas

Se utiliza en combinación con el UML (XMI) en el diseño de aplicaciones.
Se utiliza para 'Literate Programing', de manera que se permita escribir de forma conjunta código y la documentación de este código.
Supone una revolución en el desarrollo de aplicaciones distribuidas.

En telefonía móvil

El WML (Wireless Markup Language) utilizado para escribir las páginas que se visualizan en los móviles es una aplicación XML.

¿Que son los lenguajes hojas de estilo para XML?

Como ya hemos dicho en principio un documento XML no son más que datos, y que como tal se pueden utilizar en múltiples aplicaciones informáticas y con objetivos bien diferentes, por lo que es posible que necesitemos convertirlo a un formato más compresible para los usuarios como puede ser HTML, RTF, PDF, etc. Esto es lo que nos van a permitir los lenguajes de hojas de estilo.

Existen tres tipos de lenguajes de hojas de estilos:

5.1 Las DSSSL

DSSSL (Document Style and Semantics Specification Language) es un estándar (ISO/IEC 10179:1996) en el que se define el lenguaje mediante el cual podemos transformar y formatear documentos SGML/XML.

Mediante una DSSSL podemos:

• Transformar un documento SGML/XML en otro SGML/XML.
• Convertir un documento SGML/XML a un formato de presentación.

Tanto los ficheros SGML/XML como las DSSSL son ficheros de texto, por lo que para realizar las acciones anteriores es necesario disponer de un motor DSSSL. El más conocido de estos motores es el Jade de James Clark.

5.2 Las CSS

Los que conocen el lenguaje HTML saben qué son las hojas de estilo para documentos HTML, y que mediante ellas podíamos sacar fuera del código HTML gran parte de las etiquetas que le dan formato de manera que:

• Obtenemos ficheros HTML más pequeños
• Podemos modificar el aspecto de varias páginas HTML simplemente modificando la CSS que llevan asociadas.

Ahora se ha extendido su uso a documentos XML y es posible representar un documento XML asociándole una CSS. De esta manera un navegador ya no sólo es capaz de representar HTML sino también XML+CSS.

5.3 XSL (XSL, XSLT y XPaht)

La XSL es un lenguaje de hojas de estilo para documentos XML.

Mediante las XSL podremos:

Transformar un documento XML en otro XML (en particular en HTML).
Convertirlo en otro formato de salida como puede ser RTF, PDF mediante la utilización de los objetos de formateo.

El W3C ha divido recientemente esta especificación en tres partes: XSL, XSLT, y XPaht:

• La XSL el lenguaje de objetos de formateo.
• La XSLT la parte de la especificación que describe el lenguaje que nos permite convertir un documento XML en otro XML (en particular en HTML).
• El XPath es un lenguaje mediante el cual podemos hacer referencias a partes de un documento XML

A pesar de ser tres especificaciones se complementan y se utilizan conjuntamente.

Una XSL no es más que un fichero de texto, por lo que es necesario un motor XSL que combinando el XML y la XSL correspondiente nos proporcione el formato de salida. El más conocido es el XT de James Clark.

El IE5 también implementa (versión antigua) una versión de XSL por lo que también es posible representar documentos XML en un navegador mediante su XSL correspondiente.

Pero los lenguajes de hojas de estilo no son la única forma de convertir un documento XML a otro formato. Mediante Java, Perl, VisualVasic, Phyton o cualquier otro lenguaje en el que existan parsers de XML podemos crear aplicaciones que lean ficheros XML y los conviertan al formato deseado.

Las ventajas del lenguaje de hojas de estilos frente a este método son:

• Son ficheros de texto, y por lo tanto para cambiar el aspecto que va a tener nuestro documento XML no tenemos más crear otra hoja de estilos, sin tener que modificar la aplicación que los procesa.
• Algunos navegadores ya entienden estos lenguajes de hojas de estilo, por lo que son capaces de representar XML.
• Desde una única fuente de datos podemos presentar el XML en múltiples formatos.
• Podemos personalizar fácilmente la presentación de la información cambiando simplemente la hoja de estilos. De este modo puede personalizarse no solo su presentación, sino que también podremos filtrar el contenido, presentando solo parte de este o la totalidad en función por ejemplo del perfil de usuario que la consulta.

¿Puedo visualizar XML en un navegador?

Por el momento el único navegador, de los que se utilizan normalmente, que permite trabajar con XML de una forma razonable es el IE5.

La próxima versión de Netscape también traerá soporte para XML y algunos de los estándares asociados.

Luego existen bastantes navegadores especializados que permiten trabajar con algunas aplicaciones XML concretas.

¿Que son los XLink y los Xpointer?

Quienes han utilizado la Web alguna vez, saben hasta qué punto es importante el hiperenlace. Sin embargo, no todo el mundo sabe que las nociones sobre hiperenlace de la Web son bastantes reducidas comparadas con los sistemas de hipertexto comerciales y académicos. XML por si solo no puede corregir esto, pero existen dos normas asociadas: XLINk y Xpointer que dan un paso de gigante en la consecución de un entorno de hipertexto más avanzado.

En HTML colocamos un enlace utilizando la etiqueta (a href="documento")...(/a) (cambiar () por <>) y podemos enlazar a un único documento o al interior de este siempre y cuando este marcado con la etiqueta: ..

En la especificación XLink se especifica como permitir el enlace entre documentos XML.

Todavía esta en desarrollo, pero mediante esta especificación, cuando los navegadores la implementen, se podrá:

• Utilizar cualquier elemento del XML como origen de enlace.
• Enlazar a más de un documento.
• Crear enlaces fuera del documento.
• Definir el comportamiento del enlace, etc.

En la especificación XPointer se define la sintaxis que nos permitirá enlazar al interior de un documento XML. Con esta nueva norma los enlaces ya no sólo serán a elementos ya marcados sino que se permitirán enlaces del tipo:

• 'Enlaza a la primera aparición de la palabra Internet'.
• 'Enlaza al tercer párrafo del segundo capítulo', etc.

¿Donde puedo obtener más información sobre XML.?
La Web por excelencia sobre el XML y SGML es la página que sobre este tema
mantiene Robin Cober en la dirección:

http://www.oasis-open.org/cover/

También son muy recomendables:

http://www.xmlhack.com/
http://www.xml.com/
http://www.ibiblio.org/xml/
http://msdn.microsoft.com/xml/default.asp
http://www.ibm.com/developer/xml/

y en castellano:

http://html.programacion.net



Nombre:

Email:

Comentario: