XSL Transformations: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Fix tecnico tag HTML obsoleto per Wikipedia:Bar/Discussioni/Passaggio da Tidy a RemexHTML: c'è del lavoro da fare using AWB |
Nessun oggetto della modifica |
||
(16 versioni intermedie di 13 utenti non mostrate) | |||
Riga 13:
|influenzato_da = [[DSSSL]]
|ha_influenzato =
|sito_web = [
}}
[[File:XSLT en.svg|thumb|right|Diagramma]]
In [[informatica]], lo
== Descrizione ==
Ci possono essere due casi specifici di trasformazione: da un documento XML a un altro documento XML (adatto a specifiche applicazioni), oppure da un documento XML ad un altro formato (ad esempio [[HTML]], [[XHTML]], [[Wireless Markup Language|WML]] e [[Rich text format|RTF]], ma anche in qualsiasi altro formato di solo testo).
Per generare una trasformazione XSLT occorrono due file: il documento da trasformare (in XML) ed un documento contenente il '''[[foglio di stile]] [[Extensible Stylesheet Language|XSL]]''', che fornisce la semantica per la trasformazione. Il foglio di stile XSLT vede un documento XML come una serie di nodi strutturati ad albero. È formato da un insieme di modelli (''template'') che contengono le regole di trasformazione dei tag del documento XML. Nella sintassi XSL, i <kbd>template</kbd> sono elementi, a ciascuno dei quali corrisponde l'attributo <kbd>match</kbd>, associato al nodo che verrà trasformato. In termini strutturali quindi il foglio di stile XSL specifica la trasformazione di un albero di nodi in un altro albero di nodi.
Riga 34:
* Elementi
* [[Namespace]]
* Istruzioni di elaborazione (si riconoscono
* Testo
La trasformazione avviene attraverso un apposito programma detto '''processore XSLT''', che riceve in input il documento XML, da cui prende i contenuti (file 1), poi prende dal foglio di stile (file 2) la struttura e le regole di presentazione e produce in output il documento XML trasformato (file 3). Il processore XSLT segue la struttura gerarchica del documento di partenza (1)
Il primo elemento template contiene le regole di trasformazione dell'Elemento radice del file di input, normalmente indicato con "/".
Riga 44:
* Generare una pagina [[HTML]] partendo da dati scritti in XML (ad esempio per presentare questi ultimi);
* Ordinare il contenuto dei nodi XML secondo le istruzioni fornite dal foglio di stile XSL;
* Nascondere
* Convertire le tabelle in grafici o in immagini SVG ([[Scalable Vector Graphics]]).
Riga 50:
== Esempi XSLT ==
Esempio di un documento XML in arrivo <
<?xml version="1.0" ?>
<persons>
Riga 62:
</person>
</persons>
</syntaxhighlight>
=== Esempio 1 (trasformazione da XML a XML) ===
Il foglio di stile XSLT stylesheet fornisce template per trasformare il documento XML:<
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
Riga 83:
</xsl:stylesheet>
</syntaxhighlight>
La sua valutazione risulta in un nuovo documento XML, avente una nuova struttura:
<
<?xml version="1.0" encoding="UTF-8"?>
<root>
Riga 93:
<name username="MI1">Morka</name>
</root>
</syntaxhighlight>
=== Esempio 2 (trasformazione da XML a XHTML) ===
Elaborando il seguente documento XSLT
<
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
Riga 128:
</xsl:stylesheet>
</syntaxhighlight>
con in ingresso il documento XML mostra il risultato nel seguente [[XHTML]] (
<
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
Riga 142:
</body>
</html>
</syntaxhighlight>
Questo XHTML genera il seguente output quando viene renderizzato da un [[web browser]]:
[[File:xslt ex2.png|thumb|center|Rendered XHTML generated from an XML input file and an XSLT transformation.]]
<
<?xml-stylesheet href="example2.xsl" type="text/xsl" ?>
</syntaxhighlight>
Nota: l'esempio <code>text/xsl</code> è tecnicamente errato secondo le specifiche del W3C, ma è l'unico tipo multimediale che è ampiamente supportato da tutti i principali [[browser]].
Riga 161:
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{FOLDOC|Extensible Stylesheet Language Transformations|Extensible Stylesheet Language Transformations}}
* {{cita web|
* {{cita web|
* {{cita web | 1 = http://www.giuseppesicari.it/articoli/xslt/ | 2 = Guida completa a XSLT | accesso = 3 maggio 2019 | dataarchivio = 16 maggio 2016 | urlarchivio = https://web.archive.org/web/20160516163026/http://www.giuseppesicari.it/articoli/xslt/ | urlmorto = sì }}
* {{cita web | 1 = http://xml.html.it/guide/leggi/60/guida-xslt/ | 2 = Guida di XSLT | accesso = 18 dicembre 2006 | dataarchivio = 30 novembre 2006 | urlarchivio = https://web.archive.org/web/20061130075553/http://xml.html.it/guide/leggi/60/guida-xslt/ | urlmorto = sì }}
* {{cita web|1=https://www.w3schools.com/xsl/default.asp|2=Guida introduttiva di XSLT|lingua=en|accesso=5 maggio 2019|urlarchivio=https://web.archive.org/web/20161014090016/http://www.w3schools.com/xsl/default.asp|dataarchivio=14 ottobre 2016|urlmorto=sì}}
* {{cita web|http://www.zvon.org/xxl/XSLTreference/Output/index.html|Un elenco di tag XSLT corredato di esempi|lingua=en}}
* {{cita web|http://www.data2type.de/en/xml-xslt-xslfo/xslt/xslt-introduction/|XSLT Tutorial|lingua=en}}
|