Difference between revisions of "XSLT"
(→Transformacions) |
(→Transformacions) |
||
| Line 74: | Line 74: | ||
La família de llenguatges XSL està formada per tres llenguatges: | La família de llenguatges XSL està formada per tres llenguatges: | ||
| − | *'''XSL-FO'''''(XSL Formatting Objects): és un llenguatge per definir el format que s'ha d'aplicar a un document. | + | *'''XSL-FO'''''(XSL Formatting Objects)'': és un llenguatge per definir el format que s'ha d'aplicar a un document. |
| − | *'''XSLT'''''(XSL transformations): és un llenguatge per ens permet transformar documents XML. | + | *'''XSLT'''''(XSL transformations)'': és un llenguatge per ens permet transformar documents XML. |
*'''XPath''': és un llenguatge que ens permet accedir a parts dels documents XML. | *'''XPath''': és un llenguatge que ens permet accedir a parts dels documents XML. | ||
Revision as of 16:57, 20 April 2022
Maneres de transformar un XML
XML està pensat sobretot per a emmagatzemar i intercanviar informació, de manera que si cal representar les dades d’una manera diferent per optimitzar un procés o per millorar-ne la visualització hi haurà diverses possibilitats:
- Desenvolupar un programa
Com que és relativament senzill treballar amb XML, es podria desenvolupar un programa que agafi les dades XML i generi la sortida tal com la volem. Això té l’inconvenient que caldrà tenir coneixements de programació i que pot representar molta feina encara que el que calgui fer sigui trivial. - Fer servir CSS
En molts casos una solució senzilla seria fer servir CSS per representar la informació de manera més amigable fent servir un navegador. Però només serveix per canviar la visualització, no per canviar el document. - Transformar el document
Una solució alternativa consisteix a transformar el document en un altre que estigui pensat per ser visualitzat. Hi ha molt formats que estan pensats sobretot per ser visualitzats: PDF, HTML, XHTML, etc.
CSS
Mitjançant llenguatge CSS podem modificar la manera com es representa la informació que conté el fitxer XMl i adaptar-la a les nostres necessitats. Aquest mètode té la limitació que no ens permet modificar la seqüència d'aparició de la informació ni ens permet afegir informació extra a la que mostra el XML. Per exemple, si tenim un fitxer XML amb la següent informació:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="books.css"?>
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>I l'enllacem amb el següent fitxer CSS
bookstore{
background-color: darkgray;
}
title{
font-size: 30px;
color:brown
}
book {
display: block;
}
author{
display: block;
font-size: 15px;
font-style:italic;
}
price {
display: block;
font-weight: bold;
padding-bottom: 30px;
}Com a resultat tindrem la següent pàgina web:
Tot i la modificació en la forma de presentació, CSS té moltes limitacions a l’hora de presentar la informació:
- La informació no pot ser reordenada con vulguem. L’única manera de simular el canvi d’ordre és fer servir posicionaments absoluts.
- Els atributs es poden mostrar però hi ha moltes limitacions per fer-ho.
- No es poden afegir estructures noves producte de càlculs o de procés de les dades del document.
- No té maneres senzilles de formatar les dades en pàgines de text per ser impreses.
Per tant, si l’objectiu final no és simplement decorar el fitxer sinó transformar-lo en un altre document totalment diferent, CSS no serveix. CSS no transforma el document sinó que simplement canvia la manera com es visualitza.
Transformacions
Per superar les mancances de CSS a l'hora de transformar documents va aparèixer un nou llenguatge :XSL
XSL és una família de llenguatges que ens permeten definir transformacions i presentacions de documents XML.
La família de llenguatges XSL està formada per tres llenguatges:
- XSL-FO(XSL Formatting Objects): és un llenguatge per definir el format que s'ha d'aplicar a un document.
- XSLT(XSL transformations): és un llenguatge per ens permet transformar documents XML.
- XPath: és un llenguatge que ens permet accedir a parts dels documents XML.