Las transformaciones XSLT
4D incorpora un procesador XSLT que se utiliza para realizar las transformaciones de documentos XML. El comando que activa el procesador es APPLY XSLT TRANSFORMATION.
¿Qué es XSLT?
La especificación XSLT (eXtensible Stylesheet Language Transformations) describe un lenguaje basado en XML para transformar documentos XML a cualquier otro formato.
XSLT tiene una gran importancia en el mundo XML. Es el mecanismo preferido para convertir documentos XML a formato HTML, para que éstos puedan ser mostrados por un navegador Internet. Pero también lo podemos utilizar para crear documentos compatibles con Office 2003. De esta manera podemos crear documentos Word o Excel.
Todo esto significa que con los datos de nuestra base podemos crear archivos compatibles con diferentes aplicaciones. Sin duda la potencia de XML y XSLT ofrece un abanico de posibilidades enorme para poder compartir la información.
Para poder crear documentos XSLT es necesario tener conocimientos del lenguaje XSLT y XPath. Voy a comentar brevemente los elementos más utilizados de XSLT, de esta manera será más fácil comprender los próximos capítulos.
Una hoja de estilo XSLT es un documento XML. Las hojas de estilo se guardarán siempre en archivos independientes con extensión .xsl (ejemplo: Productos.xsl).
Una hoja de estilo XSLT debe comenzar con una declaración XML:
<?xml version=”1.0″ encoding=”ISO-8859-1″?>
Después de la declaración XML, aparecerá el elemento raíz de la hoja de estilo: stylesheet. Este elemento contendrá a todos los demás y debe ir precedido por el alias xsl.
El URI del espacio de nombres es:
http://www.w3.org/1999/XSL/Transform
De esta forma el elemento raíz de una hoja de estilo XSLT quedará de la siguiente forma:
<xsl:stylesheet version=”1.0″ xmlns:xsl=”http://www.w3.org/1999/XSL/Transform
</xsl:stylesheet>
En la etiqueta de inicio del elemento xsl:stylesheet se ha añadido el atributo version. Este atributo indica la versión de la especificación XSLT en que se basa la hoja de estilo. Es importante esta información para garantizar el procesamiento correcto de los documentos. Actualmente el procesador XSLT de 4D solamente soporta la versión 1.0. Pero desde hace bastante tiempo ya está disponible la versión 2.0 de XSLT.
El principal elemento que se utiliza en las hojas de estilo XSLT es el elemento xsl:template match. El elemento xsl:template match se usa para crear las reglas de transformación. Una hoja de estilo XSLT debe contener al menos un elemento xsl:template match.
Otro elemento es xsl:apply-templates/. Este elemento se utiliza, dentro de una regla XSLT, con el fin de indicar que se debe procesar el resto de reglas de la hoja de estilo.
Con esta instrucción se está indicando al procesador que debe recorrer los nodos hijos del nodo que se está procesando y aplicar las reglas de la hoja de estilo que correspondan a estos nodos.
También xsl:apply-templates puede ir acompañado por un atributo select. Así, se puede indicar al procesador que debe ejecutar una regla específica y no todas las que sean aplicables, como sucede si no se incluye el atributo.
El elemento xsl:value-of select escribe en el documento resultado de la transformación el valor de un nodo del documento XML que está siendo procesado.
Voy a comentar un ejemplo:
La regla se aplicará cada vez que aparezca el elemento <Producto> en el documento XML. Primero escribirá la marca <tr>. La marca xsl:apply-templates hace que el procesamiento continúe y busque el nodo hijo <Codigo_Producto>, después escribe la marca <td>. Con xsl:value-of select escribe el contenido de la marca del documento XML en el nuevo documento que hemos creado. Finalmente escribe las marcas </td> y </tr>
.
Como hemos comentado anteriormente para poder realizar las transformaciones XSLT en 4D utilizaremos el comando APPLY XSLT TRANSFORMATION. Para poder utilizar este comando necesitamos crear dos documentos: uno XML y otro XSL. A partir de estos documentos se crea otro archivo que es el resultado de la transformación XSLT.
Cómo crear documentos HTML
Para poder crear un documento HTML es necesario crear una hoja de estilo xsl. En esta hoja de estilo combinaremos comandos XSLT y elementos HTML.
Los elementos HTML más utilizados son:
- Html: Limita el documento e indica que está escrito en este lenguaje.
- Body: Encierra el contenido del documento.
- Table: Corresponde a una Tabla.
- Table border: Anchura del borde de una Tabla.
- Table width: Anchura de la Tabla.
- Table cellpadding: Distancia entre el borde de una celda y su contenido.
- Table cellspacing: Anchura del borde que separa las celdas de una tabla.
- Tr: Corresponde a la fila de una Tabla.
- Td: Corresponde a las celdas de una Tabla.
- Th: Corresponde a las celdas de cabecera de una Tabla.
- H1, H2, H3 ...: Titulares.
- P: Párrafos.
- BR: Saltos de línea.
Para crear el documento XSL con 4D seguiremos los siguientes pasos:
El primer paso es crear la declaración XML y el elemento raíz de la hoja de estilo stylesheet. En la creación del documento utilizamos el elemento XSLT xsl:output. Este elemento se utiliza para dar información sobre el tipo de transformación que realiza la hoja de estilo.
El elemento xsl:template match será Productos. No olvidemos que es el elemento raíz <Productos> del documento XML que deseamos transformar.
Seguidamente introducimos los elementos HTML: html y body.
Creamos una tabla y las celdas de cabecera de la tabla.
Llamamos al nodo hijo del documento XML : “Productos/Producto”
Creamos una fila de la tabla y llamamos a los nodos hijo del documento XML. Los nodos hijo de la base de ejemplo son: Codigo_Producto, Descripcion_Producto, Precio_Producto, Familia_Producto.
Finalmente creamos una celda e introducimos el valor de los nodos hijo del documento XML en el nuevo documento que hemos creado. En la imagen de ejemplo el nodo hijo es “Productos/Producto/Codigo_Producto”.
Aplicación de demostración
Puede descargar la aplicación de demostración con la que puede practicar lo expuesto en este blog de:
Versión Mac:
http://www.baarasoft.eu/Productos.sit
Versión Windows:
http://www.baarasoft.eu/Productos.exe
Publicado el 2 Abril, 2008 por Joan Grabuleda | | Imprime este artículo