You are on page 1of 6

XSL: las hojas de estilos XML

A. ¿Qué es el XSL?
CSS es un método de presentación de datos del mundo del HTML. XSL es otro
método de presentación de datos de documentos XML. Está mejor adaptado y
permite definir hojas de estilo incluso más elaboradas para los documentos XML.
XSL se inspiró a la vez en DSSSL y CSS, los lenguajes de estilos de SGML y HTML
respectivamente. Las hojas de estilo XSL se escriben en XML. Además, se ha reuti-
lizado la semántica de DSSSL. XSL aporta numerosas ventajas en cuanto a la
presentación de datos XML.
Esta sección tiene como objetivo presentar brevemente el concepto XSL y más
tarde se centra en la sintaxis de dos lenguajes XSL muy importantes: XSLT (XSL
Transformations) y XSL-FO (XSL-FOrmating Objects).
XSL incluye dos tecnologías para dar formato a los documentos XML:
- XSLT para la transformación de documentos;
- XSL-FO para dar formato a los datos.
A modo preliminar, a continuación le presentamos las características principales de
estas dos tecnologías.

XSLT

Definición
XSLT significa "eXtensible Stylesheet Transformation". Es, como su nombre
indica, una tecnología de transformaciones derivada del XSL.
Utilización
Este lenguaje permite convertir la estructura de los elementos XML. Se utiliza
para transformar los documentos XML con la ayuda de hojas de estilo que
ã Editions ENI - All rights reserved

contienen las "template rules".

Las template rules son las reglas de plantilla que describen los estilos.

Bases esenciales, conceptos y casos prácticos 145


Capítulo 7

Modo de funcionamiento
La transformación consiste en la creación de un "árbol fuente" a partir de un
documento XML. Una vez se obtiene este árbol, se aplicarán las
transformaciones aplicadas por las template rules de la hoja XSL. La operación
nos permite obtener un árbol resultado. Por ejemplo, este árbol puede represen-
tar la estructura de un documento HTML.

Llamamos "objeto de flujo" a los componentes de este árbol. Las template rules
definen cómo se procesan los "patterns", es decir, los elementos del árbol
fuente.

Al finalizar todos los procesos, el árbol resultado puede ser completamente dife-
rente del árbol fuente. Éste último puede haber sido remodelado, filtrado o
completado.

XSL-FO

Definición
XSL-FO significa "eXtensible Stylesheet Formating Object". Se trata de una
tecnología de presentación de datos.
Utilización
El lenguaje de formateado de datos XSL-FO permite definir la presentación en
una página a partir de los datos obtenidos durante el proceso de transformación
XSLT.

Este formateo puede afectar también tanto a la visualización textual como a la


gráfica.

Modo de funcionamiento
XSL-FO puede interpretar el árbol resultado obtenido por XSLT. El principio de
XSL-FO es el de permitir la aplicación de procesos gráficos para cada uno de
los objetos de flujo que componen el árbol resultado. Estos procesos gráficos
consisten en la aplicación de "objetos de formato" con el fin de obtener una
representación visual.

146 XML práctico


XSL: las hojas de estilos XML

B. Vincular un documento XML


a una hoja de estilo XSL
Utilice la etiqueta xml-stylesheet para asociar un documento XML a una hoja
de estilo XSL.

Los documentos XSL tienen la extensión .xsl.

No se olvide de especificar el valor del atributo "type" y de introducirle un valor


"text/xsl".
A continuación se muestra un ejemplo de la declaración:
<?xml-stylesheet type="text/xsl" href="directorio.xsl"?>

La etiqueta "xml-stylesheet" debe figurar dentro del prólogo, es decir, después de la


declaración XML y antes del elemento raíz del documento XML:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="directorio.xsl"?>
<directorio>
...

C. Estructura básica de un documento XSL


Recuerde que un documento XSL es ante todo un documento XML. Por lo tanto,
comenzará obligatoriamente con un prólogo como el siguiente:
<?xml version="1.0" encoding="ISO-8859-1"?>
ã Editions ENI - All rights reserved

Una hoja de estilo XSL se compone entre las etiquetas <xsl:stylesheet


...> y </xsl:stylesheet>.
Ésta contendrá el conjunto de etiquetas xsl:template que permiten definir las
transformaciones que se van a aplicar sobre cada elemento del documento XML
original.

Bases esenciales, conceptos y casos prácticos 147


Capítulo 7

El siguiente es un ejemplo de documento XSL muy simple:


<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/TR/WD-xsl"
xmlns="http://www.w3.org/TR/REC-html40"
result-ns="">
</xsl:stylesheet>

La diferencia entre los términos XSL y XSLT es en ocasiones ambigua. En


teoría, XSL (eXtensible Stylesheet Language) es una familia de especificaciones
que agrupa a:
- XPath (calificación de nodos dentro de un documento: consultar el capítulo
Navegar en los documentos XML) ;
- XSLT (XSL Transformations, lenguaje de transformaciones) ;
- XSL-FO (XSL-FOrmating Objects, lenguaje de presentación).
Esta división en tres especificaciones se realizó mucho después del lanzamiento
de XSL. A día de hoy, se evocan las ventajas de XSL para diseñar las antiguas
versiones de la especificación antes de dicha “división”. XSLT designa la reco-
mendación actual del lenguaje de transformación (XSLT 1.0). Para añadir más
confusión, hay quien habla de XSL para diseñar la parte de la “presentación”.
Ahora bien, únicamente XSL-FO permite este tratamiento.

D. XSLT

1. ¿Qué es una transformación XSLT?


XSLT es un lenguaje que permite reestructurar radicalemnte el documento XML
original según el formato deseado. Las transformaciones XSLT se emplean cada
vez más para generar vistas múltiples de contenidos con el fin de adaptarse, por
ejemplo, a diferentes tipos de terminales (teléfono móvil, Web, TV, ordenador de
oficina, etc.).
Los elementos y los atributos XSLT constituyen un lenguaje de tratamiento de
datos XML. Podrá utilizar el vocabulario XSLT a la vez para recuperar los datos
fuente y crear nuevos elementos o atributos.

148 XML práctico


XSL: las hojas de estilos XML

Una transformación XSLT necesita dos documentos:


- un documento XML fuente:
- una hoja de estilo XSLT.
Gracias a estos dos parámetros, XSLT puede producir un documento resultado
simple. Como ya se ha explicado anteriormente, el documento XML básico se
representa con la forma de un árbol fuente.
La transformación se realiza por medio de la aplicación de las reglas de plantilla
(template rules) que se encuentran en la hoja XSL. Esto genera un árbol resultado,
representado generalmente con la forma de un documento XML o HTML.
A continuación se muestra un ejemplo simple de transformación de un árbol fuente
en resultado:
<nombre grupo="Cure">
<musico>
<apellido>Smith</apellido>
<nombre>Robert</nombre>
<funcion>Voz y Guitarra</funcion>
</musico>
<musico>
<apellido>Gallup</apellido>
<nombre>Simon</nombre>
<funcion>Bajo</funcion>
</musico>
<musico>
<apellido>Cooper</apellido>
<nombre>Jason</nombre>
<funcion>Batería</funcion>
</musico>
</grupo>
ã Editions ENI - All rights reserved

Este es el árbol resultado (formato HTML) correspondiente:


<H1>Cure</H1>
<table>
<tr>
<th>apellido</th>
<th>nombre</th>
<th>función</th>
</tr>
<tr>

Bases esenciales, conceptos y casos prácticos 149


Capítulo 7

<td>Smith</td>
<td>Robert</td>
<td>Voz y Guitarra</td>
</tr>
<tr>
<td>Gallup</td>
<td>Simon</td>
<td>Bajo</td>
</tr>
<tr>
<td>Cooper</td>
<td>Jason</td>
<td>Batería</td>
</tr>
</table>

2. Las reglas de plantilla (template rules)


Las reglas de plantilla son etiquetas XSL que permiten definir las operaciones que
se aplicarán a ciertos elementos del documento XML. Generalmente permiten
transformar una etiqueta XML en, al menos, una etiqueta HTML.
Tomemos el sencillo ejemplo siguiente:
<musico>
<apellido>Smith</apellido>
<nombre>Robert</nombre>
<función>Voz y Guitarra</función>
</musico>

<musico>
<apellido>Gallup</apellido>
<nombre>Simon</nombre>
<funcion>Bajo</funcion>
</musico>

<musico>
<apellido>Cooper</apellido>
<nombre>Jason</nombre>
<funcion>Batería</funcion>
</musico>

150 XML práctico

You might also like