XSLT ( Extensible Stylesheet Language Transformations ) es un lenguaje diseñado originalmente para transformar documentos XML en otros documentos XML, [ 1 ] u otros formatos como HTML para páginas web , texto plano u objetos de formato XSL . Estos formatos se pueden convertir posteriormente a formatos como PDF , PostScript y PNG . [ 2 ] La compatibilidad con JSON y la transformación de texto plano se añadieron en actualizaciones posteriores de la especificación XSLT 1.0.
Las implementaciones de XSLT 3.0 son compatibles con Java, .NET, C/C++, Python, PHP y NodeJS. También se puede alojar una biblioteca JavaScript XSLT 3.0 dentro del navegador web. Los navegadores web modernos también incluyen soporte nativo para XSLT 1.0. [ 3 ] XSLT se ha vuelto obsoleto en los navegadores debido a tecnologías más avanzadas. Google Chrome eliminará su implementación de XSLT para mejorar la seguridad del navegador. [ 4 ] [ 5 ]
La transformación de documentos XSLT especifica cómo transformar un documento XML en un nuevo documento (generalmente XML, pero se admiten otros formatos, como texto plano). [ 6 ] Normalmente, los documentos de entrada son archivos XML, pero se puede utilizar cualquier cosa a partir de la cual el procesador pueda construir un modelo de datos XQuery y XPath , como tablas de bases de datos relacionales o sistemas de información geográfica . [ 1 ]
Aunque XSLT fue diseñado originalmente como un lenguaje de propósito especial para la transformación de XML, el lenguaje es Turing-completo , lo que lo hace teóricamente capaz de realizar cálculos arbitrarios. [ 7 ]
Historia
XSLT está influenciado por lenguajes funcionales [ 8 ] y por lenguajes de coincidencia de patrones basados en texto como SNOBOL y AWK . Su predecesor más directo es DSSSL , que hizo por SGML lo que XSLT hace por XML [ 9 ] .
- XSLT 1.0: XSLT formó parte del esfuerzo de desarrollo del Lenguaje de Hojas de Estilo Extensible (XSL) del Consorcio World Wide Web (W3C) de 1998-1999, un proyecto que también produjo XSL-FO y XPath . Algunos miembros del comité de estándares que desarrolló XSLT, incluido James Clark , el editor, habían trabajado previamente en DSSSL. XSLT 1.0 se publicó como una recomendación del W3C en noviembre de 1999. [ 10 ] A pesar de su antigüedad, XSLT 1.0 [ 11 ] todavía se usa ampliamente ( a partir de 2018), ya que las versiones posteriores no son compatibles de forma nativa con los navegadores web ni con entornos como LAMP .
- XSLT 2.0: tras un intento fallido de crear la versión 1.1 en 2001, [ 12 ] el grupo de trabajo de XSL unió fuerzas con el grupo de trabajo de XQuery para crear XPath 2.0 , [ 13 ] con un modelo de datos y un sistema de tipos más completos basados en XML Schema . Sobre esta base se desarrolla XSLT 2.0, [ 14 ] bajo la dirección editorial de Michael Kay , que alcanzó el estatus de recomendación en enero de 2007. [ 15 ] Las innovaciones más importantes de XSLT 2.0 incluyen:
- Manipulación de cadenas de texto mediante expresiones regulares
- Funciones y operadores para manipular fechas, horas y duraciones.
- Documentos de salida múltiples
- Agrupación (creación de una estructura jerárquica a partir de secuencias de entrada planas)
- Un sistema de tipos más completo y una comprobación de tipos más robusta.
- XSLT 3.0: se convirtió en una recomendación del W3C el 8 de junio de 2017. Las principales novedades son: [ 16 ]
- Transformaciones en flujo : en versiones anteriores, el documento de entrada completo debía cargarse en la memoria antes de poder procesarse, [ 17 ] y la salida no podía escribirse hasta que el procesamiento hubiera finalizado. XSLT 3.0 permite el flujo XML , lo cual es útil para procesar documentos demasiado grandes para caber en la memoria o cuando las transformaciones se encadenan en canalizaciones XML .
- Paquetes, para mejorar la modularidad de hojas de estilo extensas.
- Mejora en el manejo de errores dinámicos, por ejemplo, mediante la instrucción xsl:try.
- Compatibilidad con mapas y matrices, lo que permite que XSLT gestione tanto JSON como XML.
- Ahora las funciones pueden ser argumentos de otras funciones (de orden superior).
Modelo de diseño y procesamiento

El procesador XSLT toma uno o más documentos fuente XML, más una o más hojas de estilo XSLT, y los procesa para producir uno o varios documentos de salida. [ 18 ] [ 19 ] A diferencia de los lenguajes de programación imperativos ampliamente implementados como C , XSLT es declarativo . [ 20 ] El paradigma de procesamiento básico es la coincidencia de patrones. [ 21 ] En lugar de enumerar una secuencia imperativa de acciones a realizar en un entorno con estado, las reglas de plantilla solo definen cómo manejar un nodo que coincida con un patrón particular similar a XPath, si el procesador lo encuentra, y el contenido de las plantillas comprende efectivamente expresiones funcionales que representan directamente su forma evaluada: el árbol de resultados, que es la base de la salida del procesador.
Un procesador típico funciona de la siguiente manera: primero, suponiendo que ya se ha leído y preparado una hoja de estilo, el procesador construye un árbol de origen a partir del documento XML de entrada. A continuación, procesa el nodo raíz del árbol de origen, encuentra la plantilla que mejor coincide con ese nodo en la hoja de estilo y evalúa su contenido. Las instrucciones de cada plantilla generalmente indican al procesador que cree nodos en el árbol resultante o que procese más nodos del árbol de origen de la misma manera que el nodo raíz. Finalmente, el árbol resultante se serializa como texto XML o HTML.
XPath
XSLT utiliza XPath para identificar subconjuntos del árbol del documento fuente y realizar cálculos. XPath también proporciona una serie de funciones que XSLT amplía aún más.
XSLT 1.0 utiliza XPath 1.0, mientras que XSLT 2.0 utiliza XPath 2.0. XSLT 3.0 es compatible con XPath 3.0 o 3.1. En el caso de las versiones 1.0 y 2.0, las especificaciones de XSLT y XPath se publicaron en la misma fecha. Sin embargo, con la versión 3.0, dejaron de estar sincronizadas; XPath 3.0 se convirtió en una recomendación en abril de 2014, seguido de XPath 3.1 en febrero de 2017; XSLT 3.0 se publicó en junio de 2017.
Comparación de XQuery
Las funcionalidades de XSLT se solapan con las de XQuery , que inicialmente se concibió como un lenguaje de consulta para grandes colecciones de documentos XML.
Los estándares XSLT 2.0 y XQuery 1.0 fueron desarrollados por grupos de trabajo independientes dentro del W3C , que colaboraron para garantizar un enfoque común cuando fuese apropiado. Comparten el mismo modelo de datos, sistema de tipos y biblioteca de funciones, e incluyen XPath 2.0 como sublenguaje.
Sin embargo, ambos lenguajes tienen raíces en tradiciones diferentes y satisfacen las necesidades de comunidades distintas. XSLT se concibió principalmente como un lenguaje de hojas de estilo cuyo objetivo principal era mostrar XML al lector humano en pantalla, en la web (como lenguaje de plantillas web ) o en papel. XQuery se concibió principalmente como un lenguaje de consulta de bases de datos, siguiendo la tradición de SQL .
Debido a que ambos lenguajes se originan en comunidades diferentes, XSLT es más fuerte en su manejo de documentos narrativos con una estructura más flexible, mientras que XQuery es más fuerte en su manejo de datos, por ejemplo, al realizar uniones relacionales. [ 22 ]
Tipos de medios
El elemento puede tomar opcionalmente el atributo , que permite establecer el tipo de medio (o tipo MIME) para la salida resultante, por ejemplo: . La recomendación XSLT 1.0 recomienda los tipos de atributos más generales y dado que durante mucho tiempo no hubo un tipo de medio registrado para XSLT. Durante este tiempo se convirtió en el estándar de facto. En XSLT 1.0 no se especificó cómo debían usarse los valores.<output>media-type<xsl:output output="xml" media-type="application/xml"/>text/xmlapplication/xmltext/xslmedia-type
Con el lanzamiento de XSLT 2.0, el W3C recomendó en 2007 el registro del tipo de medio MIME application/xslt+xml[ 23 ] y posteriormente fue registrado ante la Autoridad de Números Asignados de Internet . [ 24 ]
Los borradores de trabajo anteriores a la versión 1.0 de XSLT se utilizaban text/xslen sus ejemplos de incrustación, y este tipo fue implementado y promovido por Microsoft en Internet Explorer [ 25 ] y MSXML alrededor de 2012. También es ampliamente reconocido en las xml-stylesheetinstrucciones de procesamiento por otros navegadores. En la práctica, por lo tanto, los usuarios que deseaban controlar la transformación en el navegador mediante estas instrucciones de procesamiento se veían obligados a utilizar este tipo de medio no registrado. [ 26 ]
Ejemplos
Estos ejemplos utilizan el siguiente documento XML de entrada:
<?xml version="1.0" ?> <persons> <person username= "JS1" > <name> John </name> <family-name> Smith </family-name> </person> <person username= "MI1" > <name> Morka </name> <family-name> Ismincius </family-name> </person> </persons>Ejemplo 1 (transformación de XML a XML)
Esta hoja de estilo XSLT proporciona plantillas para transformar el documento XML:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl= "http://www.w3.org/1999/XSL/Transform" version= "1.0" > <xsl:output method= "xml" indent= "yes" /><xsl:template match= "/persons" > <root> <xsl:apply-templates select= "person" /> </root> </xsl:template><xsl:template match= "person" > <name username= "{@username}" > <xsl:value-of select= "name" /> </name> </xsl:template></xsl:stylesheet>Su evaluación da como resultado un nuevo documento XML, con una estructura diferente:
<?xml version="1.0" encoding="UTF-8"?> <root> <name username= "JS1" > John </name> <name username= "MI1" > Morka </name> </root>Ejemplo 2 (transformación de XML a XHTML)
Procesando el siguiente archivo XSLT de ejemplo
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version= "1.0" xmlns:xsl= "http://www.w3.org/1999/XSL/Transform" xmlns= "http://www.w3.org/1999/xhtml" ><xsl:output method= "xml" indent= "yes" encoding= "UTF-8" /><xsl:template match= "/persons" > <html> <head> <title> Ejemplo de prueba XML </title> </head> <body> <h1> Personas </h1> <ul> <xsl:apply-templates select= "person" > <xsl:sort select= "family-name" /> </xsl:apply-templates> </ul> </body> </html> </xsl:template><xsl:template match= "person" > <li> <xsl:value-of select= "family-name" /><xsl:text> , </xsl:text><xsl:value-of select= "name" /> </li> </xsl:template></xsl:stylesheet>Con el archivo XML de entrada que se muestra arriba, se obtiene el siguiente código XHTML ( los espacios en blanco se han ajustado aquí para mayor claridad):
<?xml version="1.0" encoding="UTF-8"?> <html xmlns= "http://www.w3.org/1999/xhtml" > <head> <title> Ejemplo de prueba de XML </title> </head> <body> <h1> Personas </h1> <ul> <li> Ismincius, Morka </li> <li> Smith, John </li> </ul> </body> </html>Este código XHTML genera la siguiente salida cuando se visualiza en un navegador web.

Para que un navegador web pueda aplicar una transformación XSL a un documento XML en visualización, se puede insertar una instrucción de procesamiento de hoja de estilo XML en el XML. Así, por ejemplo, si la hoja de estilo del Ejemplo 2 anterior estuviera disponible como "example2.xsl", se podría agregar la siguiente instrucción al XML entrante original: [ 27 ]
<?xml-stylesheet href="example2.xsl" type="text/xsl" ?>En este ejemplo, text/xsles técnicamente incorrecto según las especificaciones del W3C [ 27 ] (que dicen que el tipo debería ser application/xslt+xml), pero es el único tipo de medio que es ampliamente compatible con los navegadores desde 2009, y la situación no ha cambiado en 2021.
Implementaciones de procesadores
- RaptorXML de Altova es un procesador XSLT 3.0 disponible en el kit de desarrollo XMLSpy y como una implementación de servidor independiente, a la que se accede mediante una interfaz REST.
- IBM ofrece el procesamiento XSLT integrado en un dispositivo de hardware especializado bajo la marca Datapower .
- libxslt es una biblioteca gratuita publicada bajo la licencia MIT que puede reutilizarse en aplicaciones comerciales. Está basada en libxml e implementada en C para mayor velocidad y portabilidad. Admite XSLT 1.0 y extensiones EXSLT . [ 28 ]
- Se puede usar en la línea de comandos a través de xsltproc [ 29 ] que está incluido en macOS [ 30 ] y en muchas distribuciones de Linux , y se puede usar en Windows a través de Cygwin . [ 31 ]
- Los motores de diseño WebKit y Blink , utilizados por ejemplo en los navegadores web Safari y Chrome respectivamente, utilizan la biblioteca libxslt para realizar transformaciones XSL. [ 32 ]
- Existen enlaces para Python , [ 33 ] Perl , [ 34 ] Ruby , [ 35 ] PHP , [ 36 ] Common Lisp , [ 37 ] Tcl , [ 38 ] y C++ . [ 39 ]
- Microsoft proporciona dos procesadores XSLT (ambos solo XSLT 1.0). El procesador anterior MSXML proporciona interfaces COM; a partir de MSXML 4.0 también incluye la utilidad de línea de comandos
msxsl.exe. [ 40 ] El entorno de ejecución .NET incluye un procesador XSLT integrado independiente en suSystem.Xml.Xslbiblioteca. - Saxon es un procesador XSLT 3.0 y XQuery 3.1 con versiones de código abierto y propietarias para funcionamiento independiente y para Java , JavaScript y .NET. Un producto independiente, Saxon-JS [ 41 ], ofrece procesamiento XSLT 3.0 en Node.js y en el navegador.
- xjslt es un compilador XSLT 2.0 de código abierto para JavaScript que admite Node.js y el navegador.
- Xalan es un procesador XSLT 1.0 de código abierto de la Apache Software Foundation, disponible para Java y C++. Una variante del procesador Xalan se incluye como procesador XSLT predeterminado en la distribución estándar de Java de Oracle.
- Navegadores web: Safari, Chrome (eliminación en curso), Firefox, Opera e Internet Explorer son compatibles únicamente con XSLT 1.0. [ 42 ]
Actuación
La mayoría de los primeros procesadores XSLT eran intérpretes. Más recientemente, la generación de código es cada vez más común, utilizando lenguajes intermedios portátiles (como el bytecode de Java o el Common Intermediate Language de .NET ) como destino. Sin embargo, incluso los productos interpretativos generalmente ofrecen fases separadas de análisis y ejecución, lo que permite crear un árbol de expresiones optimizado en memoria y reutilizarlo para realizar múltiples transformaciones. Esto proporciona beneficios sustanciales de rendimiento en aplicaciones de publicación en línea, donde la misma transformación se aplica muchas veces por segundo a diferentes documentos fuente. [ 43 ] Esta separación se refleja en el diseño de las API de procesamiento XSLT (como JAXP ).
Los primeros procesadores XSLT tenían muy pocas optimizaciones. Los documentos de hojas de estilo se leían en modelos de objetos de documento y el procesador actuaba directamente sobre ellos. Los motores XPath tampoco estaban optimizados. Sin embargo, cada vez más, los procesadores XSLT utilizan técnicas de optimización que se encuentran en lenguajes de programación funcional y lenguajes de consulta de bases de datos, como la reescritura estática de un árbol de expresiones (por ejemplo, para mover cálculos fuera de los bucles) y la evaluación segmentada perezosa para reducir el consumo de memoria de los resultados intermedios (y permitir una "salida temprana" cuando el procesador puede evaluar una expresión following-sibling::*[1]sin una evaluación completa de todas las subexpresiones). Muchos procesadores también utilizan representaciones de árbol que son significativamente más eficientes (tanto en espacio como en tiempo) [ 44 ] que las implementaciones DOM de propósito general.
En junio de 2014, Debbie Lockett y Michael Kay presentaron un marco de evaluación comparativa de código abierto para procesadores XSLT llamado XT-Speedo. [ 45 ]
Véase también
- Elementos XSLT : una lista de algunas estructuras XSLT de uso común.
- Agrupación de Muenchia : una diferencia dialectal entre XSLT1 y XSLT2+.
- Lenguaje de hojas de estilo extensible : una familia de lenguajes de la que XSLT es miembro.
- Comparación entre XQuery y XSLT
- Objetos de formato XSL o XSL-FO : un lenguaje basado en XML para documentos, generalmente generado mediante la transformación de documentos fuente con XSLT, que consta de objetos utilizados para crear una salida formateada.
- Transformación de identidad : un punto de partida para cadenas de filtros que agregan o eliminan elementos de datos de árboles XML en una canalización de transformación.
- Apache Cocoon : un marco de trabajo basado en Java para el procesamiento de datos con XSLT y otros transformadores.
Referencias
- 1 2 "Transformación" . 19-09-2012.
- ↑ "Método de salida XML" . 19/09/2012.
- ↑ "¿Para qué se utiliza XSLT?" . 7 de febrero de 2018.
- ↑ Eliminando XSLT de Chromium
- ↑ Eliminando XSLT para un navegador más seguro
- ↑ "Introducción" . Transformaciones XSL (XSLT) Versión 1.0 Recomendación del W3C . W3C. 16 de noviembre de 1999. Consultado el 7 de noviembre de 2012 .
- ↑ XSLT versión 2.0 es Turing-completa: una prueba basada exclusivamente en transformaciones
- ↑ Michael Kay. "¿Qué tipo de lenguaje es XSLT?" . IBM . Consultado el 8 de julio de 2016 .
- ↑ "Una propuesta para XSL" . W3C . Consultado el 7 de noviembre de 2012 .
- ↑ "Cronología de los estándares XML y Web Semántica del W3C" (PDF) . Archivado del original (PDF) el 24 de abril de 2013. Consultado el 4 de febrero de 2012 .
- ↑ "Transformaciones XSL (XSLT)" . W3.org. 16 de noviembre de 1999. Consultado el 12 de julio de 2014 .
- ↑ "Transformaciones XSL (XSLT) Versión 1.1" . W3.org. 24 de agosto de 2001. Consultado el 12 de julio de 2014 .
- ↑ "XML Path Language (XPath) 2.0 (Segunda edición)" . W3.org. 14 de diciembre de 2010. Consultado el 12 de julio de 2014 .
- ↑ "Transformaciones XSL (XSLT) Versión 2.0" . W3.org. 23 de enero de 2007. Consultado el 12 de julio de 2014 .
- ↑ "Cronología de los estándares XML y Web Semántica del W3C" (PDF) . 4 de febrero de 2012. Archivado del original (PDF) el 24 de abril de 2013. Consultado el 4 de febrero de 2012 .
- ↑ "¿Qué hay de nuevo en XSLT 3.0?" . w3 . Consultado el 6 de enero de 2014 .
- ↑ Kay, Michael. "Un procesador XSLT en tiempo real" . Actas de Balisage: The Markup Conference 2010. Consultado el 15 de febrero de 2012 .
- ↑ Flatt, Amelie; Langner, Arne; Leps, Olof (2022), "Fase III: Generación de artefactos a partir del modelo" , Desarrollo dirigido por modelos de perfiles de aplicaciones Akoma Ntoso , Cham: Springer International Publishing, pp. 31–37 , doi : 10.1007/978-3-031-14132-4_5 , ISBN 978-3-031-14131-7, consultado el 7 de enero de 2023
- ↑ "Transformaciones XSL (XSLT) Versión 2.0 (Segunda edición)" . www.w3.org . Consultado el 7 de febrero de 2023.
Ejemplo: Documentos de resultados múltiples
. - ↑ "Descubre las maravillas de XSLT: peculiaridades de XSLT" . Archivado del original el 9 de julio de 2011. Consultado el 11 de febrero de 2011. XSLT
es un lenguaje muy especializado con un marcado carácter declarativo.
- ↑ Kay, Michael. "¿Qué tipo de lenguaje es XSLT?" . IBM . Consultado el 13 de noviembre de 2013 .
- ↑ "Saxonica: XSLT y XQuery" . www.saxonica.com . Consultado el 29 de junio de 2022 .
- ↑ "Transformaciones XSL (XSLT) Versión 2.0" . W3C . Consultado el 19 de octubre de 2012 .
- ↑ "Tipos de medios de aplicación" . IANA . Consultado el 19 de octubre de 2012 .
- ↑ "Requisitos XSLT para visualizar XML en un navegador" . Microsoft . Consultado el 19 de octubre de 2012 .
- ↑ Kay , Michael (2008). XSLT 2.0 y XPath 2.0 Programmer's Reference . Wiley. pág. 100. ISBN 978-0-470-19274-0.
- 1 2 "Transformaciones XSL (XSLT) Versión 1.0: Recomendación del W3C – Incrustaciones de hojas de estilo" . W3C. 16 de noviembre de 1999. Consultado el 20 de septiembre de 2016 .
- ↑ "La biblioteca XSLT C para GNOME: libxslt" . Consultado el 23 de noviembre de 2012 .
- ↑ "La biblioteca XSLT C para GNOME: La herramienta xsltproc" . Consultado el 23 de noviembre de 2012 .
- ↑ "página man de xsltproc" . Consultado el 23 de noviembre de 2012 .
- ↑ "Nuevo paquete: libxslt" . Consultado el 23 de noviembre de 2012 .
- ↑ "El proyecto de código abierto WebKit – XSLT" . Consultado el 25 de octubre de 2009 .
- ↑ "El analizador XML C y el conjunto de herramientas de Gnome: Python y enlaces" . Consultado el 23 de noviembre de 2012 .
- ↑ "XML::LibXSLT – Interfaz para la biblioteca GNOME libxslt" . CPAN . Consultado el 23 de noviembre de 2012 .
- ↑ "libxslt-ruby" . Consultado el 23 de noviembre de 2012 .
- ↑ "libxml" . Consultado el 23 de noviembre de 2012 .
- ↑ "cl-libxml2 Envoltorio de alto nivel para las bibliotecas libxml2 y libxslt" .
- ↑ "TclXML" . Consultado el 21 de mayo de 2013 .
- ↑ "libxml++" . sourceforge.net . Consultado el 23 de noviembre de 2012 .
- ↑ "Utilidad de transformación de línea de comandos (msxsl.exe)" . Microsoft . Consultado el 22 de octubre de 2012 .
- ↑ «Saxon-JS» . Saxónica . Consultado el 6 de septiembre de 2018 .
- ↑ "Errores comunes de XSLT" . MDN Web Docs . Mozilla. 10 de julio de 2023. Consultado el 16 de septiembre de 2024 .
- ↑ Saxon: Anatomía de un procesador XSLT : artículo que describe los detalles de implementación y optimización de un procesador XSLT popular.
- ↑ Lumley, John; Kay, Michael (junio de 2015). «Mejora del rendimiento de la coincidencia de patrones en XSLT» . XML London 2015 1: 9–25 . doi : 10.14337/XMLLondon15.Lumley01 (inactivo el 12 de julio de 2025). ISBN 978-0-9926471-2-4.
{{cite journal}}: CS1 maint: DOI inactivo desde julio de 2025 ( enlace ) - ↑ Kay, Michael; Lockett, Debbie (junio de 2014). "Benchmarking XSLT Performance" . XML London 2014 1: 10–23 . doi : 10.14337/XMLLondon14.Kay01 (inactivo el 12 de julio de 2025). ISBN 978-0-9926471-1-7.
{{cite journal}}: CS1 maint: DOI inactivo desde julio de 2025 ( enlace )
Lecturas adicionales
- XSLT de Doug Tidwell, publicado por O'Reilly ( ISBN) 0-596-00053-7)
- Libro de cocina XSLT de Sal Mangano, publicado por O'Reilly ( ISBN) 0-596-00974-7)
- Manual de referencia del programador de XSLT 2.0 por Michael Kay ( ISBN) 0-764-56909-0)
- Manual de referencia para programadores de XSLT 2.0 y XPath 2.0 por Michael Kay ( ISBN) 978-0-470-19274-0)
- Desarrollo web con XSLT 2.0 por Dmitry Kirsanov ( ISBN) 0-13-140635-3)
- XSL Companion, 2.ª edición, de Neil Bradley, publicado por Addison-Wesley ( ISBN). 0-201-77083-0)
- XSLT y XPath en el Edge (Edición ilimitada) por Jeni Tennison , publicado por Hungry Minds Inc, EE. UU. ( ISBN) 0-7645-4776-3)
- XSLT y XPath, una guía para transformaciones XML, de John Robert Gardner y Zarella Rendon, publicado por Prentice-Hall ( ISBN). 0-13-040446-2)
- XSL-FO de Dave Pawson, publicado por O'Reilly ( ISBN) 978-0-596-00355-5)
Enlaces externos
- Documentación
- Recomendación W3C para XSLT 1.0
- Recomendación W3C para XSLT 2.0
- Recomendación W3C para XSLT 3.0
- "XSLT: Transformaciones de lenguaje de hojas de estilo extensibles" . MDN . Consultado el 9 de febrero de 2025 .
- Referencia XSLT (MSDN)
- Elementos XSLT (Saxon)
- Introducción y referencia de XSLT
- Bibliotecas de código XSLT
- EXSLT es una iniciativa comunitaria muy extendida que proporciona extensiones a XSLT.
- FXSL es una biblioteca que implementa la compatibilidad con funciones de orden superior en XSLT. FXSL está escrita en XSLT propiamente dicho.
- La biblioteca estándar XSLT, xsltsl, proporciona al desarrollador de XSLT un conjunto de plantillas XSLT para funciones de uso común. Estas plantillas están implementadas exclusivamente en XSLT, es decir, no utilizan extensiones. xsltsl es un proyecto de SourceForge.
- Kernow es una interfaz gráfica de usuario (GUI) para Saxon que proporciona una interfaz de apuntar y hacer clic para ejecutar transformaciones.
- xslt.js – Transforma XML con XSLT. Biblioteca JavaScript que transforma XML con XSLT en el navegador.
- Software de 1998
- lenguajes de programación declarativos
- Lenguajes funcionales
- Lenguajes de programación de alto nivel
- lenguajes de programación homoicónicos
- Lenguajes de marcado
- Lenguajes de programación
- Lenguajes de programación creados en 1998
- Lenguajes de transformación
- Estándares del Consorcio World Wide Web
- Lenguajes de programación basados en XML
- Estándares basados en XML