1 XSL:Rappresentare i documenti XML Marco Mesiti XSL, XSLT, XPath.

Slides:



Advertisements
Presentazioni simili
WWW XML-Namespace Fabio Vitali. WWW Fabio Vitali2 Introduzione Qui esaminiamo: u Lesigenza e il funzionamento dei Namespace in XML.
Advertisements

Introduzione al DTD Mario Arrigoni Neri.
Introduzione ad XML Mario Arrigoni Neri.
HTML+XML= XHTML Il ritorno al futuro del WEB A cura di Barbara Lotti.
A. FERRARI Alberto Ferrari. L'HyperText Markup Language (HTML) (traduzione letterale: linguaggio di marcatura per ipertesti) è un linguaggio usato per.
1 Introduzione ad XML. 2 Problemi con SGML Complesso da comprendere ed utilizzare Non è pensato per la rete: mancano link ipertestuali e specifiche grafiche.
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
Introduzione ai CSS. Cosa è successo allHTML Perché usare i CSS Introduzione ai CSS Fondamenti.
PHP.
Analizzatori Lessicali con JLex
XPath (XML Path Language)
XSLT (eXtensible Stylesheet Language Transformation) Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis
XSLT UNIVERSITA DI CAMERINO Corso di laurea in Informatica Barbara Re Anno Accademico
XPath (XML Path Language) Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis
Type Checking (1° parte)
Query OQL e XQUERY a confronto
XML Prof. Alfredo Pulvirenti. XML XML (eXtensible Markup Language) è un meta linguaggio. Può essere definito come un insieme di regole e convenzioni che.
XML Prof. Barbara Pernici Politecnico di Milano. Introduzione a XML.
XML e XSL. XSL - eXtensible Stylesheet Language XSL è un linguaggio di annotazione che serve a "trasformare" la struttura di un documento in formato XML.
XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE.
Corso di basi di dati II Prof. Francesco Cutugno Dott. Sara Romano
Architettura del World Wide Web
Fogli stile a cascata Danilo Deana.
Introduzione e nozioni fondamentali di sintassi
Elaborazione di Franco Grivet Chin
1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... XML Elaborazione di Franco Grivet Chin.
XSLT Trasformazioni XSL Ing. Luca Sabatucci. XSLT Uno dei vantaggi principali nell'utilizzo dell'Extensible Markup Language è la facilità con cui si possono.
1 XPath. 2 What is XPath? XPath is a syntax for defining parts of an XML document XPath uses paths to define XML elements XPath defines a library of standard.
Namespace Spazio dei nomi Ing. Luca Sabatucci. Scopo I Namespace servono a: I Namespace servono a: distinguere tra elementi e attributi con lo stesso.
Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)
Importanza DTD La DTD (Document Type Definition) consente di dichiarare in maniera univoca la struttura di markup mediante la definizione dello schema.
I fogli di stile XSL – 2 –. Selezioni multiple : serve per applicare una regola in modo ricorsivo a nodi figli dellelemento contestuale. Attributo select.
Linguaggi di codifica.
Creare pagine web Xhtlm. Struttura di una pagina.
HTML Lezione 3 Stili.
Il World Wide Web Lidea innovativa del WWW è che esso combina tre importanti e ben definite tecnologie informatiche: Documenti di tipo Ipertesto. Sono.
Informatica Umanistica A.A. 2005/2006 LEZIONE 6 Ripasso XML – DTD XSL.
Il linguaggio HTML Antonella Schiavon – settembre 2008 rev. 1 – aprile 2011.
Tecniche di accessibilità web Tabelle e form accessibili Le tabelle di dati WCAG 1.0, linea guida 5 Garantire che le tabelle abbiano.
HTML HyperText Markup Language Linguaggio per marcare un’Ipertesto
XPATH.
CSS Cascade Style Sheets.
INTRODUZIONE A JAVASCRIPT
Programma delle lezioni LABORATORIO B  Lezione 01: 27/02martedi  Lezione 02: 06/03martedi  Lezione 03: 13/03martedi  Lezione 04:
PHP - PHP: Hypertext Preprocessor. Introduzione PHP (acronimo ricorsivo per "PHP: Hypertext Preprocessor") è un linguaggio di scripting general-purpose.
JavaScript Generalità Cos'è JavaScript?
XHTML Corso linguaggi per il web a.s. 2011/2012 ITIS A. Righi – Corsico Relatore – Aldo Guastafierro.
Internet e HTML Diffusione di informazioni mediante la rete Internet.
Introduzione a Javascript
Tecnologie di InternetDocument Type Definition Dott. Nicola Dragoni Document Type Definition  Document Type Definition (DTD)  Documento XML valido 
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
WWW XSLT Ing. Michele Vindigni. WWW 2 Introduzione Oggi esaminiamo in breve: u XSLT, ovvero il linguaggio trasformazione per documenti XML con sintassi.
A.a. 2004/05Tecnologie Web1 Introduzione a XML: Document Type Definition; parser XML; XML-schema; eXtensible Stylesheet Language.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
CSS Cascading Style Sheet
Fondamenti di Markup Languages: Richiami di HTML © 2005 Stefano Clemente Stefano Clemente
Cenni Su SGML, HTML, XML SGML (Standard Generalized Markup Language) è il padre di tutti i linguaggi "Markup" – Lo svantaggio è la "pesantezza" dei suoi.
WWW XBase, XPath e XPointer Fabio Vitali. WWW Fabio Vitali2 Introduzione Qui esaminiamo: u XBase, XPath e XPointer.
I fogli di stile XSL.
WWW XSLT Fabio Vitali. WWW Fabio Vitali2 Introduzione Oggi esaminiamo in breve: u XSLT, ovvero il linguaggio di stile di XML.
WWW XBase, XPath e XPointer Fabio Vitali. WWW Fabio Vitali2 Introduzione Qui esaminiamo: u XBase, XPath e XPointer.
EXtensible Stylesheet Language Transformations (XSLT) Giuseppe Della Penna Università degli Studi di L’Aquila
WWW XSLT Fabio Vitali. WWW Fabio Vitali2 Introduzione Oggi esaminiamo in breve: u XSLT, ovvero il linguaggio di stile di XML.
Informatica Umanistica LM - Scienze del Testo Docente Alessia Scacchi.
Documenti XML ben formati Altre componenti di un documento XML – Struttura dei documenti XML.
16 Maggio - Lezione 9POLETTINI NICOLA1 Programma delle lezioni LABORATORIO B  Lezione 1: 14 marzomartedi  Lezione 2: 21 marzomartedi  Lezione.
Laboratorio di XHTML e CSS
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
HTML. Pagina HTML Struttura Titolo Hello World! Paragrafo apre il documento html contiene informazioni come il titolo della pagina, i meta tags, la codifica.
Transcript della presentazione:

1 XSL:Rappresentare i documenti XML Marco Mesiti XSL, XSLT, XPath

2 XSL - eXstensible Stylesheet Language XSL Raccomandazione del W3C (2001) Per aumentare la flessibilità dello standard XML Più sofisticato di CSS Contiene specifiche di CSS e DSSSL XSL consiste di tre parti: (XSLT) Un linguaggi o per trasformare i documenti XML (XSLT) (XSL) un vocabolario per definire la formattazione (XSL) (XPath) una sintassi per indirizzare parti di un documento ad una certa formattazione (XPath)

3 XSL è uno Standard W3C XSL è uno standard del World Wide Web Consortium XSLT ed XPath sono diventate Raccomandazioni nel Novembre 1999 Il linguaggio completo che include “XSL formatting” è diventato raccomandazione al W3C nell’Ottobre 2001

4 XSLT, XPath: Scopi e funzionalità trasformazione di documenti XML in documenti XML XSLT è in pratica un linguaggio dedicato alla trasformazione di documenti XML in documenti XML XPath è un linguaggio dedicato alla definizione ed al recupero di parti di documenti XML (Indirizzamento di documenti XML) Useremo XSLT per trasformare XML in XHTML e XPath per il recupero di parti da trasformare

5 Internet Explorer 5 e 6 XSL in Internet Explorer 5 NON è compatibile con la raccomandazione ufficiale del W3C su XSL. Internet Explorer 5.0 uscito nel Marzo 1999, Lo standard XSL era ancora un W3C Working Draft. Internet Explorer 6 supporta completamente XSL Il Parser XML 3.0 è basato sulla Raccomandazione

6 Netscape 6 e 7 Netscape 6 non supporta completamente la raccomandazione XSL del W3C Netscape 7 invece supporta completamente la raccomdazione XSL del W3C

7 Internet Explorer MSXML Parser MSXML Parser 2.0 è il parser XML fornito insieme a IE 5.0. MSXML Parser 2.5 è il parser XML fornito insieme a Windows 2000 e IE 5.5. MSXML Parser 3.0 è il parser XML fornito insieme a IE 6.0 e Windows XP. Secondo Microsoft, MSXML Parser 3.0 è pienamente compatibile con la raccomandazione Per maggiori info:

8 Xpath

9 XPath Linguaggio per esprimere espressioni di cammino sulla struttura gerarchica dei documenti XML Basato sul concetto di context node. Un context node è il nodo a partire dal quale viene valutata un’espressione Esempi /books/book/author /child::books/child::book/child::author

10 XPath Il costrutto di base è il location path, sequenza di location steps separati da / Un location step viene valutato rispetto ad un contesto che restituisce un insieme di nodi Un location path viene valutato composizionalmente, da sinistra a destra, iniziando da un contesto iniziale Ogni nodo risultante dalla valutazione di un passo viene usato come contesto per la valutazione del passo successivo

11 XPath Un location step has the form axis :: node-test [ predicate ] Esempio: child::section[position()<6]/descendant::cite/attribute::href seleziona tutti gli attributi href attributes contenuti in elementi cite nelle prime 5 sezioni di un articolo

12 Axes

13 Node tests Testing by node type: text() chardata nodes comment() comment nodes processing-instruction() processing instruction nodes node() all nodes (not including attributes and namespace decl.s) Testing by node name: name nodes with that name * any node

14 Predicates expressions coerced to type boolean A predicate filters a node-set by evaluating the predicate expression on each node in the set with that node as the context node Different predefined predicates are available Predicates can be conjunction, disjunction, negation of other predicates

15 Xpath - abbreviazioni Sintassi di baseAbbreviazione child:: niente /descendant-or-self::node()/ // self::node(). parent::node()..

16 Esempio … S. Franzoni … …

17 Esempi Seleziona dalla radice (elemento più esterno), I clienti con attributo ClientID = ="ALFKI" supponendo che Customer abbia come sottoelemento Order, seleziona tutti gli ordini in cui OrderID = 1 Supponendo che Customer ammetta come sottoelemento ContactName, selezionare tutti i Customer che: hanno almeno un ContactName  /Customers/Customer[ContacName] non hanno ContactName  /Customers/Customer[not(ContacName)]

18 Esempi Selezionare gli ordini che si riferiscono al cliente identificato da "ALFKI" selezionare l’ordine identificato da "Ord ”, relativo al cliente identificato da "ALFKI" ="Ord-10643"] selezionare i clienti che hanno effettuato almeno un ordine di un prodotto inquantità superiore a 5

19 Esempi Selezionare I vari prodotti ordinati, che complessivamente costano più di 2000 = 2000] seleziona il cliente "ALFKI" e il cliente “ANATR”

20 XSLT

21 XSLT Trasformare documenti XML XSLT è sicuramente la parte più interessante dello standard XSL XSLT, nella trasformazione, può anche aggiungere nuovi elementi o rimuoverne di vecchi XSLT può ordinare i dati, può prendere decisioni su quali elementi mostrare e molto di più Formalmente il processo di trasformazione XSLT prende in input un albero XML sorgente e produce un nuovo albero XML XSLT XML XHTML

22 Come funziona? Nel processo di trasformazione XSLT utilizza XPath per determinare le parti dell’albero sorgente che corrispondono a determinati template operativi (identificazione di “match”) Quando un “match” viene trovato XSLT trasforma la parte interessata nel pattern stabilito che restituisce in output Le parti che non trovano matching con alcun template non verranno modificate nel risultato o addirittura non compariranno nell’albero di output.

23 Una trasformazioni XSLT patternstemplates La trasformazione viene attuata associando patterns con templates pattern Un pattern deve coincidere con un elemento dell’input tree template Un template serve per formare parte dell’albero in output

24 XSLT - Regole di Template L’albero in output viene creato appendendo i nodi processati partendo dal nodo radice Un nodo viene processato cercando tutti le regole di template con il pattern corrispondente Un template contiene, tipicamente istruzioni di selezione di nuovi nodi da processare Il processo di matching, la creazione di nodi e la selezione continuano ricorsivamente fino a quando non esistono nuovi nodi da aggiungere

25 XSLT - I Patterns Le regole di Template identificano i nodi I patterns sono usati anche per la numerazione e per la dichiarazione di chiavi Un pattern specifica un insieme di condizioni su un nodo Un nodo che soddisfa quelle condizioni corrisponde al pattern La sintassi di patterns è un sottoinsieme della sintassi di espressioni in XPath

26 XSLT - I Patterns - Esempi paragrafo paragrafo ogni elemento * * qualsiasi elemento lista/elemento lista/elemento ogni elemento con una come genitore / / il nodo radice text() text() ogni nodo text node() node() ogni nodo id(“unico") id(“unico") l’elemento con ID uguale a unico para[1] para[1] ogni elemento primo nel ogni attributo

27 Procediamo con un esempio (XML) <catalog> Empire Burlesque Empire Burlesque Bob Dylan Bob Dylan USA USA Columbia Columbia …</catalog> catalog.xml

28 Procediamo con un esempio (XSL) My CD Collection My CD Collection Title Title Artist Artist </xsl:template></xsl:stylesheet> catalog.xsl

29 Associare il foglio di stile a un documento XML <catalog> Empire Burlesque Empire Burlesque Bob Dylan Bob Dylan USA USA Columbia Columbia …</catalog>

30 L’elemento L’elemento Come abbiamo detto un foglio di stile corrisponde ad una serie di regole dette templates Ogni regola è definita da un elemento Questo contiene regole da applicare ai nodi che fanno “match” con l’espresisone di XPath

31 XSL usa Templates L’attributo match viene usato per associare il template ad un elemento XML L’attributo match viene anche usato per definire un template da applicare ad un intero ramo dell’albero XML di input Ad esempio match="/" definisce l’intero documento

32 XSLT - Definire una regola di template XSLT - Definire una regola di template viene specificata da un elemento xsl:template match è un pattern che identifica il nodo (nodi) sorgente a cui applicare la regole

33 XSLT - Definire una regola di template XSLT - Definire una regola di template Esempio: This is an important point. l’ xsl:apply-templates ricorsivamente processa i figli dell’elemento sorgente

34 XSLT - Applicare una regola Template in assenza di select xsl:apply-templates processa tutti i figli del nodo corrente

35 XSLT - Applicare una regola Template XSLT - Applicare una regola Template ESEMPIO: Processa tutti gli elementi figli dell’elemento Qui c’è la select

36 XSLT - Applicare una regola Template XSLT - Applicare una regola Template Più xsl:apply-templates possono essere usati in un singolo template per fare ordinamenti Ad esempio per creare due tabelle HTML  La prima riempita da domestic sales  la seconda da foreign sales

37 L’elemento L’elemento viene utilizzato per selezionare il valore di un elemento XML ed aggiungerlo all’albero di output </tr>

38 XSLT – Ripetizioni XSLT – Ripetizioni Quando il documento ha una struttura più o meno regolare è utili selezionare un certo template per nodi dello stesso genere l’istruzione xsl:for-each contiene un template, che viene creato per ogni nodo selezionato L’attributo select è obbligatorio

39 L’elemento L’elemento </xsl:for-each>

40 L’elemento L’elemento Serve per ordinare le informazioni Occorre inserire un sort all’interno di un elemento for-each nel file XSL. </xsl:for-each>

41 XSLT Processare seguendo una condizione Esistono due istruzioni in XSLT che supportano il processing condizionale in un template xsl:if L’istruzione xsl:if fornisce un semplice if-then xsl:choose l’istruzione xsl:choose supporta la selezione di una scelta quando esistono varie possibilità

42 L’elemento L’elemento Applicato solo se la condizione è vera some output... some output... </xsl:for-each>

43 L’elemento L’elemento Insieme a ed per test condizionali multipli... some code some code....

44 Ancora l’elemento Ancora l’elemento Applica la regola all’elemento corrente o ai figli. Se aggiungiamo un attributo select processerà solo i figli che match-ano con la richiesta. Si può usare le select per selezionare in che ordine processare i figli

45 Un foglio di stile XSL E’ un documento XML. Deve iniziare con la dichiarazione di documento XML Il TAG è l’elemento radice del foglio di stile

46 XSLT Namespace I parser XSLT devono usare il concetto di namespaces XML per riconoscere elementi e attributi del Linguaggio XSLT Tali elementi sono riconosciuti solo nello stylesheet e non nel documento sorgente

47 XSLT: Dichiarazione di Foglio di Stile L’elemento root che dichiara un foglio di stile XSLT è o. Codice di dichiarazione oppure xmlns:xsl=" xmlns:xsl=" identifica il namespace per XSL Occorre includere l’attributo version="1.0"

48 XSLT - xsl:stylesheet Può contenere, ad esempio i seguenti elementi: xsl:import xsl:include xsl:strip-spacexsl:preserve-space xsl:outputxsl:key xsl:decimal-format xsl:namespace-alias xsl:attribute-set xsl:variable xsl:param xsl:template top-level element: top-level element: elemento che compare come figlio di xsl:stylesheet

49 Un esempio <xsl:stylesheet version="1.0” xmlns:xsl=" xmlns:xsl=" … … … … … … </xsl:stylesheet> Se c’è un import deve trovarsi per primo

50 XSLT: Combinare fogli di Stile diversi Due meccanismi per combinare fogli di stile: meccanismo di inclusione un meccanismo di inclusione che permette agli stylesheet di essere combinati senza cambiare la loro semantica e meccanismo di importazione un meccanismo di importazione che permette ai fogli di stile di sovrascriversi

51 Esempio Tag articolo Link ad altro file Tag vuoto

52 Esempio file.xsl Lo trasforma in un file HTML

53 Risultato links