XSLT UNIVERSITA DI CAMERINO Corso di laurea in Informatica Barbara Re Anno Accademico
Barbara Re2 Introduzione XML è un metalinguaggio In quanto permette tramite la sua sintassi di descrivere altri linguaggi XSLT (eXtensible Stylesheet Language for Transformation) è un esempio di linguaggio scritto con sintassi XML cioè una grammatica XML Un documento XML è innanzitutto XML Ben formattato Contiene al suo interno elementi ed attributi che fanno riferimento alla grammatica XSLT Tale grammatica rappresenta una raccomandazione W3C Namespace:
Barbara Re3 Lapproccio Lapproccio generico di un documento XSLT alla trasformazione di contenuti XML può essere schematizzato con una frase Cerca – Trova – Trasforma Lapproccio a XSLT dovrà essere orientato allo studio di una grammatica che ci permetta di cercare allinterno dellalbero di un documento XML dei contenuti e, una volta trovati, qualora esistano, li trasformi in qualcosa di diverso Albero OriginaleAlbero Risultante Trasformazione XSLT
Barbara Re4 Il modello di XSLT processore XSLT input output
Barbara Re5 Documento XSLT Stylesheet è il tag root In ogni caso occorre che lintero doocumento faccia riferimento al Namespace corretto, partendo dal tag root e scegliendo un alias per il Namespace, di solito xsl Un documento XSLT quindi contiene allinterno del tag root indicato, una serie di altri nodi elemento che corrispondono a istruzioni del linguaggio <xsl:stylesheet version="1.0" xmlns:xsl=
Barbara Re6 Dichiarazione Per provare istruzioni XSLT sarà sufficiente inserire in testa a un documento xml una seconda processing-instruction dopo il prologo che colleghi lXSLT allXML
Barbara Re7 Definizione di Template La prima istruzione per eccellenza di un documento XSLT è quella che ci permette di definire dei template Cioè dei modelli di trasformazione <xsl:stylesheet version="1.0" xmlns:xsl=
Barbara Re8 Comando template Il comando template lavora con un attributo di nome match Match permette di definire a quali nodi si debba applicare il template stesso Lattibuto match rappresenta una regola XPath quindi la condizione match=/ indica che vogliamo definire un template per il nodo root del documento
Barbara Re9 Esempio: HTML in output <xsl:stylesheet version="1.0" xmlns:xsl= prima trasformazione da XML a HTML Prova di scrittura del documento HTML
Barbara Re10 XML di riferimento Cliente1 Via Roma, Cliente2 Via Roma, Cliente3 Via Roma, cliente4 Via Roma, cliente5 Via Roma,
Barbara Re11 Lettura e copia dei valori Comandi per la lettura e copia dei documenti in ingresso Per leggere in uscita il valore di un qualsiasi nodo con il comando value-of-select
Barbara Re12 Proviamo………….. base trasformazione
Barbara Re13 Soluzioni iterative Nel caso in cui si vogliono leggere però i nomi di tutti i clienti e non solo del primo cliente dobbiamo appoggiarci o ad un costrutto iterativo oppure al comando apply-templates che richiama ricorsivamente il template associato a ciascuno dei nodi che fanno parte di una collezione di nodi
Barbara Re14 Proviamo………….. ricorrobase ricorro
Barbara Re15 Costrutti condizionali ed iterativi Possiamo creare costrutti condizionali per valutare il contenuto del documento XML in ingresso prima di trasformarlo If Choose La differenza fra i due costrutti è che il blocco if può valutare una sola condizione e non presenta unalternativa elseif come spesso accade nei linguaggi tradizionali Se prevediamo anche un blocco otherwise questo costituisce la condizione di default nel caso in cui nessuna delle precedenti si verifichi
Barbara Re16 Esempio costrutto if (Cliente dal 2000)
Barbara Re17 Proviamo…………..
Barbara Re18 Esempio costrutto choose
Barbara Re19 Proviamo…………..
Barbara Re20 Istruzione for-each Nel caso in cui sia necessario eseguire delle interazioni su collezioni di nodi presenti nel documento XML di input possiamo usare listruzione for-each
Barbara Re21 Ordinamento Qualora volessimo ordinare il contenuto secondo un qualche valore prima di scriverlo in output possiamo far riferimento allistruzione sort Select indica unespressione secondo la quale ordinare i contenuti Data-type ci permette di indicare al processore se vogliamo un ordinamento tra stringhe o numeri Order ci permette di definire se vogliamo un ordinamento crescente o decrescente dei dati
Barbara Re22 XSLT consente di trasformare documenti XML in altri documenti con struttura diversa Funziona con un meccanismo di pattern matching e si basa su Xpath Implementa istruzioni condizionali e meccanismi di iterazione Conclusione
Barbara Re23 Riferimenti Deitel et al, XML Corso di programmazione, Apogeo Chris Bates, XML in theory and Practice, Wiley XML Path Language (XPath) Version 1.0 W3C Recommendation 16 November W3Schools Online Web Tutorials
Barbara Re24 Ci sono domande?