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

ENVIAR A UN AMIGO
COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN GOOGLE +
SIGUIENTE ARTÍCULO

HAY 4 COMENTARIOS
  • Yumarys dijo:

    Gracias por preocuparse de mantener en su sitio web temas de nuevos, novedos e interesantes.

  • Ricardo dijo:

    Gracias por esta explicacion acerca de la diferencia entre XSL y XSLT porque ya me estaba haciendo un lio tremendo, y no sabia diferenciarlas bien, nio encontraba ningun sitio donde lo expliasen bien.mussas gracias

  • Fernando Cuadrado dijo:

    Parece dificil elegir definir si utilizar o no esta tecnologia para su implementacion, demasiados cambios y adaptaciones hacen a la falta de estabilidad, desarrollar una intranet con informes pdf (por ej.) utilizando xsl me parece un poco arriesgado por ahora. Quien me asegura que el dia de mañana no voy a tener q cambiar absolutamente todo?.

  • nacho dijo:

    Si, hasta el momento parece bastante arreisgado. Habrá que hacerlo "a mano" a partir de un XML, al que si le veo mucha estabilidad y extensibildad. saluods

Conéctate o Regístrate para dejar tu comentario.