XSLT y XPath

Presentación avanzada para fuentes de datos XML

Los estándares XSLT y XPath son un marco excelente para crear aplicaciones Web basadas en XML. En la actualidad, las fuentes de datos XML son algo muy común. Gracias a ellas se pueden establecer mecanismos simples de intercambio de datos entre distintas plataformas. En este escenario, las hojas de estilo XSLT constituyen el mejor vehículo para presentar la información, dando lugar así a páginas web dinámicas y ligeras. Desde el punto de vista del programador también se produce un avance considerable ya que se logra un acercamiento considerable a la máxima perseguida durante mucho tiempo: separar los contenidos de la presentación.

Una fuente de datos XML es un documento que no puede presentarse por sí mismo, necesita de algo más que se responsabilice de transformar los datos, puros y duros, en una página web. Éste es el papel de los estándares XSLT (Extensible Stylesheet Language Transformations) y XPath (XML Path Language). Permiten crear presentaciones complejas partiendo de la información contenida en un origen de datos XML. El funcionamiento es el siguiente: una hoja XSLT se aplica a un documento XML y el resultado suele ser por la general un fragmento de código HTML. El mecanismo no es complejo, pero puede desorientar al programador inicialmente: el desarrollo de una hoja XSLT implica un cambio metodológico con respecto al desarrollo, por ejemplo, de un programa en C, en Java o en cualquier otro lenguaje. Desde el primer momento una hoja XSLT está concebida para tener siempre presente un documento XML, y esto cambia sustancialmente la lógica.
Por su lado, el estándar XPath determina la forma de acceso, desde el código de la hoja XSLT, a los datos del documento XML. Desde un punto de vista estructural, de formato y de procedimiento, los documentos XML no guardan demasiada relación con las bases de datos al uso, por lo que ha sido necesario crear un nuevo sistema de acceso a estas fuente de datos. Este es el papel del estándard XPath.
A lo largo del presente artículo se va a mostrar un ejemplo relativamente complejo de aplicación de estas tecnologías. Este consiste en una página web que muestra la discografía de un artista. Esta información se encuentra contenida en una fuente de datos XML y se muestra al usuario empleando una hoja XSLT. La transformación sucede en la misma página HTML.

La fuente de datos XML
El ejemplo que ilustra este artículo, y que va a servir de vehículo para estudiar la utilización de XSLT y XPath en la creación de aplicaciones Web basadas en XML, parte de una fuente de datos XML, como es evidente. Para la ocasión se ha propuesto un ejemplo sencillo. El origen de datos consiste en la discografía completa de un artista. El esqueleto básico del archivo discography.xml presenta el siguiente aspecto:

<?xml version="1.0" encoding="ISO-8859-1"?>
<discography>
...
</discography>

La primera línea del archivo de texto contiene una instrucción que indica la naturaleza de la información que aparece seguidamente, es decir, señala que se trata de un archivo XML, así como el sistema de codificación empleado para los caracteres.
El elemento raíz de la fuente de datos viene dado por la etiqueta <discography>. Toda fuente de datos XML bien formada debe contener un elemento principal o raíz del que van a depender el resto de los elementos que conforman el documento.
A continuación se almacena el nombre del artista así como un identificador único, que podría corresponderse, por ejemplo, con el campo homónimo de la tabla de la base de datos a partir de la que se ha extraído esta información en forma de fichero XML.

<artist id="21342134" name="Madonnna"/>

Obsérvese que en este caso el elemento carece de contenido, o lo que es lo mismo, la etiqueta <artist> no cuenta con la correspondiente etiqueta de cierre por lo que es necesario emplear el carácter / al final para que el intérprete de XML sea capaz de leer sin errores el fichero.

Todos los discos del artista se guardan seguidamente en una estrcutura cuyo nodo principal está representado por la etiqueta <records>.

<records>
...
</records>

La información relativa a cada disco consta de un identificador único (el atributo id del elemento record), el nombre del disco (el elemento title), el año producción (el elemento year) y por último, la posición más alta que ha alcanzado en las listas de éxitos (el elemento highestpos).

<record id="1">
<title><![CDATA[Madonna / The First Album]]></title>
<year>1984</year>
<highestpos>6</highestpos>
</record>

La sintáxis de los documentos XML exige el cumplimiento de una serie de pequeñas normas. Una de ellas consiste en que no se pueden utilizar algunos caracteres especiales, ni en los elementos ni en los atributos. Algunos de estos caracteres son: el ampersand (&), la comillas dobles (“), los símbolos mayor que y menor que (>, <), etc. Existen diversas formas de evitar los problemas que pueden producirse si algún dato contiene uno de estos caracteres, y para ello existen las secciones CDATA. Los intérpretes de XML ignoran todos los caracteres que aparecen entre la cadena <![CDATA[ y la cadena ]]>. Siempre que un elemento sea candidato probable a contener caracteres especiales es aconsejable utilizar una sección CDATA. De esta manera se sortean los siempre engorrosos errores que pueden ocurrir si, por ejemplo, aparece de repente un carácter &a

Viñeta publicada el 20 de febrero de 1870 en La Flaca n.º 35 Tendencias

ny2 ACTUALIDAD

ny2 Sociedad de la información

Día de la Movilidad y el BYOD Coffee Break