Biblioteca Online : ¡La Suscripción ENI por 9,90 € el primer mes!, con el código PRIMER9. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. XML práctico
  3. Navegar en los documentos XML
Extrait - XML práctico Bases esenciales, conceptos y casos prácticos (2ª edición)
Extractos del libro
XML práctico Bases esenciales, conceptos y casos prácticos (2ª edición) Volver a la página de compra del libro

Navegar en los documentos XML

Preámbulo

En este capítulo aprenderá a explorar el interior de sus documentos XML aplicando las tecnologías XPath, XLL, XLink, XPointer, XBase o XInclude.

XPath, XLL, XLink, XPointer, XBase y XInclude forman una familia de lenguajes que permiten explorar los documentos XML de forma muy avanzada. Gracias a estas tecnologías es posible, por ejemplo, apuntar a un segmento preciso de un documento, administrar los vínculos multi-rutas o incluir otros documentos. Estos lenguajes resultan muy prácticos y se utilizan cada vez más. Por ello, en este capítulo los descubrirá y aprenderá a ponerlos en práctica.

Las tecnologías aquí tratadas son muy complejas y sus especificaciones no se han fijado todavía para la mayoría de ellas. Tenga en cuenta que la comprensión de este capítulo es esencial para aprovechar de manera completa este libro. Por lo tanto, si lo desea, puede ir directamente a los métodos para formar documentos XML y regresar a este capítulo más tarde. Por otra parte, las herramientas que utilizan las recomendaciones XLink, XPointer, etc. no están apenas presentes y se hace poca referencia a ellas en la Web. Para probar los ejemplos de este capítulo, utilice las siguientes dos direcciones prácticas que identifican una serie de herramientas disponibles en la web: http://www.w3.org/XML/2000/09/LinkingImplementations.html...

XPath: un lenguaje de designación

XPath es un lenguaje de designación de objetos en un documento. Desde el punto de vista del W3C, el objetivo de XPath es también el de convertirse en un estándar básico, reutilizable en las recomendaciones de más alto nivel. XPath permite diseñar una parte de un documento (únicamente los títulos para realizar un índice, algunos párrafos, etc.).

1. Principio

Para diseñar un objeto dentro de un documento, XPath propone, por una parte, un lenguaje de direccionamiento de objetos y, por otra parte, un conjunto de funciones que complementen las expresiones del lenguaje. El lenguaje de direccionamiento utiliza rutas para designar un conjunto de objetos. Las rutas utilizan los conceptos de ejes y de selección.

Elementos de localización

Estos son los diferentes elementos de localización que pueden utilizarse en el eje de recorrido del árbol XML:

  • self: nodo actual;

  • child: eje por defecto;

  • descendant;

  • parent;

  • ancestor;

  • preceding: antepasados excluidos;

  • following: descendientes excluidos;

  • preceding-sibling: hermanos anteriores;

  • following-sibling: hermanos siguientes;

  • attribute;

  • namespace.

Una ruta (absoluta o relativa) utiliza elementos (o etapas) de localización según:

  • un eje (seleccionado a través de los atributos (attribute), los hijos (child), los padres (parent), los antepasados (ancestor), los hermanos...

XLL: lenguaje de descripción de vínculos

XLL (eXtended Linking Language) es también un derivado del lenguaje XML. Sin embargo, es una herramienta muy poderosa para la gestión de vínculos en un documento XML. Esta tecnología se divide en dos partes complementarias:

  • XLink (vínculo XML);

  • XPointer (puntero XML).

En esta sección aprenderá a sacar partido de los XLinks para acceder a un documento mediante un URI (Uniform Resource Identifier) y de los XPointers para señalar con mayor precisión los objetivos de los vínculos extendidos.

1. Presentación y vocabulario

El XLL es un lenguaje de descripción de hipervínculos para XML. El lenguaje extendido de vínculos se divide en dos tecnologías complementarias:

  • XLink permite acceder a un documento mediante un URI o a una imagen (etiqueta <a href="URL"> del lenguaje HTML).

  • XPointer añade funciones a los vínculos extendidos permitiéndoles alcanzar con mayor precisión sus objetivos.

El XLL ofrece una gestión más eficaz de los vínculos a recursos externos. Sin embargo, la gestión de vínculos en HTML está limitada ya que el acceso está limitado a un documento a la vez. Tampoco es posible acceder a una parte de un documento HTML si este tiene anclas (<a name="ancla">...</a>). Por último, en un documento HTML, los vínculos y las anclas están determinados de antemano, lo que excluye cualquier extensión dinámica.

El XLL se basa en la norma ISO 10744 (tecnologías de la información: lenguaje de estructuración hipermedia/eventual), más conocido con el nombre de HyTIme.

El objetivo del XLL es permitir, entre otras cosas, la implementación de vínculos bidireccionales, de vínculos hacia objetivos en Internet no etiquetados de antemano, etc. En última instancia, esta tecnología debería contribuir a hacer desaparecer el famoso mensaje de error: "404 not found". El error 404 no será más que un mal recuerdo.

2. Xlink

El lenguaje XLink permite realizar vínculos simples unidireccionales (como los que se pueden hacer en HTML), pero también otros vínculos de naturaleza más compleja (vínculos extendidos) hacia cualquier tipo de recurso. Los vínculos...

Xbase

El XML Base (o XBase) define el mecanismo básico para las referencias desde un documento XML. En la siguiente dirección podrá encontrar las especificaciones de la Candidate Recommendation XBase: http://www.w3.org/TR/xmlbase/

1. Principio

Como complemento de la tecnología XLink, XBase permite especificar claramente el URI básico de un documento con el fin de resolver los URI relativos.

Los URI pueden ser vínculos hacia cualquier tipo de documento (hojas de estilo, imágenes, applets, etc.).

Con la ayuda de XLink, XBase permite declarar un URI que constituye la base de los URI de los documentos que desee alcanzar.

Para declarar un URI de base, debe utilizarse el atributo xml:base de la siguiente manera:


<doc xml:base= "http://ejemplo.org/un_uri_de_base/"
 

donde http://ejemplo.org/un_uri_de_base/ representa su URI de base.

La asociación entre XBase y XLink permite obtener el URI completo de un documento. La ventaja de este método es que evita tener que escribir los URI completos. Esto resulta muy práctico cuando los URI son largos.

2. Ejemplo

El siguiente ejemplo permite hacer referencia a documentos externos con XLink y XBase:


<?xml version="1.0"?>   
<news xml:base="http://pruebaXbase.org/artículos/"   
     xmlns:xlink="http://www.w3.org/1999/xlink">   
  <head>   ...

XInclude

XInclude define el método de inclusión para los documentos XML.

1. Principio

XInclude aporta la funcionalidad básica de ensamblaje de varios documentos XML en un único documento. Así, XInclude permite realizar una gestión del contenido más eficaz y eficiente.

Para incluir un documento XML dentro de otro documento basta con insertar el elemento <xi:include> en la posición en la que se desea incluir el recurso remoto.


<xi:include href="URI" parse="type" encoding="codificacion"/>
 

El elemento <xi:include> está vinculado al espacio de nombres estandarizado por el W3C siguiente:


http://www.w3.org/2001/XInclude
 

Las inclusiones no solo pueden realizarse sobre cualquier tipo de recurso XML, sino también sobre secciones de documentos gracias a los XPointers.

Es posible apuntar al documento completo mediante su URI (por ejemplo: http://ejemplo.org/artículos/artículo1.xml) o bien puede hacer referencia únicamente a una sección del mismo gracias a XPointer.

A continuación se muestran los atributos disponibles para el elemento <xi:include> :

Atributo

Valor

href

URI

parse    

xml o text   

encoding

CDATA

a. El atributo href

El atributo href especifica la dirección URI del recurso remoto.

La dirección URI del atributo href puede ser absoluta o relativa (consulte la sección...