ci2.gif (97 bytes)

cd2.gif (98 bytes)

 

XML. Lenguaje de Marcas Extensible

La mayoría de nosotros hemos oído hablar alguna vez de XML (Lenguaje de Marcas Extensible), siendo muy corriente que se tenga la idea de que es una especie de HTML avanzado, por lo que siempre que sale el tema de XML surgen cuestiones fundamentales como: ¿Qué es exactamente XML?, ¿Es XML una nueva versión de HTML?, ¿Para qué sirve?, ¿Cuáles fueron los motivos de su creación?, ¿Qué ofrece?, ¿Tiene alguna aplicación en la actualidad?. 

Como es sabido HTML (Hypertex Markup Language) se ha convertido en un lenguaje de inmensa popularidad durante los últimos años ya que es la base sobre la que se preparan los contenidos para Internet. También debemos notar que nos hemos encontrado con sus propias limitaciones, que algunas de ellas se han querido subsanar con scripts, javascripts, Active X, HTML dinámico, etc.; pero en la realidad todas estas herramientas no aportan una solución global a las limitaciones del HTML. Hasta hace poco tiempo o actualmente cuando un Webmaster diseña un programa de compras para una tienda virtual, basándose en HTML, debe realizar un arduo trabajo que muchas veces no puede exportarse para su uso por otras tiendas. Quizá su diseño estaba previsto para Windows NT y no funciona en plataformas UNIX, o hacía uso de Perl pero no se integraba con Java. La implantación de XML viene a eliminar este tipo de situaciones permitiendo la creación de herramientas más estructuradas.
La solución a este problema es XML (Extensible Markup Languaje), que es un lenguaje de marcas (etiquetas) capaz de estructurar y definir la información en un documento. Además, el XML habilitará una nueva generación de aplicaciones manipulación y visualización de datos basadas en Web.
La información estructurada nos permite distinguir entre el contenido, (palabras, imágenes, gráficos, etc.), y el papel que juega dentro del documento, (por ejemplo, no es lo mismo el contenido informativo de un encabezado, que el de un pie de página, ya que el primero es más relevante). Se puede asegurar que casi todos los documentos tienen una estructura definida. XML nos permite identificar esas estructuras. A partir de ahora la palabra documento tendrá para nosotros un significado añadido, además de información, palabras, imágenes y gráficos, tendrá una estructura reconocible.
quees1.jpg (46001 bytes)
quees2.jpg (27609 bytes)

¿Es igual XML a HTML?
La respuesta es categóricamente no, mientras que en HTML el significado que aporta una etiqueta es fijo, predefinido por el estándar, (<HEAD>... </HEAD>, identifica la cabecera del documento, <BODY>... </BODY>, el cuerpo, etc.), y proporciona una estructuración a un único nivel, en XML no existe un conjunto de etiquetas con significado predefinido y la estructuración puede ser de tantos niveles como deseemos.
En principio, la intención de HTML era que las etiquetas fueran capaces de marcar la información de acuerdo con su significado, sin importar cómo se mostraban en la pantalla. Lo importante era el contenido y no la forma, o sea, que era un lenguaje de marcas orientado a describir los contenidos, dejando a cada navegador la tarea de dar el formato del documento según su criterio de interpretar las marcas. Esto producía presentaciones diferentes, pero permitía controlar fácilmente su contenido. Si una persona o un motor de búsqueda quería conocer el título del documento, el autor de la página o las cabeceras de los capítulos, siempre buscaba en el código las etiquetas TITLE, ADDRESS o Hx. Además, si a alguien no le gustaba la idea de dejar a cada aplicación la decisión de cómo mostrar el contenido de las etiquetas, siempre le quedaba la posibilidad de controlar el formato del documento con descripciones particulares, como es el caso de las hojas de estilo en cascada (CSS).
Pero por diversos motivos, los creadores de los navegadores fueron añadiendo más etiquetas HTML dirigidas a controlar la presentación, como FONT, I, CENTER, xCOLOR, etc., y los usuarios las utilizaron para que sus documentos estuviesen perfectamente formateados, sin permitir diferencias importantes entre visualizadores distintos, por lo que HTML pasó a ser un lenguaje de marcas más dirigido al control de la presentación
HTML, no es un lenguaje de programación, es un lenguaje de especificación de contenidos para un tipo específico de documentos SGML. Es decir, mediante HTML podemos especificar, usando un conjunto de marcas, cómo va a representarse la información en un navegador o browser. La facilidad de uso y la particularidad de que no es propiedad de nadie, hizo al HTML el sistema idóneo para compartir información en Internet. La expansión de Internet le ha dado una posición de privilegio y ha hecho que la idea inicial se modifique considerablemente.
Por esto mismo, HTML es actualmente un lenguaje sobrecargado, limitado por las imposiciones de los desarrolladores de navegadores y los avances técnicos que imponen añadir cada vez más capacidades al estándar, y la compatibilidad hacia atrás. (Si Explorer o Navigator implementan esta o aquella nueva etiqueta que proporciona a los diseñadores de páginas Web la posibilidad de incorporar una nueva filigrana visual a sus diseños, hasta ahora para intentar mantener un mínimo de compatibilidad, se han intentado incorporar estas etiquetas al estándar, y ya sabemos la guerra que hay entre Microsoft y Netscape). Un documento HTML, a pesar de ser sencillo y portable a múltiples plataformas, no permite distinguir entre partes de un documento, por tanto, siempre habrá que manejarlo, transmitirlo en su totalidad, pensar en él como un único bloque.
XML es en realidad un meta-lenguaje para describir lenguajes de marcas, proporciona las herramientas necesarias para definir etiquetas y las relaciones jerárquicas que necesitemos entre ellas. El significado semántico de cada marca lo daremos nosotros en la aplicación que procese los documentos o en las hojas de estilo, que encapsularán el formato/presentación del documento.

¿Es entonces igual a SGML?
Tampoco. XML es un subconjunto de SGML. SGML, (Standard Generalized Markup Languaje, ISO 8879), ha sido el principal lenguaje para el almacenamiento de información estructurada durante una década, ejemplos de sistemas como TIM, lenguaje específico para las telecomunicaciones, muy complejo por cierto, dan muestra de ello. El problema es que SGML no es apropiado para definir documentos que van a almacenarse en la Red, puesto que es muy complejo de utilizar, no es trivial definir estructuras y etiquetas con él, requiere visualizadores especiales, potentes, capaces de interpretar y mostrar lo que en ocasiones serán complejas estructuras organizadas jerárquicamente. Estos visualizadores no son muy corrientes y las necesidades de procesamiento que requieren son mucho más altas que las que exigiría un visualizador XML ó HTML, SGML es un formato muy ’pesado’.
XML es una forma restringida de SGML, portable, más ligera y fácil de utilizar, de forma que cualquier visor de SGML debe ser capaz de interpretar XML.
Es necesario resaltar que puede haber diferencias de interpretación es cuanto a los espacios en blanco, (tabulador, espacio blanco y retorno de carro), entre XML y SGML. Cualquiera de estos en un documento XML se interpretan como tales mientras se encuentren entre una etiqueta de apertura y otra de cierre.

¿Por qué entonces XML?
Aunque HTML ofrece amplias facilidades de presentación, no ofrece ninguna forma basada en estándares para administrar los datos y, llegado a un punto en el que HTML dejó de servir para su función inicial, en 1996 al Consorcio World Wide Web (W3C) no le quedó más remedio que describir un nuevo subconjunto del SGML que sirviese para describir contenidos de documentos, al que ha denominado XML, publicando las especificaciones de la versión 1.0 en 1998. Está además asociado a la recomendación del W3C DOM (Document Object Model), aprobado también en 1998. Éste no es más que un modelo de objetos (en forma de API) que permite acceder a las diferentes partes que pueden componer un documento XML o HTML. En estos momentos ya podemos empezar a hablar de XML con un poco de visión retrospectiva de los motivos de su aparición.
XML fue creado para posibilitar la distribución de documentos con formato/estructuración a través de la Red, puesto que las soluciones que ofrecían HTML y SGML no eran viables ni prácticas para este propósito.
HTML, como hemos dicho antes, está limitado por un conjunto de etiquetas fijo con semántica predefinida, en muchos casos impuesta por los intereses de las casas desarrolladoras y distribuidoras de navegadores, y por su incapacidad de proporcionar una estructuración real, con un número arbitrario de niveles.
SGML, puede dar toda la estructuración que deseemos, pero tiene en contra su gran complejidad.
XML no va a sustituir completamente ni a HTML, ni a SGML. El primero por su sencillez seguirá siendo útil, sobre todo para dar formato/presentación a páginas XML, mientras se afianza XSL, el estándar de las hojas de estilo, formato/presentación, para XML; mientras aparecen visualizadores XML eficientes y que sean capaces de mostrar estas páginas al menos con el mismo nivel de calidad en presentación que las páginas HTML, se utilizarán páginas en este formato para mostrar los contenidos XML; también si una página es estática, sujeta a pocos cambios, logotipos, anagramas, portadas, etc., encontrará en HTML un modo adecuado de implementación. El segundo, seguirá solucionando un rango de problemas cuya complejidad no pueda ser abordada por XML, y en los que los resultados si justifiquen el esfuerzo de emplearlo.
En el futuro no será extraño que se vean soluciones en las que haya sistemas que implementen soluciones que gestionen la información, o partes de ella, con diferentes formatos, SGML, XML o HTML, según el nivel de dificultad del problema, tendríamos incluso pasarelas entre los distintos formatos de representación de manera que podamos dirigir la información al lugar que nos interese y en el formato que sea apropiado según las necesidades de la organización.

Objetivos de los diseñadores de XML
Los principales impulsores de XML han sido los miembros del Word Wide Web Consorcium, W3C, ellos están coordinando todos los foros y grupos de trabajo que colaboran en la tarea de lograr una especificación completa del estándar. Sobre todo el W3C está haciendo mucho hincapié en que no se cometan los mismos errores que con HTML, es decir, que se desarrolle un estándar completo, robusto y válido para todo el mundo. Los principales objetivos que persiguen son los siguientes:
Los documentos XML deben distribuirse y visualizarse por la red con la misma facilidad que actualmente lo hacen los HTML. La principal dificultad de esto es que aparezcan visualizadores tan robustos y completos como los actuales, que nos permitan ver cómoda y adecuadamente la estructura de árbol de los archivos XML.
Los objetivos de XML no deben centrarse únicamente en la posibilidad de servir información estructurada por la red, hay otras muchas aplicaciones que pueden beneficiarse del estándar: búsqueda de documentos/información con un determinado autor, análisis de contenidos, definición de patrones, visualización gráfica de patrones expresados en XML, etc. En definitiva,
• Debe ser totalmente compatible con SGML.
• Los programas que interpreten XML deben ser fáciles de escribir.
• El número de capacidades opcionales o funcionalidades no definidas, o definidas de forma ambigua, ha de ser mínimo, o mejor ninguno, para evitar problemas de compatibilidad y confusiones en la interpretación.
• XML debe ser legible para los humanos, de manera que podamos leer un documento en un simple editor de texto.
• La especificación y diseño de XML debe obtenerse rápidamente. Es una solución que se requiere ya y se está trabajando intensamente para lograrlo.
• El diseño de XML debe ser formal y conciso, sin ambigüedades, de forma que le puedan ser aplicadas todas las técnicas modernas de diseño de compiladores; esto nos permitirá comprobar que los archivos XML que recibamos están bien formados y libres de errores antes de visualizarlos.
• Los documentos XML han de poder crearse y editarse fácilmente, con editores texto, PERL o editores específicos para este formato.
• La concisión es de mínima importancia. Muchas de las capacidades de SGML fueron introducidas para facilitar en lo posible la introducción manual de etiquetas, para que las especificaciones fueran unívocas. XML no soporta estas capacidades, que son la causa de gran parte de la carga que arrastran los analizadores SGML.

¿Cómo está definido XML?
XML es un formato basado en texto, específicamente diseñado para almacenar y transmitir datos. Un documento XML se compone de elementos XML, cada uno de los cuales consta de una etiqueta de inicio, de una etiqueta de fin y de los datos comprendidos entre ambas etiquetas. Al igual que los documentos HTML, un documento XML contiene texto anotado por etiquetas, pero, sin embargo y a diferencia de HTML, XML admite un conjunto ilimitado de etiquetas, no para indicar el aspecto que debe tener algo, sino lo que significa. Por ejemplo: un elemento XML puede estar etiquetado como precio, número de pedido o nombre. El autor del documento es quien decide qué tipo de datos va a utilizar y qué etiquetas son las más adecuadas. Los datos codificados en XML son autodescriptivos, pues las etiquetas descriptivas están entremezcladas con los datos. El formato abierto y flexible utilizado por XML permite su uso en cualquier lugar donde sea necesario intercambiar y transferir información. Dado que el XML es independiente del HTML, se puede insertar código XML en documentos HTML, utilizando el formato encapsulamiento definido por el W3C. Al incrustar datos XML en una página HTML, se pueden generar varias vistas a partir de los datos entregados, utilizando los datos semánticos que contiene el XML.
Extensible Markup Languaje (XML). La recomendación 1.0 define la sintaxis de XML. El estándar es estable y los desarrolladores de Web y de herramientas pueden adoptarlo plenamente.
XML Pointer Languaje (Xpointer) y Linking Languaje (Xlink). Define la manera estándar de XML de representar los vínculos entre recursos. En XML, además de los enlaces Href, vínculos normales de HTML, contamos con vínculos bidireccionales, y enlaces que relacionan múltiples recursos, (multienlaces).
Extensible Style Languaje (XSL). Especifica la sintaxis de las hojas de estilo que pueden aplicarse a un archivo XML. Estas hojas son la base del formato/presentación personalizado que podemos dar a cualquier documento.
Document Type Definition (DTD). Plantillas que almacenan la estructura del documento y la definición de sus etiquetas, aislando la información estructural de la instancia propiamente dicha. (Es decir, una tarjeta de visita podría ser modelada con determinada estructura, pero esta estructura es independiente de un ejemplo de tarjeta, una instancia). Esta distinción nos permite tener varios documentos con un mismo formato sin tener que definirlo cada vez que lo necesitemos; al mismo tiempo podemos definir cualquier particularidad que escape de esta especificación general, dentro de un documento concreto. (Las DTD’s vendrían a ser algo similar al concepto de clase en la Programación Orientada a Objetos, mientras que el fichero XML, representaría una instancia, objeto, de dicha clase).
Debemos destacar que también existen trabajos sobre lenguajes de consulta que permiten localizar información dentro de un archivo XML, o buscar ciertos documentos que cumplan determinadas condiciones.

Fortalezas y Debilidades del XML
La meta fundamental del XML es hacer la cooperación y la interoperabilidad más fáciles entre módulos que pertenecen a diferentes sistemas, e incluso a diferentes organizaciones. Entonces, ¿por qué el XML se ha convertido en tecnología del alto nivel tan rápidamente? La respuesta es simple: XML es texto simple, pero es también elegante. Un lenguaje de marcas hace fácil identificar (y extraer en un tiempo posterior) segmentos específicos de información con significados especiales.
Usar texto simple y mantener el contenido universalmente interpretable son dos condiciones para implementar una tecnología exitosamente entre sistemas heterogéneos. Una cadena del texto se puede transferir y se puede manejar fácilmente en cualquier plataforma destino. Sin embargo, si solo se planea definir un protocolo basado en texto para hacer que los módulos se comuniquen, no se necesita XML. El ASCII, de hecho, ha existido durante mucho tiempo. La diferencia recae en las etiquetas XML que se utilizan para delimitar segmentos de información.
La principal fortaleza del XML es también, actualmente, su debilidad principal. El XML es demasiado genérico para ser utilizado sin definir externamente la sintaxis exacta de un documento y cómo puede localizarse y extraerse cada fragmento de datos intercambiados. Tal estandarización es más simple de alcanzar dentro de una sola aplicación corporativa, incluso si atraviesa varias plataformas heterogéneas de hardware y de software. Conseguir el mismo resultado en un contexto más amplio requiere un enorme esfuerzo para llegar a algunas definiciones estándares.
Cuando se trata de integrar sistemas de diferentes organizaciones, especialmente de una manera abierta, el XML muestra algunas limitaciones. El XML trata de la descripción de los datos, pero solamente es útil cuando las personas están de acuerdo en la manera que los datos deben ser descritos. Una factura, por ejemplo, es lógicamente el mismo tipo de documento para cualquier proceso que lo manipule, pero diferentes procesos pueden convertirla en formatos binarios diferentes. A pesar del formato de almacenamiento físico, el documento necesita ser transmitido y ser recibido en un formato comúnmente reconocido disponible en todas las plataformas. Por supuesto, el XML se puede utilizar como este formato.
Imaginemos el enorme costo que supondría para los consumidores y las empresas si cada empresa definiera su propia forma de publicar la información. Incluso con la Web, los costos asociados a la configuración y el mantenimiento de un sitio Web superarían la capacidad de algunas empresas. Al no haber ningún límite al número de empresas que podrían publicar esta información, la falta de estándares que definan el modo de publicarla de una forma segura y controlada tendría como consecuencia miles y miles de implementaciones, enfoques de exploración de la Web y profundidad del contenido distintos. Por este motivo, en la actualidad se están definiendo esquemas por grupos sectoriales con intereses similares, de manera que existirán esquemas estándares avalados por asociaciones de empresas y organismos que garanticen que cualquier usuario que las adopte como suyas, trabaje con las mismas etiquetas. Así, surge BizTalk, que es una iniciativa mundial dirigida a crear una base de datos de formatos o esquemas de documentos en XML.
XML es una manera de almacenar, buscar y obtener todos esos datos comerciales críticos que se almacenan en BB.DD y rivaliza con éxito con HTTP, HTML y SQL.

¿Qué ofrece XML? ¿Qué aplicaciones hay?
Ante todo, XML nos da la posibilidad de estructurar e identificar la información en categorías relevantes. Esto significa que podremos ser capaces de localizar aquello que realmente necesitemos y podremos transmitir/servir sólo aquellos documentos, o fragmentos de ellos, que consideremos conveniente, o que nos sean solicitados.
Esto nos abre un gran campo de en las áreas del B2B, (Business to Business), y el B2C, (Business to Consumer). Por un lado, empresas con diferentes plataformas de gestión y almacenamiento de BD podrían compartir información de forma inmediata, sólo con implementar una pasarela XML, es más, ya existen muchas librerías DTD’s que modelan documentos fiscales como facturas, albaranes, recibos, y sistemas que implementan almacenes de información en XML. Por otro lado, se nos presenta la posibilidad de personalizar al máximo la oferta de contenidos que proporcionamos a nuestros clientes en un negocio B2C, pensemos en las posibilidades de las Tecnologías Push, en las que el cliente selecciona el perfil de la información que desea recibir y el servidor se la proporciona periódicamente de manera selectiva, sin bombardeos indiscriminados de ofertas variopintas; imaginemos buscadores de información, recursos, foros, personas, etc., que proporcionen lo que realmente busquemos, ordenado por relevancia, temática, o cualquier otra categoría. Tendríamos contenidos para e-commerce, WAP, TV interactiva, orientados a sectores de población concretos, sería posible tener una plataforma de gestión de contenidos general e independiente del medio de difusión final. Esta puede ser la herramienta que solucione la estandarización y difusión de conocimientos científicos, quién sabe en cuantas áreas podría aplicarse una solución parecida a CML, lenguaje que aprovecha XML para dar un formato de representación a las cadenas de ADN y complejas fórmulas químicas.
El XML es valioso para la Internet, así como para los grandes ambientes de intranets corporativas porque proporciona interoperabilidad utilizando un formato basado en estándares, abierto y flexible con nuevas formas de acceder a bases de datos propietarias y proporcionar datos a los clientes de Web. Las aplicaciones se pueden construir más rápidamente, son más fáciles de mantener y pueden proporcionar varias vistas de los datos estructurados.
Estas son sólo algunas de las posibilidades, pero tenemos que reconocer que aún queda bastante tiempo y esfuerzo para que el estándar XML quede totalmente definido, (XSL y lenguajes de consulta de sobre XML son campos muy amplios en los que todavía queda mucho que hacer y definir), actualmente, ya van apareciendo atisbos de soluciones reales, queda que ganen reconocimiento y aprobación, y se extienda su uso. Puede que en un par de años se pueda hablar de soluciones comerciales con gran introducción en el mercado, pero no olvidemos que este es un estándar vivo, crece continuamente, y su éxito depende de muchos factores.
 

Bit - Nº 131

 

Puntitos.gif (823 bytes) Sumario
Puntitos.gif (823 bytes) Editorial
Puntitos.gif (823 bytes) Opinión (I)
Puntitos.gif (823 bytes) Opinión (II)
Puntitos.gif (823 bytes) Opinión (III)
Puntitos.gif (823 bytes) T.R. Murcia 
Puntitos.gif (823 bytes) Aragón
Puntitos.gif (823 bytes) A Vuelapluma
Puntitos.gif (823 bytes) Cataluña Bit a Bit 
Puntitos.gif (823 bytes) Gente Bit
Puntitos.gif (823 bytes) Display
Puntitos.gif (823 bytes) Display Empresa
Puntitos.gif (823 bytes) Entrevista
Puntitos.gif (823 bytes) Especial
Puntitos.gif (823 bytes) Café Redacción
Puntitos.gif (823 bytes) GRETEL
Puntitos.gif (823 bytes) Portal Ingeniería
Puntitos.gif (823 bytes) Perfil
Puntitos.gif (823 bytes) ¿Qué es?
Puntitos.gif (823 bytes) Tecn. Sociedad I
Puntitos.gif (823 bytes) Tecn. Sociedad II
Puntitos.gif (823 bytes) Tecn. Sociedad III
Puntitos.gif (823 bytes) Rincón  Internet
Puntitos.gif (823 bytes) Marco Regulador
Puntitos.gif (823 bytes) Pulso del Mercado
Puntitos.gif (823 bytes) Bit Recomienda
N

jhuidorbro.gif (14683 bytes)

José Manuel Huidobro
Ingeniero Superior de Telecomunicación
Marketing Information Manager. Ericsson España, S.A.
ecejmh@madrid.ericsson.se

Los objetivos de XML no deben centrarse únicamente en la posibilidad de servir información estructurada por la red, hay otras aplicaciones que pueden beneficiarse

 

 

El XML es valioso para la Internet, así como para los grandes ambientes de intranets corporativas porque proporciona interoperabilidad