Accesibilidad

Artículo de Dreamweaver

 

Introducción a XSL


Contenido

¿Qué es XSL y dónde se debería utilizar?

XSL es para XML lo que CSS es para HTML. Es un acrónimo en inglés de EXtensible Stylesheet Language (Lenguaje de hojas de estilo ampliable). Es un lenguaje diseñado para presentar datos XML en un formato legible. XSL consta realmente de dos partes:

  • XSLT: un lenguaje para transformar documentos XML
  • XPath: un lenguaje para navegar en documentos XML

XSLT significa Transformaciones XSL y es la parte más importante de XSL.

XSLT transforma un documento XML en otro documento XML, en una salida XHTML o en texto sencillo. Esto se suele hacer transformando cada elemento XML en un elemento HTML. El uso de XSL es imprescindible, ya que las etiquetas XML han sido definidas por el usuario y, por tanto, los navegadores no saben cómo interpretarlas o representarlas. Su significado se ha diseñado para ser entendido por las personas, no por las máquinas.

XSLT también puede realizar las siguientes operaciones en un árbol XML:

  • añadir y eliminar elementos
  • añadir y eliminar atributos
  • reorganizar y ordenar elementos
  • ocultar o mostrar determinados elementos
  • encontrar o seleccionar elementos específicos

Si necesita revisar la sintaxis XML, le recomiendo que lea la sección Sintaxis XML de mi artículo anterior sobre XML.

Sintaxis XSL

Como recordará del artículo Introducción a XML, todos los documentos XML empiezan con una declaración XML. Lo mismo ocurre con las hojas de estilos XSL. La primera línea de cualquier documento XSL es una declaración XML:

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

¿Es lo mismo XSL que XML?

Sí y no. Sí porque ambos siguen las mismas reglas de sintaxis (con unas pocas diferencias que mencionaré más adelante). No, porque tienen distintas funciones: XML almacena datos y XSL les aplica formato.

Después de la declaración XML hay una declaración XSL, como se muestra a continuación:

<xsl:stylesheet>

o bien

<xsl:transform>

No obstante, en la mayoría de las aplicaciones reales, la declaración XSL tiene un aspecto un poco más complejo:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

El motivo es que también incluye el espacio de nombres y la versión de la especificación XSL, según las recomendaciones del W3 Consortium.

A diferencia de la declaración XML, la cual se escribe en una única línea y no tiene etiqueta de cierre, la declaración XSL debe tener una etiqueta de cierre, que sirve para marcar el final de la hoja de estilos XSL:

</xsl:stylesheet>

Observe que lo anterior no infringe las reglas de sintaxis XML: una hoja de estilos XSL es un documento XML perfectamente válido, ya que tiene un único elemento raíz que viene especificado por la etiqueta <xsl:stylesheet>.

¿Dónde debería usar XSL?

XSL ha sido diseñado para unas funciones determinadas. Por eso resulta la solución perfecta para algunos casos de desarrollo, mientras que puede ser inútil para otros.

  • XSL ha sido diseñado para procesar documentos XML y para cumplir con la sintaxis XML. Por tanto, sólo debería usarlo con aplicaciones XML o con aplicaciones sensibles a XML. Las aplicaciones ideales para usar XML y XSL son: portales Web, agregadores de noticias, sitios Web de comunidades o cualquier otra aplicación Web que necesite enviar información a diversos dispositivos y a un gran número de clientes.
  • XSLT es un lenguaje basado en la correspondencia de patrones. Busca nodos que coincidan con una determinada condición y les aplica las reglas correspondientes. Por tanto, XSLT carece de la versatilidad de la mayoría de los lenguajes de programación. Por ejemplo, XSL no puede cambiar los valores de las variables en tiempo de ejecución. No se debería usar para calcular valores de fuentes de datos dinámicos mediante fórmulas complicadas (como, por ejemplo, en una tienda en línea). Para este tipo de aplicaciones, los lenguajes de programación Web son una opción mejor.
  • XSL no ha sido diseñado para sustituir o complementar CSS. No se debería usar (y, de hecho, no se puede) para aplicar estilos a HTML. No obstante, puede utilizarse en sitios Web que necesitan ser rediseñados con frecuencia, que cambian su diseño a menudo y que necesitan manipular datos en un formato flexible.
  • XSL no es una herramienta de administración de contenido. No debería usarse (y, de hecho, no se puede) para cambiar el contenido de documentos XML o para editar información. Sin embargo, se puede utilizar XML y XSL en un sistema de administración de contenido que requiera manejar documentos de varias formas distintas.