María Jesús Lamarca Lapuente. Hipertexto: El nuevo concepto de documento en la cultura de la imagen. |
XML Linking Language XLL: (http://www.w3.org/XML/Linking) o eXtensible Linking Languaje, esto es, Lenguaje de Enlaces extendido, abarca un conjunto de tecnologías relacionadas con los enlaces y el direccionamiento en lenguaje XML.
Una de las características principales de la Web y del hipertexto es la conectividad que proporcionan enlaces de todo tipo: a imágenes, sonidos, vídeos, otros párrafos dentro del propio texto, otros documentos, etc. En el lenguaje HTML existen etiquetas o marcas para cada caso (generalmente usando la etiqueta <A>), pero en XML los enlaces se diseñan de una forma particular.
El tratamiento de los enlaces o hipervínculos es de tal importancia que el W3C ha redactado dos especificaciones o normas para mejorar y estandarizar su tratamiento: XLink y XPointer, y a estas especificaciones hay que sumar la especificación XML Base, donde se incluye un mecanismo para identificar y localizar los recursos a los que apuntan los enlaces, es decir, el uso de URIs o Localizador de Recursos Uniforme (Uniform Resource Identifier).
XLink (anteriormente conocido como XLL, Extensible Linking Language) define la forma en que los documentos XML deben conectarse entre sí, mientras que XPointer describe cómo se debe apuntar a un lugar específico de un determinado documento, es decir, trata de todo lo referente a los punteros y las anclas o anclajes. Es decir, XLink determina el documento al que se debe acceder, mientras que XPointer marca el lugar exacto de dicho documento.
Las especificaciones de los enlaces para XML permiten nuevas posibilidades que el lenguaje HTML no ofrecía, como adherirse a cualquier etiqueta, hacer referencia a un lugar concreto de un documento determinado a través de su nombre o localización (a través de XML Base que especifica cómo se definen los URIs básicos), describir los enlaces en documentos externos, procesar los enlaces de diferentes maneras (automáticamente, archivarlos, etc.) y otras muchas funciones como permitir múltiples saltos, etc.
La principal diferencia entre los enlaces de HTML y XML es que en XML existen 2 tipos básicos de enlaces: enlaces simples y enlaces extendidos.
Un enlace o hipervínculo simple se abre en una nueva ventana (show="new"), mientras que en un enlace o hipervínculo extendido existen 3 posibilidades: a una sección determinada del documento (#ana), a un determinado lugar de otro documento (#autores.xml#pedro) o a una zona delimitada por dos marcadores (editor y autor).
La especificación hace una precisión en cuanto a los términos enlace e hiperenlace al afirmar que uno de los usos comunes de XLink es crear hiperenlaces. Un hiperenlace es un enlace que se entiende primariamente para presentación a un usuario humano. Nada en el diseño de XLink, sin embargo, impide usar este término con enlaces que se usan únicamente para ser entendidos por ordenadores.
El lenguaje XLL (eXtensible Linking Language) define el modo de enlace entre diferentes enlaces. Se considera que es un subconjunto de HyTime (Hipermedia/Timed-based structuring Language o Lenguaje de estructuración hipermedia basado en el tiempo, ISO/IEC 10744:1997) y sigue algunas especificaciones del TEI (Text Encoding Initiative o Iniciativa de codificación de texto). Desde marzo de 1998 el W3C estuvo trabajando en los enlaces y direccionamientos del lenguaje XML. Provisionalmente, al lenguaje XLL se le llamó como Xlink y a partir de junio se le denomina XLL. Este lenguaje de enlaces extensible tiene dos importantes componentes: Xlink y Xpointer, ambos definen un modo estándar para representar enlaces entre recursos. El lenguaje XLL da un paso más allá en el tratamiento de los enlaces que el lenguaje HTML que sólo soporta los enlaces simples. Con XLL se pueden implementar enlaces extendidos y enlaces entre múltiples recursos. Jon Bosak establecía los siguientes mecanismos hipertextuales que soporta esta especificación:
XLink (XML Linking Language) http://www.w3.org/XML/LinkingLa especificación XLL o Extensible Linking Language tiene como fin dotar de cierta funcionalidad a los enlaces de la World Wide Web. La Web, a través del lenguaje HTML proporciona una forma de enlace única y utilizada por todos los usuarios: el elemento <a> o anchor (ancla). Se trata de un tipo de enlace unidireccional que no especifica nada de la página a la que apunta, excepto su localización. Tiene varios comportamientos según el diseño del URL (http, file, ftp, mailto, search) y el navegador que lo lea. Estos comportamientos son, por ejemplo, buscar y mostrar, buscar y guardar o mandar un e-mail, etc. Esta especificación define el XML Linking Language (XLink), que permite insertar elementos en documentos XML con el fin de crear y describir enlaces entre recursos. Este lenguaje usa la sintaxis XML para crear estructuras que pueden describir enlaces similares a los enlaces simples del actual HTML, pero también enlaces más sofisticados. XLink ofrece un marco para crear tanto enlaces básicos unidireccionales, como estructuras de enlaces mucho más complejas. XLink permite a los documentos XML:
Una aplicación importante de XLink es en los sistemas
hipermedia que tienen hiperenlaces. Un modo simple de enlazar es
usar un elemento
HTML
Este conjunto de características es muy poderoso, pero el modelo que le sirve de base limita mucho las posibles funcionalidades de los enlaces. El modelo definido en la especificación XLink comparte con HTML el uso de la tecnología URI, pero va más allá que HTML al ofrecer características que antes sólo estaban disponibles en los sistemas hipermedia que conseguían una conexión más escalable y flexible. El diseño de XLink ha sido posible gracias a la existencia de otros sistemas y estándares hipermedia anteriores. Como ya hemos afirmado, tanto HTML como HyTime y TEI han tenido una especial influencia. HTML define ya varios tipos de elementos que representan enlaces, HyTime define diferentes estructuras de enlaces y algunas características semánticas, incluyendo control de trayectos y presentación de objetos. Hypermedia/Time-based structuring language, se trata de una norma ISO/IEC 10744:1997, que es una extensión del lenguaje SGML a medios dinámicos como vídeo o audio. Y TEI (Text Endoding Initiative) ofrece una estructura para crear enlaces, agregar objetos y colecciones de enlaces. Pero la especificación hace también referencia a otros muchos sistemas de enlaces y, por tanto, a sistemas de hipertexto, que también han facilitado el diseño de XLink, y cita expresamente a Dexter, FRESS, e Intermedia, entre otros. Entre las definiciones expresamente formalizadas en la Especificación podemos destacar las siguientes: Un XLink es una relación explícita entre recursos o porciones de recursos. Esta relación se hace explícita mediante un elemento enlace XLink, que es un XLink conforme al elemento XML que declara la existencia de un enlace. Hay 6 elementos XLink, pero solamente dos de ellos se consideran elementos de enlace. Los otros ofrecen varias piezas de información que describen las características de un enlace. El término enlace se usa en esta especificación referido solamente a un enlace XLink, aunque otro tipo de construcciones no-XLink puedan servir como enlaces. Los elementos o tipos de enlaces XLink son los siguientes:
Así pues, los enlaces del lenguaje XLL soportan una compatibilidad íntegra con el formato actual de HTML en cuanto a enlaces, pero además aportan otras funcionalidades, como enlaces bidireccionales que permiten al usuario activar un enlace desde cualquiera de las partes seleccionadas; localización muy precisa de la información, debido a su organización jerárquica mediante XML; enlaces indirectos, a través de un archivo intermedio, que impide que si un recurso cambia su URL, todos los documentos cuyos enlaces apuntan a ese recurso deban actualizarse y, además, los enlaces XLL tienen distintos formatos según unos cuantos ejes de actuación básica, como relaciones, topología, presentación, información asociada y elementos La noción de recursos es universal en la World Wide Web. Un recurso es una unidad localizable de información o servicio. Como ejemplo de recursos tenemos: archivos, imágenes, documentos, programas y resultados de búsquedas. El significado dado para localizar una fuente es una referencia URI (Uniform Resource Identifier (Locator Attribute (href)). Es posible localizar una porción de un recurso. Por ejemplo, si el recurso completo es un documento XML, una porción útil de aquel recurso debe ser un elemento particular dentro del documento. Cuando asociamos un enlace a un conjunto de recursos, se dice que aquellos recursos toman parte en el enlace (participate). Aunque los enlaces XLink deben aparecer en documentos XML, es posible asociar toda clase de recursos no solamente los codificados en XML. Usar o seguir un enlace para algún propósito se denomina cruce (traversal). Aunque algunas clases de enlaces pueden asociarse arbitrariamente a varios recursos, un cruce siempre implica a un par de recursos (o fragmentos de ellos). El recurso desde el cual empieza un cruce es el recurso origen (starting resource) y el destino es el recurso final (ending resource). Hay que hacer notar que el término recurso se usa en el sentido de fragmento de recurso, no de recurso completo. La información acerca de cómo recorrer un par de recursos, incluyendo la dirección del recorrido y la posibilidad de aplicar información que funcione bien, se denomina un arco (arc). Si dos arcos en un enlace especifican el mismo par de recursos, pero ellos conmutan los lugares de inicio y destino de recursos, entonces el enlace es multidireccional, que no es lo mismo que la simple "vuelta atrás" después de cruzar un enlace. Un recurso local (local resource) es un elemento XML que participa en un enlace en virtud de tenerlo en su seno, o ser él mismo un elemento enlace. Un recurso o fragmento de recurso que participa en un enlace en virtud de ser direccionado con una referencia URI se considera como un recurso remoto (remote resource), aunque esté en el mismo documento XML como el enlace, o dentro del mismo elemento enlace. Dicho de otra manera, un recurso local es especificado "por el valor," y un recurso remoto es especificado "por la referencia." Un arco que tiene un recurso de entrada local y un recurso de
destino remoto salta hacia afuera (outbound), esto es, está fuera
del elemento enlazado. Ejemplos de enlaces con tales arcos son los elementos
Si un recurso destino de un arco es local, pero su recurso de origen es remoto, entonces el arco es "inbound", esto es, salta hacia adentro. Si ni el recurso origen ni el destino son locales, entonces el arco es un arco a tres partes (third-party arc). Algunos tipos de enlaces especifican solamente una clase de arco y entonces deberían ser denominados como enlaces que saltan hacia dentro (inbound), que saltan hacia afuera (outbound), o enlaces a tres partes (third-party link). Para crear un enlace que emana de un recurso al cual no se
tiene acceso escrito (o se elige no ejercitarlo) o de un recurso que no ofrece
ninguna manera de embeber el enlace,
En la imagen se muestra un enlace extendido que se asocia a 5
recursos remotos que proveen reglas para cruzarlos. Todos los arcos especifican
arcos a tres partes; esto es, el arco va exclusivamente a recursos remotos. Las
líneas sólidas no direccionales indican que el enlace está asociando los 5
recursos; las flechas punteadas indican las reglas de cruce que proveen
los enlaces. Los mismos recursos comparten la misma etiqueta con el valor
Este diagrama refleja arcos de cruce direccionales creados por los siguientes ajustes, donde tanto A como Cs permiten iniciar el cruce para todos los Bs. Porque algunas etiquetas aparecen en varios recursos, cada especificación de arco crea potencialmente varios arcos de cruce en uno: <go xlink:type="arc" xlink:from="A" xlink:to="B" /> <go xlink:type="arc" xlink:from="C" xlink:to="B" /> Los documentos que contienen colecciones de "inbound" y enlaces a tres partes se llaman bases de datos de enlaces o "linkbases". Las bases de datos de enlace a menudo se usan para gestionar de forma fácil un gran número de elementos enlaces. XLink ofrece una manera de instrumentar aplicaciones XLink para acceder a "linkbases" potencialmente relevantes. La instrucción toma la forma de una especificación de arco (si es explícito en un enlace extendido o si es implícito en un enlace simple) que tiene el siguiente valor para su atributo arcrole: http://www.w3.org/1999/xlink/properties/linkbase El marcado o etiquetado Link necesita ser reconocido realmente por las aplicaciones XLink y para ello se usa el mecanismo descrito en la Recomendación Namespaces in XML (http://www.w3.org/TR/REC-xml-names/) referida a los Espacios de Nombre en XML. El espacio de nombres XLink (namespace XLink) definido por esta especificación tiene el siguiente URI: http://www.w3.org/1999/xlink Según lo dictado por los Namespaces XML, el uso de elementos y
atributos XLink requiere la declaración de XLink namespace. Por ejemplo, la
siguiente declaración podría hacer el prefijo
<myElement Los espacios de nombre o XLink's namespace ofrecen atributos globales (global attributes) para usar
un elemento que es un espacio de nombres arbitrario. Los atributos globales son
El siguiente es un ejemplo de elemento de referencia cruzada <my:crossReference xmlns:my="http://example.com/" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="students.xml" xlink:role="http://www.example.com/linkprops/studentlist" xlink:title="Student List" xlink:show="new" xlink:actuate="onRequest"> Current List of Students </my:crossReference> XML Base http://www.w3.org/TR/xmlbase/ (traducción al castellano. SILVA, Pedro y MORENO, Yesenia. XML Base. http://pedrini.narod.ru/w3c/xmlbase/recxmlbase20010627es.htmlEsta Recomendación propone un mecanismo, similar al HTML Base para definir los URIs base para partes de documentos XML El lenguaje XML Linking (XLink) define al Lenguaje de Marcado Extensible (XML) 1.0 elaborado para describir enlaces entre recursos. Uno de los requerimientos de base sobre XLink es el soportar HTML enlazando conceptos de una forma genérica. El elemento HTML BASE es uno de los conceptos que ha sido tomado en cuenta por el Grupo de Trabajo XLink. BASE permite a los autores especificar claramente el URI base de un documento con el fin de permitir la resolución de URIs relativos en conexiones a imágenes externas, applets, programas de tratamiento de formularios, hojas de estilo, y otros. Este documento describe un mecanismo para proveer servicio de
URI base a XLink, más como una especificación modular, con el fin de que sea
igualmente posible de ser usada dentro de otras aplicaciones XML beneficiándose
así sobre el control adicional sobre URIs relativos sin tener que implementar
completamente XLink y que puede hacer uso del mismo. La sintaxis consiste en un
único atributo XML denominado El despliegue de XML Base está realizado dentro de las
referencias reglamentadas por las nuevas especificaciones, por ejemplo XLink y
el XML Infoset (http://www.w3.org/TR/xml-infoset/). Las aplicaciones y las especificaciones constituidas sobre estas
nuevas tecnologías deberían nativamente soportar XML Base. El comportamiento del
atributo El atributo Dentro de procesadores XML capaces de interpretar los
Espacios de Nombres (namespaces), el prefijo "xml" está dedicado al Espacio del
Nombre (namespace) He aquí un ejemplo de
<?xml version="1.0"?> <doc xml:base="http://example.org/today/" xmlns:xlink="http://www.w3.org/1999/xlink"> <head> <title>Virtual Library</title> </head> <body> <paragraph>See <link xlink:type="simple" xlink:href="new.xml">what's new</link>!</paragraph> <paragraph>Check out the hot picks of the day!</paragraph> <olist xml:base="/hotpicks/"> <item> <link xlink:type="simple" xlink:href="pick1.xml">Hot Pick #1</link> </item> <item> <link xlink:type="simple" xlink:href="pick2.xml">Hot Pick #2</link> </item> <item> <link xlink:type="simple" xlink:href="pick3.xml">Hot Pick #3</link> </item> </olist> </body> </doc> Los URIs en este ejemplo son transformados en URIs completos como se indica a continuación:
XPointer http://www.w3.org/TR/xptr/Esta especificación define el Lenguaje de Punteros XML (XPointer),
el lenguaje que se usa como la base para identificar un fragmento mediante una
referencia URI que localiza un recurso de tipo
media en Internet como
XPointer Framework:El XML Pointer Language (XPointer) Framework está
recogido como Recomendación por el W3C (http://www.w3.org/TR/xptr-framework/).
Se trata de un
sistema extensible para direccionar XML que está debajo de las
especificaciones de los esquemas XPointer. El sistema tiene como fin poder
usarse como una base para fragmentos identificativos de algún tipo de
recursos media en Internet como:
Mucho tipos de aplicaciones de procesos XML necesitan direccionar a la estructura interna de los recursos de XML usando referencias URI, por ejemplo, el XML Linking Language (XLink), XML Inclusions (XInclude), el Resource Description Framework (RDF), y SOAP. Esta especificación no constriñe los tipos de aplicaciones que utilizan referencias URI para recursos XML. Por ejemplo, XInclude difiere de las características de
enlace de XLL en que tiene enlaces específicos con el valor del atributo
La especificación XPointer define la sintaxis y semántica de los punteros y de los fragmentos de un puntero que provee un nombre de esquema y algún dato de puntero que es conforme con la definición de aquel esquema. El procesador XPointer evalúa una parte de un puntero para identificar cero o más sub-recursos en un recurso XML mediante el procesador XPointer. El procesador toma como entrada un recurso XML y una cadena para usarla como un puntero (por ejemplo, la identificación de un fragmento, con escape de vuelta atrás, tomado de una referencia URI que fue usada para acceder al recurso), trata de evaluar el puntero con respecto al recurso, y produce como salida una identificación de sub-recursos, o uno o más errores. En el siguiente ejemplo, si el fragmento del puntero "xpointer" no se conoce o falla para identificar un sub-recurso, se evalúa el 'element' fragmento del puntero. Si el fragmento del puntero "xpointer" identifica el sub-recurso, el fragmento del "elemento" puntero no se evalúa. #xpointer(id('boy-blue')/horn[1])element(boy-blue/3) XPointer element() Scheme:El Esquema XPointer
XPointer xmlns() Scheme:El Esquema XPointer
En resumen, XML Linking Languaje o Lenguaje de Enlaces Extensible (XLL) agrupa a todo un conjunto de tecnologías que abarcan los diferentes aspectos relacionadas con los enlaces y direccionamiento en el lenguaje XML. Bibliografía:
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
|