María Jesús Lamarca Lapuente. Hipertexto: El nuevo concepto de documento en la cultura de la imagen. |
eXtensible Markup Language (XML)XML son las siglas del Lenguaje de Etiquetado Extensible. La expresión se forma a partir del acrónimo de la expresión inglesa eXtensible Markup Language. Se trata también de un lenguaje estándar que posee una Recomendación del World Wide Web Consortium: Extensible Markup Languajes (XML) (http://www.w3.org/TR/REC-xml/). Con la palabra "Extensible" se alude a la no limitación en el número de etiquetas, ya que permite crear aquellas que sean necesarias. XML surgió como un lenguaje de marcado para sustituir a HTML. Ambos lenguajes son herederos de SGML, el lenguaje de marcas estándar para la descripción formal y de contenido de los documentos, no solamente para la presentación de dichos documentos. El desarrollo de XML comenzó en 1996 y desde entonces ha tenido un desarrollo exponencial. En realidad, XML surge del campo empresarial, ya que HTML era un lenguaje poco potente para soportar de un modo eficaz y masivo hacer negocios virtuales. Intentando mejorar HTML y tomando como punto de partida el viejo lenguaje SGML (Standard Generalized Markup Language), pero simplificándolo para poder trabajar en la Web, se creó XML y sólo 2 años después, en febrero de 1998, fue adoptado como recomendación por el World Wide Consortium, quien lanzó la versión 1.0. HTML tiene su propia especificación basada en XML, la del lenguaje XHTML (eXtensible Hypertext Markup Language) que es, en realidad, un paso intermedio de la migración de HTML hacia XML. La primera definición de XML fue la de "Sistema para definir, validar y compartir formatos de documentos en la Web". Para crear XML se tomaron las mejores partes tanto del lenguaje SGML como del HTML. La diferencia fundamental entre HTML y XML es que el primero estaba orientado a la presentación de datos, mientras que XML está orientado a los datos en sí mismos, por lo que cualquier software informático trabajará mejor con XML. Sin duda, esta diferencia es fundamental para los nuevos desarrollos de la Web donde se da suma importancia al contenido de los datos y su tratamiento, y no sólo a su presentación. HTML era, principalmente, un lenguaje de presentación que definía un conjunto de etiquetas y atributos válidos y que ofrecía un significado visual para cada elemento del lenguaje, por el contrario, XML no define las etiquetas ni cómo se utilizan, sino que ofrece un escaso número de reglas sintácticas para poder crear documentos. Así pues, XML no es un lenguaje, sino un metalenguaje o lenguaje para definir otros lenguajes. XML no sustituye a HTML puesto que sirven para cosas distintas: una cosa es presentar la información (para lo que sigue siendo válido HTML) y otra bien distinta es representar e intercambiar los datos de forma independiente a su presentación (que es para lo que sirve XML). Además, XML no sólo se aplica en Internet, sino que se propone como un lenguaje de bajo nivel para intercambio de información estructurada entre distintas plataformas. Se puede utilizar en bases de datos, hojas de cálculo, editores de texto, etc. y no sólo en la Web. HTML y XML son, pues, dos lenguajes complementarios. Las diferencias fundamentales de XML con respecto a HTML son las siguientes: no requiere DTD (Document Type Definition), el XML tiene punteros a la estructura de los datos, lo que ahorra tiempo y simplifica el software de aplicación. XML no dispone de soporte para excepciones, por lo que cada etiqueta realiza siempre la misma función. Posee independencia de los navegadores y del sistema de objetos, porque en lugar de añadir etiquetas de presentación al documento se remite a una hoja de estilo realizada en XSL (Extensible Style Languaje). XML es un lenguaje que permite jerarquizar y estructurar la información y describir los contenidos dentro del propio documento, así como la reutilización de partes del mismo. La información estructurada presenta varios contenidos (texto, imágenes, audio, etc.) y formas: hojas de cálculo, tablas de datos, libretas de direcciones, parámetros de configuración, dibujos técnicos, etc. La forma da alguna indicación de qué papel puede jugar el contenido (por ejemplo, el contenido de una sección encabezada con un significado difiere del contenido de una nota a pie de página, lo que significa algo diferente que el contenido de un pie de foto o el contenido de una tabla de datos). Más o menos todos los documentos tienen la misma estructura. Los programas que producen "datos estructurados" a menudo también permiten que estos datos puedan guardarse tanto en formato binario como en formato texto. El formato texto permite ver los datos sin el programa que los ha producido. El lenguaje XML se basa en el lenguaje Unicode (con un conjunto de caracteres de 16 bits, más que el formato ASCII). XML consiste de una serie de reglas, pautas o convenciones para planificar formatos de texto para tales datos, de manera que produzcan archivos que sean fácilmente generados y leídos por un ordenador, que sean inequívocos y que eviten los problemas más comunes como la falta de extensibilidad, la falta de interoperabilidad entre plataformas o la falta de soporte para universalizar su tratamiento. Los archivos XML son archivos de texto, pero más difíciles de leer por las personas que los archivos HTML. Se puede usar un editor de texto para programar XML, pero cualquier error u olvido de una etiqueta dejará inservible dicho archivo. El lenguaje XML es más estricto que el HTML. Como hemos afirmado anteriormente, un lenguaje de marcas es un mecanismo para identificar estructuras en un documento. La especificación XML define una manera estándar de añadir marcas a los documentos. El número de aplicaciones basadas en documentos XML es bastante numeroso si tenemos en cuenta que XML es muy reciente. La palabra documento no se refiere solamente a los documentos tradicionales, sino también a otro tipo de formatos de datos en XML. Esto incluye gráficos vectoriales, transacciones de e-comercio, ecuaciones matemáticas, objetos de metadatos, servidores APIs (Application Programming interface) y otros cientos de clases de información estructurada. En
HTML las etiquetas semánticas y el conjunto de etiquetas son fijas.
Un <h1> es siempre un primer nivel de encabezado.
Al igual que el HTML,
el lenguaje XML
utiliza etiquetas (palabras entre corchetes agudos: '<' y '>') y atributos
( El World Wide Web Consortium, la comunidad Web y los proveedores de navegadores trabajan constantemente para extender una definición de HTML que permita nuevas etiquetas para estar a la altura del cambio tecnológico y conseguir mejoras en la presentación y estilos de la Web. Sin embargo, estos cambios siempre estaban rígidamente limitados por quienes desarrollan los navegadores y porque no siempre es posible la compatibilidad. XML intenta solucionar este problema. XML no especifica ninguna semántica o conjunto de etiquetas. De hecho, XML es realmente un metalenguaje para describir lenguajes de marcas. En otras palabras, XML facilita definir etiquetas y relaciones estructurales entre ellas. Desde que un conjunto de etiquetas no se predefine, no puede haber una semántica preconcebida. De todas las semánticas de un documento XML, ésta será definida por las aplicaciones del proceso o por las hojas de estilo. XML tampoco es como SGML, aunque se trata de una clase de SGML. XML se define como una aplicación perfilada de SGML. El lenguaje SGML (Standard Generalized Markup Language) ha sido el estándar, para mantener los depósitos centrales de la estructura documental desde hace más de una década, pero esto no satisface para ofrecer documentos sobre la Web. Definir XML como una aplicación perfilada de SGML significa que el sistema que compone SGML puede leer documentos XML. Sin embargo, usar y comprender documentos XML no requiere un sistema que sea capaz de leer el complejo SGML. Es importante comprender por qué se ha creado XML. XML se ha creado para enriquecer la estructura de los documentos que pueden ser usados en la Web, puesto que las otras alternativas viables, HTML y SGML, no eran demasiado prácticas para este propósito. Según la especificación, los objetivos de diseñar XML fueron los siguientes:
HTML obliga a un conjunto de semánticas y no provee una estructura absoluta. SGML sí provee una estructura absoluta, pero es demasiado difícil desarrollarla para un navegador web. Los sistemas SGML solucionan muchos problemas complejos que justifican su uso, pero viendo la estructura de la mayor parte de los documentos que pueblan la Web, se comprueba que raramente justifican el uso de SGML en la Web. XML no puede ser completamente reemplazado por SGML puesto que en algunos casos se precisan documentos más complejos. Sin embargo, para usarse en la Web, XML es mejor solución y muchas organizaciones están transformando sus documentos SGML a XML porque se está convirtiendo en el procedimiento estándar para crear la Web. XML fue concebido como un medio para recobrar la potencia y flexibilidad de SGML sin que adquiriese su gran complejidad. A pesar de ser una forma restringida de SGML, XML conserva casi toda la potencia y riqueza de las características de SGML. Entre las ventajas de adoptar XML podemos destacar las siguientes: los autores o proveedores pueden diseñar sus propios documentos a medida diseñando e inventando sus propias etiquetas dependiendo de las funciones que quieran dar a los datos. La información contenida en un documento XML puede ser más rica y fácil de usar porque las habilidades hipertextuales de XML son mayores que las de HTML. XML puede ofrecer más facilidades para la representación en los navegadores ya que elimina muchas de las complejidades de SGML en aras de una mayor flexibilidad del modelo, con lo que la escritura de programas para manejar XML es mucho más sencilla. La información será más accesible y reutilizable porque la flexibilidad de las etiquetas de XML puede utilizarse sin tener que amoldarse a las reglas específicas de un fabricante como es el caso de HTML. Los archivos XML válidos son válidos también en SGML, por lo que también pueden utilizarse fuera de la Web en un entorno SGML. Los principales usos de XML son los siguientes:
Algunas de las aplicaciones XML son las siguientes:
En resumen, XML posee una estructura más abierta y extensible ya que no se precisan versiones para que pueda funcionar en los futuros navegadores que se desarrollen. Los identificadores pueden crearse de manera más simple y pueden ser adaptados tanto para la Web como para una intranet por medio de un procesador de documentos (parser). Los identificadores descriptivos de un documento XML (como por ejemplo, los RDF -Resource Description FrameWork- o los esquemas) son más homogéneos y tienen una mayor consistencia que, por ejemplo, las etiquetas <META> del lenguaje HTML. XML permite gestionar los datos aunque procedan de diversas fuentes y también permite el intercambio de documentos entre distintas aplicaciones ya estén en un único ordenador o en una red. Los datos se pueden gestionar desde el propio cliente Web, algo que con HTML tenían que hacer los ordenadores servidores. Como la información en XML está mucho más estructurada, esto facilitará enormemente la labor a los buscadores y los robots y agentes inteligentes, que accederán a los datos de manera más precisa. Los enlaces bidireccionales y almacenados de forma externa, la existencia de enlaces agrupados, atributos de los enlaces, los enlaces que pueden especificarse y gestionarse desde fuera del documento y el resto de funcionalidades que ofrece el lenguaje XLL (Lenguaje de Enlaces Extensible) permitirán ampliar el concepto de hipertexto ya que la denominación no dependerá de la ubicación. Una de las características más importantes de XML en relación al hipertexto es la inclusión de enlaces multidireccionales (que apuntan a varios documentos). Y por último, hay que tener en cuenta la exportabilidad de XML a otros formatos de edición, ya que el documento maestro de la edición de un documento XML podría ser exportado de forma directa tanto a la Web como para su edición en papel, CD-ROM, etc. Estructura de XMLLos documentos XML se componen de unidades de almacenamiento llamadas objetos o entidades (entities), que contienen datos analizados (parsed) o datos sin analizar (unparsed). Los datos analizados se componen de caracteres, algunos de los cuales forman los datos del documento (data) y el resto forman las etiquetas (markups) o marcas. Las etiquetas codifican la descripción de la estructura lógica y de almacenamiento del documento. XML proporciona un mecanismo para imponer limitaciones en la estructura lógica y de almacenamiento. Para leer los documentos XML y acceder a su contenido y estructura, se utiliza un software o programa procesador de XML. Cualquier aplicación que trabaje sobre XML necesita ese módulo o procesador XML (parser). Dicho módulo lee los documentos y proporciona acceso a su contenido y estructura. Para poder llevar a cabo esa función, la aplicación debe proporcionar información al procesar XML de cómo se encuentra almacenada esa información a través de un DTD (Document Type Declaration) o de un esquema (schema), también conocido como vocabulario. El DTD o declaración del tipo de documento y los esquemas, proporcionan la gramática para una clase de documentos XML. Estos mecanismos se utilizan para la llamada validación tanto estructural como formal del documento, esto es, enviar un documento a un destinatario junto con las condiciones que deben cumplir los documentos. En la actualidad, los esquemas se utilizan en mayor medida que los DTDs dentro de XML. Las DTDs ya se empleaban en lenguaje SGML y servían para definir los modelos de contenido, esto es, mostrar en qué orden y qué elementos pertenecían a un elemento de orden superior en la jerarquía del documento. Además, permitían imponer ciertas restricciones sobre el tipo de elementos. Al igual que en SGML, en XML los DTDs son archivos de texto que encierran una definición formal de un tipo de documento y, a la vez, tienen la función de especificar la estructura lógica de un archivo XML proporcionando los nombres de los elementos, atributos y entidades que utiliza, además de suministrar la información sobre la forma en que se pueden usar conjuntamente. Este lenguaje formal permite a los procesadores analizar automáticamente un documento e identificar de dónde viene cada elemento y cómo se relacionan entre ellos, para que los navegadores, las hojas de estilo, los motores de búsqueda, las bases de datos y las aplicaciones de impresión, entre otras, puedan utilizarlos. El DTD del lenguaje XML es opcional. En tareas sencillas no es necesario construir una DTD, entonces se trataría de un documento "bien formado"(well-formed) y si lleva DTD será un documento "validado" (valid). Los esquemas (schemas) son estructuras más potentes y expresivas que las DTDs, ya que permiten especificar el contenido de los documentos en función del tipo de datos empleado. Ante el desarrollo en unos pocos años de un gran número de esquemas diferentes, el World Wide Web Consortium se vio obligado a normalizar la situación mediante 2 Recomendaciones: Schema Specification que tratan de armonizar los diferentes esquemas existentes. Con ellas, se pretende definir la estructura, contenidos y semántica de los documentos. Como hemos dicho anteriormente, un documento XML tiene 2 estructuras, una lógica y otra física. Físicamente, el documento se compone de unidades llamadas entidades. Una entidad puede hacer referencia a otra entidad, originando que ésta se incluya también en el documento. Cada documento comienza con una entidad documento, también llamada raíz. El documento está compuesto de declaraciones, elementos, comentarios, referencias a caracteres e instrucciones de procesamiento, todos ellos están indicados con una marca explícita. Las estructuras lógica y física deben encajar de forma adecuada. Los documentos XML pueden ser de 2 tipos: documentos bien formados y documentos válidos. Un documento está bien formado si, considerado en su conjunto, encaja con la especificación XML de producción. Un documento bien formado es, además, válido, si tiene DTD o Esquema. Un archivo XML válido comienza con una DTD o Declaración de Tipo de Documento:
<?xml version="1.0"?> Dado que XML está diseñado para ser un subconjunto de SGML, cualquier documento XML válido debe ser también un documento SGML válido. Los esquemas indican tipos de datos, número mínimo y máximo de ocurrencias y otras características más específicas. He aquí un ejemplo de Esquema (XML Schema): <schema targetNamespace=”http://www.hipertexto.info/Schema_y_DTDs” xmlns=”http://www.w3.org/2001/XMLSchema” xmlns:HPT=”http://www.hipertexto.info/Schema_y_DTDs” > <element name=”Articulo” type=”HIP:tArticulo” /> <complexType name=”tArticulo”> <element name=”Cabecera” type=”HPT:tCabecera”/> <element name=”Cuerpo” type=”HPT:tCuerpo”/> <element name=”Final” type=”HPT:tFinal”/>f </complezType> <complexType name=”tCabecera”> <element name=”Titulo” type=”string”/> <element name=”Autor” type=”string”/> </complexType> Los sistemas XML tienen mayores funcionalidades que los sistemas HTML en cuando a enlaces. Los hiperenlaces de HTML seguirán usándose, pero XML ha desarrollado una nueva tecnología de enlazado que permite manejar enlaces bidireccionales y multi-caminos (X-Path), así como enlaces a un fragmento de texto y no sólo a un único punto. Un enlace XML puede ser bien un URL (como en los enlaces tradicionales, que aquí se conocen como XLink), bien a un Puntero Extendido (aquí conocido como XPointer o Xptr), o ambos. Un URL en sí misma se asume que tiene que ser un recurso (como en HTML). Si le sigue un XPointer, se asume que es un subrecurso de ese URL. Un XPointer en sí mismo se asume que se aplica al documento actual. Un Xptr siempre está precedido de uno o más símbolos #, ?, ó |. Los símbolos # y ? significan lo mismo que en las aplicaciones HTML; el símbolo | significa que el subrecurso puede encontrarse aplicando el Xptr al recurso, pero el método para hacerlo se deja a cargo de la aplicación. La notación de Punteros Extendidos (XPointer) tiene mayor funcionalidad que la de "fragmento de dirección" al final de algunos URLs, ya que permite no sólo referencias absolutas, sino también referencias relativas dentro de un documento a partir de frases u objetos textuales. XSLT y Xpath son Recomendaciones de World Wide Consortium (W3C) que definen un conjunto de reglas para transformar datos XML en una variedad de estilos de presentación, como HTML y otros vocabularios XML. XSLT sirve, por ejemplo, para transformar XML en otros lenguajes de marcas, como HTML. Xpath es el lenguaje para emparejar partes de documentos XML. Y existen otros muchos lenguajes para la arquitectura XML como: RDF (para describir algo en la Web), Xlink (una sintaxis para los enlaces), XSLT (un lenguaje de transformación), XML Schema (para definir los lenguajes), Xforms (formularios para lenguajes XML), XML Events (para interacciones del tipo: clic, presione una tecla, etc.), la lista crece día a día a medida que XML se desarrolla. Veamos con más detenimiento toda esta terminología y todas estas Recomendaciones y lenguajes y herramientas relacionadas o afines a XML: Terminología XML
Lenguajes, especificaciones y herramientas afines a XMLDe todo lo anterior se desprende que, en realidad, más que un lenguaje, XML es una familia completa de tecnologías. A la Recomendación o Especificación del World Wide Web Consortium que define la sintaxis y las etiquetas y atributos principales de este lenguaje, se le han ido sumando una serie de módulos opcionales que ofrecen nuevas colecciones de etiquetas y atributos, o nuevas normas para llevar a cabo otras tareas específicas. En noviembre de 1999 se lanza el estándar XLink para añadir enlaces de forma estándar a los documentos XML, y poco después surgen XPointer (similar a las funciones de una URL pero que no apunta a documentos de la Web, sino a fragmentos de datos en XML) y XSL (para establecer hojas de estilo en XML). XSL se basa en XSLT, un lenguaje de transformación que sirve también fuera de XSL para añadir, borrar o reordenar etiquetas y atributos. Y, por último, nace DOM un lenguaje que permite manipular archivos tanto HTML (DOM) como XML (DOM Nivel 1). Existen también otros muchas especificaciones como XML Namespaces (para asociar una URL con cada etiqueta y atributo de un documento XML), XML Schemas 1 y XML Schemas 2 (para ayudar a los desarrolladores a definir sus propios formatos basados en XML) y otro gran número de módulos y herramientas que periódicamente salen a la luz a través de los informes técnicos y las publicaciones del World Wide Web: Consortium W3C Technical Reports and Publications http://www.w3.org/TR/ Podemos resumir las diferentes especificaciones y lenguajes relacionados con XML como sigue:
Así pues, en la arquitectura del XML hay que tener en cuenta una serie de conceptos como Namespaces, XLink, Xpath, XML Schema, etc. y existen una serie de elementos para la presentación tales como las hojas de estilo CSS, XSLT, XSL-FO, etc; o herramientas de validación como DOM y SAX. A esto hay que añadir la existencia de una serie de lenguajes que lo complementan como XHTML, MathML, SVG, SMIL, etc. y otra serie de lenguajes que ahondan en los aspectos semánticos y nuevas concepciones de presentación de la información como Topic Maps, XFML, RDF u OWL. En realidad, XML es un metalenguaje con una estructura modular dotado de una enorme flexibilidad que se va desarrollando y que permite un acercamiento a ese que se ha denominado Web Semántica. El desarrollo de XML ha seguido un rumbo imparable no sólo por parte de los organismos encargados de normalizar la World Wide Web e Internet, sino también por parte de gobiernos, la industria y las grandes compañías presentes en Internet. He aquí algunos ejemplos de conferencias y eventos convocados para desarrollo de XML: XML Europe 2003 Conference & Exposition. Powering the Information Society:
http://www.xmleurope.com/; Bibliografía:BOSAK, Jon. BRAY, Tim. "XML and the Second-Generation Web". Scientific American, may 1999. http://www.sciam.com/1999/0599issue/0599bosak.html (requiere suscripción) BRAY, Tim. "Beyond HTML: XML and Automated Web Processing. View Magazine, Netscape Communications Corporation, 1999. http://xml.coverpages.org/brayXMLViewsource.html CARRASCO SANZ, José Luis. http://www.it.uc3m.es/xml/documentos/xml.pdf CLARK's, James. Comparison of SGML and XML. http://www.w3.org/TR/NOTE-sgml-xml.html COVER, Robin. XML and Semantic Transparency. http://www.oasis-open.org/cover/xmlAndSemantics.html Cover Pages. Extensible Markup Language (XML). http://xml.coverpages.org/xml.html Cover Pages. XML Linking Language. http://xml.coverpages.org/xll.html Cover Pages.. XML Schemas. http://www.oasis-open.org/cover/schemas.html Extensible Modeling Language Resource Center. Popkin Software. http://www.popkin.com/customers/customer_service_center/enterprise_architecture_resource_center/xml.htm FLYN, Peter (ed.) The XML Facq. http://www.ucc.ie/xml/ FLOYD, Michael. Creación de sitios web con XML. Madrid, Pearson Education, 2000. FRETER, Todd. XML: Mastering Information on the Web. Sun Microsystems. http://www.sun.com/98310/xml GARCÍA ARENAS, María Isabel. Curso XML 1ª Edición. http://geneura.ugr.es/~maribel/xml/introduccion/index.shtmlirt.org Extensible Markup Language (XML) FAQ Knowledge Base. http://developer.irt.org/script/xml.htm LAM, K. T. Moving from MARC to XML. http://ihome.ust.hk/~lblkt/xml/marc2xml.html MÉNDEZ RODRÍGUEZ, Eva. Metadatos y recuperación de información: Estándares, problemas y aplicabilidad en bibliotecas digitales. Gijón, Trea, 2002. SALL, Keneth B. XML Acronyms. http://mywebpages.comcast.net/kensall/big-picture/XML-acronyms.html SPERBERG-McQUEEEN, C. M. XML and what it will mean for libraries. http://www.uic.edu/cmsmcq/talks/teidlf1.html TopicMaps.org. Specification XML Topic Maps XTM. http://www.topicmaps.org/xtm/1.0/
XML for Software Engineering. Xml4se: XML bibliography. http://www.iro.umontreal.ca/labs/gelo/xml4se/en/xmlBib.html W3C. Comparison of SGML and XML. http://www.w3.org/TR/NOTE-sgml-xml.html W3C. Document Object Model (DOM) Level 1 Specification. http://www.w3.org/TR/REC-DOM-Level-1/ http://html.conclase.net/w3c/dom1-es/cover.html (traducción al castellano: POZO, Juan R. Especificación del Modelo de Objetos de Documento. (DOM). Nivel 1. http://html.conclase.net/w3c/dom1-es/cover.html)W3C. Document Object Model (DOM) Level 2 Core Specification. http://www.w3.org/TR/DOM-Level-2-Core/ W3C. Document Object Model (DOM) Level 3 Core Specification. http://www.w3.org/TR/DOM-Level-3-Core/ W3C. Document Object Model FAQ. http://www.w3.org/DOM/faq.html
W3C. Extensible Markup Language XML
W3C Recommendation.
http://www.w3.org/TR/REC-xml/ W3C. How to add style to XML? http://www.w3.org/Style/styling-XML W3C. The Extensible Stylesheet Language Family (XSL). http://www.w3.org/Style/XSL/
W3C. What is XSL? http://www.w3.org/Style/XSL/WhatIsXSL.html
W3C.
XML in 10 points.
http://www.w3.org/XML/1999/XML-in-10-points.html W3C. XML Information Set (Second Edition). http://www.w3.org/TR/xml-infoset/ W3C. XML Linking Language (XLink). W3C Recommendation. http://www.w3.org/TR/xlink/. W3C. XML Pointer Language (XPointer). http://www.w3.org/TR/WD-xptr W3C. XML Information Set (Second Edition). http://www.w3.org/TR/xml-infoset/
WALSH, Norman. A Technical Introduction to XML. http://www.sun.com/980310/xml/
XLL
Mapa de navegación / Tabla de contenido / Mapa conceptual / Tabla de documentos / Buscador / Bibliografía utilizada / Glosario de Términos / Índice Temático / Índice de Autores
|