XSLT, XSL, XPath: ¿qué es cada cosa?

La verdad es que es una buena pregunta, ya que actualmente y debido sobretodo a la evolución que ha seguido la especificación XSLT se ha llegado a una situación en la que no está muy claro de qué estamos hablando cuando utilizamos el termino XSLT y que relación tienen con las especificaciones XSL (Extensible Style Language) y XPath (XML Path Language ).

La XSL es una especificación desarrollada dentro del W3c para aplicar formato a los documentos XML de forma estandarizada. El primer boceto de esta especificación aparece el 18 de agosto de 1998 con el objetivo de implementar los mismos conceptos de las DSSSL, pero simplificados y pre-ajustados para ser utilizados en el web y definidos mediante una sintaxis XML.

Desde un principio, la XSL es un lenguaje para escribir hojas de estilo que consta de dos partes :

  • Un lenguaje de transformación, mediante el cual se puede transformar un documento XML en otro XML.
  • Un lenguaje de formateo, que no es más que un vocabulario XML para especificar objetos de formateo (FO).

Sin embargo, durante su desarrollo, se decidió "sacar" fuera de la especificación XSL el lenguaje de transformación y desarrollarlo como una especificación "independiente" a la que se denominó XSLT, centrándose, por tanto, desde entonces la especificación XSL en la definición del lenguaje de formateo. Ponemos las palabras "sacar" e "independiente" entre comillas porque no son del todo ciertas, ya que una especificación es inseparable de la otra debido a que la XSL hace uso de las XSLT, aunque la XSLT esta diseñada para ser utilizada independientemente de la XSL.

Ademas, durante el desarrollo de la especificación XSLT también se decidió "sacar" fuera de ella la parte del lenguaje de transformación que hacía referencia a la forma de acceder y moverse por los nodos de un documento XML, debido esencialmente a que esta sintaxis era muy parecida a la que se estaba desarrollando en la especificación XPointer (enlaces al interior de un documento XML). A esta nueva especificación se le denominó XPath, y ha sido desarrollada no para utilizarse de forma independiente, sino desde las XSLT y desde los XPointer.

Gráficamente podríamos resumir la evolución de la especificación XSL de la siguiente manera:

Evolución de la especificación XSL

Pero, debemos precisar que el gráfico anterior es bastante simple. Desde la aparición del XML en 1998 se han ido desarrollando, o están en desarrollo nuevas especificaciones que en teoría enriquecen y añaden nuevas características a la especificación original: XSLT, Xpath, XInclude, XForm, Namespaces, etc.

Nos encontramos en la primera fase del desarrollo de muchas de estas especificaciones y por tanto se trata de un momento crítico, ya que podemos llegar a un punto en el que la familia de estandares XML puede convertirse en un conjunto de especificaciones recargadas e interconectadas a la fuerza.

Dos factores fundamentales marcaran el futuro del desarrollo de estos estándares y serán la clave de su exito:

  • Su fragmentación.
  • Su evolución siguiendo un model común.

Parece ser que la gente del W3c es consciente de este problema y están trabajando por este camino. Sé estan evitando especificaciones recargadas y complicadas propiciando la fragmentación y la creación de estándares que sean reutilizables desde el resto de especificaciones.

Por tanto un gráfico más preciso de la evolución de la especificación XSL y XLL (enlaces entre documentos XML) y sus relaciones con otras especificaciones sería el siguiente:

Evolución de la XSL y XLL

Resumiendo

Por tanto, y resumiendo:

  • XSL es la especificación que desarrolla el lenguaje de formateo. Hace uso de la especificación XSLT.
  • XSLT es la especificación que desarrolla el lenguaje de transformación. Hace uso de la especificación XPath. Ha sido diseñada para ser utilizada de forma independiente aunque es utilizada desde la especificación XSL.
  • XPath es la especificación que desarrolla el lenguaje para acceder a los elementos de un documento XML. Ha sido desarrollada para ser utilizada desde la especificación XSLT y XPointer.

Actualmente la especificación XSL se encuentra en el estado de borrador de trabajo frente a las especificaciones XSLT y XPath, que son una recomendación, versión 1.0, desde el 16 de Noviembre de 1999.

Direcciones

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
SIGUIENTE ARTÍCULO