Linguaggi ed Applicazioni mul1mediali

Documenti analoghi
In un documento XML il markup è separato dal contenuto e può contenere conteno. Si veda il modulo su XML del corso di...

XSL: extensible Stylesheet Language

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Linguaggi e Tecnologie Web A. A Language) Stylesheet.

MODA-ML: Esempi di XSL (Extensible Stylesheet Language) Vocabolario di supporto alla creazione di un set di Schemi di documenti XML

Introduzione al linguaggio XSL (exensible Styles Language) XSLT(eXensible Styles Language Trasformations)

Famiglia di linguaggi XML:

XML INVITO ALLO STUDIO EUROPEAN NETWORK OF INNOVATIVE SCHOOLS

extensible Markup Language

La struttura: DTD. Laura Farinetti Dip. Automatica e Informatica Politecnico di Torino. laura.farinetti@polito.it

Tecniche Multimediali

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

Linguaggi per il web oltre HTML: XML

Modellazione e Gestione di Informazioni non Strutturate

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

Manuale di realizzazione dei modelli di documento

a cura di Maria Finazzi

Esercizi di JavaScript

Rappresentare i file XML - XSL

Settimana I...1. Giorno 1 - Introduzione all XSLT...3

XSLT WWW. Fabio Vitali 14 aprile 2000

Università degli Studi di Verona. Laboratorio di Basi di Dati

APPENDICE C extensible Markup Language

La sintassi di un DTD si basa principalmente sulla presenza di quattro dichiarazioni:

Working Draft 0.5 (Telefonia)

Dexma Newsletter System

Sistema Ambiente 2010": Il Network Nazionale della Biodiversità. Checklist, chiavi di identificazione, archivi di immagini ed altre risorse

FORMATO DI SCAMBIO STRUTTURE. Versione /12/1009

Implementazione di MVC. Gabriele Pellegrinetti

Appendice C Da XML a PDF Progetto Atena

Introduzione a XML: Document Type Definition; parser XML; XML-schema; extensible Stylesheet Language. a.a. 2004/05 Tecnologie Web 1

HTML il linguaggio per creare le pagine per il web

Le Basi di Dati. Le Basi di Dati

La rubrica degli indirizzi di posta elettronica associati al dominio scuole.piemonte.it

/XML ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 XML

Capitolo 4 Pianificazione e Sviluppo di Web Part

Università degli Studi di Padova Corso di Laurea in Informatica

XSLT WWW. Fabio Vitali

Introduzione al Linguaggio C

Università Politecnica delle Marche. Progetto Didattico

INTERAZIONE CON L UTENTEL

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

REPORT DI VALUTAZIONE DELL ACCESSIBILITÀ

SVILUPPARE TEMPLATE CON ARIADNE WCM. Linguaggi e tecnologie per sviluppare siti web

Scrivere uno script php che, dato un array associativo PERSONE le cui chiavi sono i

Indice. Introduzione. Capitolo 1

Costruzione del layout in gino cms

Concetti fondamentali dei database database Cos'è un database Principali database

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

Access. P a r t e p r i m a

SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.

Java: Compilatore e Interprete

Gestione del workflow

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Sviluppata da: Lo Russo - Porcelli Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL.

XSLT. Testo di riferimento. Cos'è XSLT. Come funziona XSLT

MANUALE PORTALE CLIENTI ARREDO 3 CUCINE

<utente> <nome>mario</nome> <cognome>rossi</cognome> <saldo>1230</saldo> </utente> Tag di chiusura dato. Tag di apertura

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

XML e TEI: introduzione alla codifica dei testi letterari. La nascita del linguaggio. Il concetto di metalinguaggio di codifica SGML

TRASMISSIONE REPORTISTICA MENSILE. WEB SERVICE Descrizione procedura

EXPLOit Content Management Data Base per documenti SGML/XML

Corso sul linguaggio SQL

Cliens Gestione Studio Legale Modifica dei Reports

Casalini Crypto. Documento di protocollo tecnico VRS 2.1

Dati relazionali e XML

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

SMS API. Documentazione Tecnica YouSMS SOAP API. YouSMS Evet Limited

EXCEL FUNZIONI PRINCIPALI

XML. XML è contemporaneamente: XML non è:

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

Link e permessi. Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione. Corso di Sistemi Operativi A. A

MANUALE D USO DELLA PIATTAFORMA ITCMS

Soluzioni professionali per la gestione e l invio di SMS

I linguaggi di marcatura e XML per la codifica dei dati d archivio

Sistemi Informativi e Basi di Dati

Vincoli di integrità

Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore

Test Excel conoscenze di Base

Dispensa di database Access


XML (extensible Markup Language)

Corso di Amministrazione di Reti A.A. 2002/2003

Microsoft Word. Nozioni di base

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

Il linguaggio HTML - Parte 3

XML: extensible Markup Language

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

GUIDA ALLA CONFIGURAZIONE E ALL UTILIZZO

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

MANUALE UTENTE. TeamPortal Liste Distribuzioni

Creare un sito Multilingua con Joomla 1.6

Creare diagrammi di Gantt con Visio 2003

DB - Modello relazionale dei dati. DB - Modello Relazionale 1

Elementi di semantica operazionale

SPECIFICHE E LIMITI DI EXCEL

PROGRAMMA DEL CORSO WEB GRAPHIC DESIGNER

Transcript:

Linguaggi ed Applicazioni mul1mediali 06.05 XLST Maurizio Maffi ISTI Informa1on Science and Technology Ins1tute

Da XSL a XSLT XSL o extensible Stylesheet Language, è un linguaggio XML creato inizialmente per fornire a XML un supporto per la formattazione simile a CSS, ma potenziato per riflettere il linguaggio su cui viene applicato, che non è più HTML XSLT (XSL Transformations) è il successore di XSL, ed estende il concetto di foglio di stile fino a permettere la manipolazione della struttura stessa del documento. XSLT permette di trasformare un documento XML filtrandone i dati e riorganizzandoli in un altra struttura XML, HTML o persino in un semplice testo.

Xpath XPath è un linguaggio tramite il quale è possibile esprimere delle espressioni per individuare parti di un documento XML, ovvero i nodi. XPath mette a disposizione una serie di funzioni per la manipolazione di stringhe, numeri e booleani, da utilizzare per operare sui valori o sugli attributi dei nodi. Le espressioni definite da XPath per accedere ai nodi dell'albero prendono il nome di Location Path (percorsi di localizzazione). La struttura un location path è composta da tre componenti: axis::node-test[predicate].

Le componen1 axis, node- test, predicate La componente axis esprime la relazione di parentela tra il nodo cercato ed il nodo corrente. (child, descendant, parent ) node-test: specifica il tipo o il nome del nodo da cercare (enquiry, comment, test ) predicate: contiene zero o più filtri per specificare delle condizioni più selettive da applicare alla ricerca ([nometag= valore'])

La componente axis Le relazioni di parentela principali che possono essere contenute in axis sono: ancestor: indica tutti i nodi antenati del nodo corrente, ovvero tutti i nodi che lo precedono nell'albero associato al documento XML; attribute: indica tutti gli attributi del nodo corrente; child: indica i nodi figli del nodo corrente; descendant: indica tutti i discendenti del nodo corrente, ovvero tutti i nodi che hanno seguono il nodo corrente nell'albero XML; parent: indica il nodo genitore del nodo corrente, ovvero quello che lo precede nell'albero; self: indica il nodo corrente.

Sintassi Possiamo utilizzare due diverse notazioni: Sintassi abbreviata: compatta, che permette la realizzazione di costrutti intuitivi e facilmente realizzabili. Es: /A/B/C (tutti gli elementi di C figli di B figli di A, che rappresenta la radice del documento XML) Sintassi espansa: più complessa, che contiene maggiori opzioni, in grado di specificare con più particolarità gli elementi. Es: /child::a/child::b/child::c

Esempio sintassi complessa <?xml version="1.0"?> <rubrica> <persona> <nome>mario</nome> <cognome>rossi</cognome> <indirizzo> <via>via bianchi 1</via> <cap>00000</cap> <citta>roma</citta> </indirizzo> <telefono> <telefono_fisso gestore="abc">123456</telefono_fisso> <telefono_cellulare gestore="def">987656412</telefono_cellulare> </telefono> </persona> </rubrica> child::nome ->Questa espressione seleziona tutti i nodo chiamati 'nome figli del nodo corrente.

Esempio sintassi complessa child::nome child::* attribute::gestore descendant::cognome [cognome='rossi'] Questa espressione seleziona tutti i nodo chiamati 'nome' che sono figli del nodo corrente. Seleziona tutti i nodi figli del nodo corrente Seleziona l'attributo di nome 'gestore' del nodo corrente. Seleziona tutti i nodi chiamati 'cognome' tra i nodi discendenti del nodo corrente, il cui valore è Rossi.

Espressioni abbreviate Le espressioni abbreviate, sono una versione semplificata e compatta dei Location Path ed offrono un meccanismo più veloce. Queste espressioni sono costituite da una lista di nomi di elementi del documento XML, separati da uno slash(/), e tale lista descrive il percorso per accedere all'elemento desiderato.

Espressioni abbreviate /rubrica/persona/nome //nome /rubrica//via /rubrica/persona/* //nome/@valuta //persona[nome='mario'] Recupera i nodi chiamati 'nome' indicando il percorso assoluto per raggiungere il nodo desiderato, attraverso una lista di nodi separata da slash ricerca i nodi chiamati 'nome', in tutto il documento, indipendentemente dalla loro posizione e dal loro livello sull'albero associato al documento XML. Ricerca tutti i nodi chiamati 'via' a qualsiasi livello dell'albero purchè contenuti all'interno del nodo chiamato 'rubrica'. Ricerca qualsiasi elemento figlio del nodo chiamato 'persona'. Ricerca l'attributo 'valuta' dell'elemento 'nome'. questa espressione ricerca tutti i nodi 'persona' che hanno il tag 'nome' il cui valore è Mario

Funzioni per ges1re i nodi XPath mette a disposizione anche delle funzioni per gestire i nodi, le stringhe, i numeri e i booleani. count(node-set): restituisce il numero di nodi contenuti nell'insieme di nodi passato come argomento della funzione; name(nodo): restituisce il nome di un nodo;

Funzioni per ges1re i nodi position(): determina la posizione di un elemento all'interno di un insieme di nodi; last(): indica la posizione dell'ultimo nodo di un'insieme di nodi; id(valore): seleziona gli elementi in funzione del loro identificatore; concat(s1,...,sn): restituisce una stringa risultato della concatenazione delle stringhe specificate tra gli argomenti di una funzione;

Funzioni per ges1re i nodi string(valore): converte il valore dell'argomento in una stringa; string-length(stringa): ritorna la lunghezza della stringa passata come parametro; substring(stringa,inizio,lunghezza): restituisce una sotto-stringa della stringa passata come argomento;

Funzioni per ges1re i nodi ceiling(numero): arrotonda il numero per eccesso; floor(numero): arrotonda il numero per difetto; number(valore): converte il valore dell'argomento in un numero; sum(node-set): esprime la somma di un insieme di valori numerici contenuti in un insieme di nodi.

Esempio completo <?xml version="1.0"?> <listautenti> <account user="fabio"> <mail>fabio@aaaa.com</mail> <nome>fabio V.</nome> <principale> <indirizzo> <via>via Vai 1</via> <cap>98100</cap> <citta>messina</citta> </indirizzo> <telefoni> <fisso>090123456</fisso> <cellulare gestore="aaa">3001234567</ cellulare> </telefoni> </principale> <altrirecapiti> <ufficio> <indirizzo> <via>via di Qua, 2</via> <cap>98100</cap> <citta>messina</citta> </indirizzo> <telefoni> <fisso>09078901</fisso> <fax>3001234567</fax> </telefoni> </ufficio> </altrirecapiti> </account> </listautenti> listautenti/account//telefoni/* restituisce la lista di tutti i nodi all'interno del nodo telefoni, in questo caso fisso, cellulare e fax. /listautenti/account//indirizzo/.. restituisce tutti i nodi che contengono un nodo indirizzo al loro interno (ufficio e principale) L'impiego dell'axis // fa sì che vengano individuati anche nodi di livelli differenti purché all'interno di account.

Trasformazione XSLT La trasformazione viene realizzata da un XSLT Processor che riceve come input il file XML da trasformare, il file XSL con la definizione dello stylesheet da applicare e produce come output il file trasformato Un file XSL è formato da una serie di template che contengono le regole di trasformazione dei tag del documento XML. Questi template vengono applicati ai tag corrispondenti dal XSLT Processor in maniera ricorsiva nel corso della trasformazione. Come esempio vediamo di definire un file XSL per visualizzare un file XML di esempio in una pagina HTML

Trasformazione XSLT Il file XML di input <?xml version="1.0"?> <rubrica> <persona> <nome>mario</nome> <cognome>rossi</cognome> <indirizzo> <via>via bianchi 1</via> <cap>00000</cap> <citta>roma</citta> </indirizzo> <telefono> <telefono_fisso>123456</telefono_fisso> <telefono_cellulare>987656412</telefono_cellulare> </telefono> </persona> </rubrica>

Trasformazione XSLT Il file XSL con la definizione dello stile per la creazione del file HTML <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/ XSL/transform" version="1.0"> <xsl:template match="/"> <html> <head> <title>rubrica in versione HTML</title> </head> <body> <h1>rubrica</h1> <xsl:apply-templates/> </body> </html> </xsl:template> <xsl:template match="persona"> <h2> <xsl:value-of select="cognome"/> <xsl:value-of select="nome"/> </h2> <ul> <li>via: <xsl:value-of select="./indirizzo/via"/></li> <li>cap: <xsl:value-of select="./indirizzo/cap"/></li> <li>citta': <xsl:value-of select="./indirizzo/citta"/></li> <li>telefono (fisso): <xsl:value-of select="./ telefono/telefono_fisso"/></li> <li>telefono (cellulare): <xsl:value-of select="./ telefono/telefono_cellulare"/></li> </ul> </xsl:template> </xsl:stylesheet>

Trasformazione XSLT Le regole di trasformazione sono contenute all'interno degli elementi template e tramite l'attributo match possiamo specificare, utilizzando la sintassi XPath, il tag a cui si riferiscono queste regole. Nell esempio: <xsl:template match="/"> contiene le regole di trasformazione dell'elemento root del file di input (l'elemento <rubrica>); <xsl:template match="persona"> definisce le regole per la trasformazione degli elementi <persona>. Il processore XSLT effettua il parsing del documento XML da trasformare e, per ogni nodo incontrato, ricerca il template appropriato all'interno del file XSL.

Trasformazione XSLT Il risultato sarà: <html> <head> <title>rubrica in versione HTML</title> </head> <body> <h1>rubrica</h1> <h2>rossi Mario</h2> <ul> <li>via: via bianchi 1</li> <li>cap: 00000</li> <li>citta': Roma</li> <li>telefono (fisso): 123456</li> <li>telefono (cellulare): 987656412</li> </ul> </body> </html>