Xslt : transformación xml

Solo disponible en BuenasTareas
  • Páginas : 13 (3039 palabras )
  • Descarga(s) : 0
  • Publicado : 9 de noviembre de 2011
Leer documento completo
Vista previa del texto
1 Introducción
Al igual que XML, XSLT es un lenguaje de programación. Forma parte de la trilogía transformadora
de XML, compuesta por las CSS (Cascading Style Sheets, hojas de estilo en cascada), que permite dar
una apariencia en el navegador determinada a cada una de las etiquetas XML; XSLT (XML Stylesheets
Language for Transformation , o lenguaje de transformación basado en hojas deestilo); y XSL:FO,
(Formatting Objects, objetos de formateo), o transformaciones para fotocomposición, o, en general, para
cualquier cosa que no sea XML, como por ejemplo HTML "del viejo" o PDF (el formato de Adobe).
XSLT es pues, un lenguaje que se usa para convertir documentos XML en otros
documentos XML; puede convertir un documento XML que obedezca a un DTD a otro
que obedezca otro diferente, undocumento XML bien formado a otro que siga un DTD,
o, lo más habitual, convertirlo a "formatos finales", tales como WML (usado en los
móviles WAP) o XHTML.
Los programas XSLT están escritos en XML, y generalmente, se necesita un procesador de hojas de
estilo, o stylesheet processor para procesarlas, aplicándolas a un fichero XML.
El estilo de programación con las hojas XSLT es totalmentediferente a los otros lenguajes a los que
estamos acostumbrados (tales como C++ o Perl), pareciéndose más a "lenguajes" tales como el AWK, o
a otros lenguajes funcionales, tales como ML o Scheme. En la práctica, eso significa dos cosas:
No hay efectos secundarios. Una instrucción debe de hacer lo mismo cualquier que sea el camino de
ejecución que llegue hasta ella. O sea, no va a haber variablesglobales (¡Cielos!), ni bucles en los
que se incremente el valor de una variable, o tenga un test de fin de bucle, ni nada por el estilo. En
realidad, esto no es tan grave, y se puede simular usando recursión, como se verá.
La programación está basada en reglas: cuando ocurre algo en la entrada, se hace algo en la salida.
En eso, se parece al AWK, o a cierto estilo de programación en PERL,pero no en el resto de las
cosas. Al fin y al cabo, no hay efectos secundarios.
En resumen, programar con las hojas XSLT (en inglés se les llama
stylesheets o logicsheets) puede ser un poco frustante, pero cuando uno
aprende a usarlas, no puede vivir sin ellas. En realidad, son la única
alternativa cuando uno quiere adaptar un contenido descrito con XML a
diferentes clientes (por ejemplo,móviles de diferente tamaño, diferentes
navegadores), y la mejor alternativa cuando uno quiere procesar
documentos XML (aunque haya otras: filtros SAX, expresiones
regulares...). Otra alternativa, sobre todo si se está trabajando ya con un
documento XML en forma de DOM (Document object model) es trabajar
directamente sobre él. En este claso, de todas formas, se pueden usar
transformaciones XSL,sólo que se aplicarán en memoria, en vez de leerlas
desde un fichero.
Lo que consiguen las hojas de estilo es separar la información
(almacenada en un documento XML) de su presentación, usando en cada caso las transformaciones que
sean necesarias para que el contenido aparezca de la forma más adecuada en el cliente. Es más, se
pueden usar diferentes hojas de estilo, o incluso la misma, parapresentar la información de diferentes
maneras dependiendo de los deseos o de las condiciones del usuario.
Aparte del hecho habitual de procesar documentos XML, XSLT es un lenguaje de programación, y
por tanto se podría hacer cualquier cosa con ellas; incluso calcular la célebre criba de Eratóstenes o
ejecutar un algoritmo genético. Pero a nosotros nos va a interesar más como simple herramienta detransformación de XML.
Actualmente hay varias versiones del estándar XSLT: la versión 1.0, que es la que implementan la
mayoría de los procesadores, y se denomina "recomendación", es decir, para el consorcio W3, lo
equivalente a un estándar, y la versión 2.0 , que, a fecha de 4 de noviembre del 2004, es un "working
Tutorial de XSL http://geneura.ugr.es/~jmerelo/XSLT/
1 of 17 29/06/2010...
tracking img