Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali...

57
Introduzione alle Griglie computazionali - aa 2005-06 1 Introduzione alle griglie Introduzione alle griglie computazionali computazionali Università degli Studi di Napoli Federico II Corso di Laurea in Informatica – III Anno LEZIONE LEZIONE N. 8 Elementi di linguaggio XML

Transcript of Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali...

Page 1: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 1

Introduzione alle griglie computazionaliIntroduzione alle griglie computazionali

Università degli Studi di Napoli Federico IICorso di Laurea in Informatica – III Anno

LEZIONELEZIONE N. 8

• Elementi di linguaggio XML

Page 2: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 2

Sommario

•Introduzione•Dall’HTML all’XML•XML•DTD, XML Schema•Namespaces•XPath•Xsl, Xslt•Xquery

Page 3: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 3

Introduzione

•XML: EXtensible Markup Language•World Wide Web Consortium (W3C) – 1998•Metalinguaggio Universale

linguaggio per la definizione di altri linguaggi o applicazioni

•Unificazione formato di scambio e distribuzione di dati fra diverse applicazioni su diverse piattaforme hw

Separazione fra STRUTTURA (generale) e CONTENUTO (specifico)

•Rapida diffusione Ad uno stesso sorgente corrispondono diverse visualizzazioni

Page 4: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 4

Dall’HTML all’XML

Page 5: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 5

HTML

•Hyper-Text Markup Language•Orientato alla visualizzazione dei dati •Caratterizzato da un insieme limitato e predefinito di

marcatori•Universalmente diffuso e stabile•Semplice•Non descrive la semantica associata ai dati •Introdotte tecnologie accessorie di potenziamento (Applet,

linguaggi di scripting, fogli di stile inseriti per cercare di separare aspetto e struttura del documento )

Page 6: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 7

Web: nuove esigenze

Il WEB è cambiato•Nascita del commercio elettronico (dinamicità dei dati)•Creazione di servizi al pubblico (rilascio di documenti)•Dati scambiati fra organizzazioni diverse

Il modello HTML è inadeguato•alto numero di marcatori•(ma) insieme limitato (e predefinito) di marcatori•non tutte le applicazioni interpretano in modo analogo uno

stesso codice HTML•Marcatura slegata dalla semantica del contenuto

Page 7: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 8

XML

•Orientato alla descrizione dei datiDati utilizzabili da qualsiasi applicazione che comprenda il linguaggio XML (browser, db, cell...)

Uno stesso documento può essere utilizzato per scopi diversi.

•Creazione di marcatori personalizzatiAggiunta di informazioni semantiche ai documenti

Definisce la struttura logica del documento

•XML non è nè il successore nè il sostituto di HTMLHTML stesso può essere ridefinito tramite l’XML (XHTML)

Page 8: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 10

XML

Page 9: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 11

Terminologia

•Documento XML: file contenente il testo e i marcatori •E’ caratterizzato da una struttura LOGICA

modo in cui viene creato un documento

•ed una FISICAcostituita da tutto il contenuto del documento stesso

Page 10: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 12

Struttura Logica (1)

•Documento XML: dichiarazioni, elementi, istruzioni di elaborazione e commenti.

•Prologo:dichiarazione XML: versione delle specifiche XML cui il documento deve conformarsi:

• dichiarazione di codifica (encoding) schema di codifica dei caratteri (ad esempio UTF-8 (default) o EUC-JP)

• dichiarazione di documento autonomo (standalone): yes (default): non sono presenti dichiarazioni di markup esterne al

documento (well formed)

<?xml version= “1.0” encoding=“UTF-8” standalone=“yes”?>

dichiarazione del tipo di documento DTD Descrizione formale dei marcatori usati per qualificare un elemento, i suoi attributi e relazioni fra loro

<!DOCTYPE indirizzo SYSTEM ”indirizzo.dtd”>

Page 11: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 13

Struttura Logica (2)

•elemento Document (radice): Elemento più esterno del documento (necessario);

include tutti i dati di un documento XML, inclusi tutti i sottoelementi, (nidificati) all’interno di questo marcatore <indirizzo>

<via > via Cimarosa, 30 </via> <località>Collegno</località> <provincia sigla=”TO” /> <cap codice=”10148” /></indirizzo>

•Nidificazione: consente di incorporare un oggetto o un costrutto l’uno all’interno dell’altro;Ogni elemento diverso dalla radice deve essere completamente contenuto in uno ed un solo elemento.

Page 12: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 14

XML: albero etichettato•Radice (Element Document)•Nodi: elementi etichettati

nome (element type)

attributi costituiti da coppie nome, valore; a loro volta possono avere dei sottoalberi di elementi, attributi e valori;

•Foglie: attributi (coppie di nome e valore) o valori (stringhe, numeri,

date…)

Pubblicazione

Id=… tipo=..

Erik T. Ray

bibliografia

titolo editoreautore ……

Learning XML ……

Page 13: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 15

Conformità

Documento XML conforme (well-formed): •rispetta le regole relative alla struttura e alla nidificazione prima elencati•tutti gli elementi possiedono marcatori di apertura e di chiusura;eccezione viene fatta per gli elementi vuoti:

<provincia sigla=”TO” />

oppure

<provincia sigla=”TO”></provincia>

•possiede un unico elemento radice

•XML è case-sensitive

Un documento conforme non è detto che abbia senso dal punto di vista semantico.

Page 14: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 16

Validità

•Validazione: consente di verificare se un documento oltre ad essere well-formed è semanticamente sensato.

•Documento XML associato ad una definizione di struttura che descrive il nome e la posizione dei marcatori e degli attributi nel documento.

•Due tecniche di descrizione della struttura di contenuti XML sono:

DTD (Document Type Definition)

XML Schema

Page 15: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 17

DTD & XML Schema

Page 16: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 18

DTD - Document Type Definition

•Specifica delle regole che controllano la struttura di un documento XML.

•Definisce gli elementi leciti all'interno del documento XML•Defininisce la struttura di ogni elemento.

(contenuto ciascun elemento: ordine, quantità di elementi, opzionali o obbligatori- grammatica)

•Definisce attributi e loro valore per ogni elemento•Un documento XML valido segue tutte le regole del DTD •Un documento valido è conforme anche a tutti i limiti di

validità identificati dalle specifiche relative all’XML (well formed)

Page 17: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 19

DTD (2)

•La sintassi slegata dal mondo XML•La dichiarazione della DTD è nel prologo, nella dichiarazione

del tipo di documento:DTD interna: parte integrante del documento

<?xml version=”1.0” ?>

<!DOCTYPE nome_root […contenuto della DTD…]>...

DTD esterna: file separato da quello contenente il documento<?xml version=”1.0” ?><!DOCTYPE nome_root SYSTEM “http://some.host/xmlDtd.dtd”>

...• Vincolo di validità: nome_root = radice del documento.

Page 18: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 20

DTD (3)

•Ogni dichiarazione contenuta nella DTD è delimitata dai simboli “<!” e “>”;

•Tipi di dichiarazione previsti:elementi attributi entità

Page 19: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 29

DTD - Limitazioni

•Necessita di una propria sintassi (editor, parser e processor ad hoc)•Struttura lineare: non risalta il concetto di contenimento degli elementi del documento XML•Impossibilità di definire due elementi figli diversi, aventi lo stesso nome e contenuti in elementi distinti•Impossibilità di definire criteri per la validazione del contenuto degli elementi

Page 20: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 30

XML Schema

Descrive documenti XML attraverso una sintassi XML. Definizione dei nomi dei marcatori e degli attributi di un documento, e la loro posizione all’interno dello stessoCaratterizzazione del contenuto di marcatori e attributi tramite tipi di dati noti (integer, string,…)

Prevede controllo del valore di nodi di tipo testo o attributo tramite espressioni regolari

Page 21: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 31

XML Schema (2)

Dichiarazione di elementi: associa ad un elemento un nome ed un tipo.

Il tipo associato all’evento può essere personalizzato

Definizione di Tipo Complesso (complexType): coinvolge elementi che contengono al loro interno altri elementi e/o attributi

Dichiarazione di attributi: definisce eventuali attributi contenuti

Dichiarazione di elementi: definisce eventuali sotto-elementi, il loro numero e l’ordine con cui si annidano

Definizione di Tipo Semplice (simpleType) è utilizzata come contenuto (testuale) di nodi di tipo elemento o di tipo attributo.

Page 22: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 32

XML Schema (3) - Simple TypeElemento Simple Type è composto da:

primitivi: tipi semplici quali string, boolean, decimal, float,…

derivati da tipi primitivi:

restriction

length, minLength, maxLength (lunghezza lista)

enumeration (lista di valori consentiti)

pattern (espressioni regolari)

whiteSpace (preserve/replace/collapse white-space)

minInclusive, maxInclusive (bounds on numbers)

Page 23: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 33

XML Schema (4) - Simple Type

<simpleType name="may_date">

<restriction base="date">

<pattern value="\d{4}-05-\d{2}"/>

</restriction>

</simpleType>

Page 24: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 34

XML Schema (5) - Complex Type

Si parla di Complex Type in presenza di:Dichiarazioni di attributi

<attribute name="..." type=".." use=".."/>dove type è una definizione di tipo semplice, mentre use può essere optional (default), required, or prohibited (può essere usato in un’altra restrizione ma non direttamente)

<anyAttribute ... />indica qualunque attributo tra quelli contenuti in uno dei namespaces definiti nel documento dell’XML Schema.

Page 25: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 35

XML Schema (6) - Complex Type

Uno tra i seguenti marcatori:empty (default) il complexType è vuoto;

simple content: <simpleContent> ... </simpleContent> il complexType contiene solo testo o un simpleType;

una combinazione di:<sequence> ... </sequence> sequenza specifica di elementi

<choice> ... </choice> gruppo di elementi in alternativa fra loro

<all> ... </all> riferisce un gruppo di elementi senza riferimenti all’ordine

ognuno dei quali con riferimenti ad elementi

<element name="..." minOccurs=".." maxOccurs=".."/>dove name è il nome dell’elemento, minOccurs e maxOccurs indicano rispettivamente il numero minimo e massimo (se elemento diverso da radice) di occorrenze (default: 1)

Page 26: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 36

XML Schema (7) - Complex Type<xsd:complexType name="order_type"> <xsd:choice> <xsd:element name="address" type=”xsd:string”/> <xsd:sequence> <xsd:element name="email" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="phone"/> </sequence> </choice> <attribute name="id" type="unsignedInt" use="required"/></complexType>…<xsd:element name=“order” type=“order_type”/>

Page 27: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 37

XML Schema & DTD

•Gli schema hanno le stesse funzionalità delle DTD•offrono alcuni significativi vantaggi:

sono espressi con la sintassi XML;

godono degli stessi vantaggi propri di XML (es: estensibilità)

possono essere elaborati da applicazioni che riconoscono XML;

includono definizioni di tipo per gli elementi (dataType)

Page 28: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 38

NAMESPACE

Page 29: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 39

Namespace

•Qualificano in modo univoco i nomi degli elementi e degli attributi in un documento XML

•Nomi identificati con una risorsa esterna univoca: URI (Uniform Resource Identifier)

•Nomi qualificati: prefisso + parte locale Prefisso: namespace cui l'elemento appartiene (URI)

Parte locale: nome appartenente a tale namespace.

•Dichiarazione dello spazio dei nomi:Inclusa nel prologo oppure all’interno di un elemento appartenente allo spazio dei nomi, la prima volta che questo si utilizza.

Page 30: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 40

Namespace (2)

<?xml version="1.0"?>

<prodotto>

<codice>cod01</codice>

<prezzo valuta=”eur”>100</prezzo>

</prodotto>

• Significati diversi• Nasce il conflitto se inglobati in un unico documento senza definizione di relativi Namespace...

<?xml version="1.0"?>

<cliente>

<codice>mr1979</codice>

<generalita>

<nome>Mario Rossi</nome>

<indirizzo>

via Sparone 13

</indirizzo>

<cap>10148</cap>

<comune>Torino</comune>

<generalita>

</cliente>

Page 31: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 41

Namespace (3)

<?xml version="1.0"?><ordine xmlns=”http://www.neg.it/NS/ordine” xmlns:prod = http://www.neg.it/NS/prodotto xmlns:cli =”http://www.neg.it/NS/cliente”> <prod:prodotto> <prod:codice>cod01</prod:codice> <prod:prezzo valuta=”eur”>100</prod:prezzo> </prod:prodotto> <cli:cliente> <cli:codice>mr1979</cli:codice> <cli:generalita> <cli:nome>Mario Rossi</cli:nome> <cli:indirizzo>via Sparone 13</cli:indirizzo> <cli:cap>10148</cli:cap> <cli:comune>Torino</cli:comune> </cli:generalita> </cliente></ordine>

Page 32: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 42

XPATH

Page 33: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 43

XPath

Xml Path Language

•Fornisce metodo di navigazione e selezione degli elementi all’interno di un documento XML.

•Dal punto di vista di XPath, il documento XML è un albero:ogni elemento, commento, attributo, stringa di testo (non-markup) è un nodo dell’albero.

•Relazioni tra i nodi semplici: un elemento annidato è un nodo figlio dell’elemento che lo contiene;un attributo è figlio del suo elemento;commenti e testo sono figli dell’elemento che li contiene.

Page 34: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 44

XPath

•Il costrutto principale è definito dalle location path: sequenze di location steps separate da ‘/’esempio:child::section[position()<6] / descendant::cite / attribute::href seleziona tutti gli attributi href di elementi cite contenuti fra le prime 5 sezioni di un documento

•Sintassi di una location step:axis::node-test [predicato 1] [predicato 2] … [predicato 3] axis: seleziona un insieme di nodi candidati (figli del nodo correntemente selezionato, context node).node-test: nodo da usare come filtro sui nodi da cercare;

nameTestnodeType:

predicati (0+): costituiscono un filtro ulteriore da applicare al node-set identificato.

Page 35: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 45

XPath – Location Path

Axes utilizzabili:ancestor:  tutti i genitori del context node fino a rootancestor-or-self: come ancestor più il context node stessoattribute: tutti attribute del context nodechild:  tutti i figli del context node descendant:   eredi del context node a qualunque livello descendant-or-self: come sopra più il context nodeparent:  il genitore del context nodefollowing-sibling tutti i nodi a destra del context node preceding-sibling: tutti i nodi a sinistra del context node following:  tutti i nodi che seguono il context node come posizione ordinalepreceding:  tutti i nodi che precedono il context node come posizione ordinaleself: context node

Page 36: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 46

XPath: gerarchie

ancestor: [c,a]ancestor-or-self: [d,c,a] attribute: [x]child: [f]descendant: [f,g]descendant-or-self: [d,f,g]following: [i,h]following-sibling: [i]namespace: [y]parent: [c]preceding: [b,e]preceding-sibling: [e]self: [d]

<a>

<c>

<b/>

</c>

</a>

<d xmlns:y=“…” x=“…”>

<e/>

</d>

<g/><f>

</f>

<i/>

<h/>

Nod

o

Nod

o

Corr

ente

Corr

ente

Page 37: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 47

XPath – Location Path

Per individuare un particolare nodo su un axis, si usano il suo tipo e/o il suo nome tramite i node tests.

node name:

nomi di nodi o attributi che diventano condizione di filtro

node type:

text() 

comment() 

processing-instruction():  nodi che elaborano istruzioni

node()

Page 38: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 48

XPath - Location Path

attribute::*: tutti gli attributi del nodo correntechild::Prezzo[@Valuta=“Euro”]: elementi Prezzo, figli del nodo corrente con att Valuta = Euroancestor::node(): tutti nodi antenati del context nodedescendant-or-self::test(): testo di tutti i nodi eredi compreso il context nodechild::cd: tutti nodi ‘cd’ figli del nodo corrente; child::cd[position()=1]: seleziona il primo figlio cd del nodo corrente

<?xml version="1.0" encoding="ISO-8859-1"?> <Catalogo> <cd Paese="USA"> <Titolo>The Best</Titolo> <Artista>Bob Dylan</Artista> <Prezzo valuta=‘dol’>10.90</Prezzo> </cd> <cd Paese=‘Ita’> <Titolo>Hide your heart</Titolo> <Artista>Bonnie Tyler</Artista> <Prezzo Valuta=‘Euro’>9.90</Prezzo></cd></Catalogo>

Page 39: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 49

XPath - Funzioni

Funzioni che operano sui node-setcount(node-set)  numero di nodi in un node-set name(node-set)  nome del primo nodo in un node-set

Funzioni che operano sulle stringhe string(value)  cast concat(string, string, ...)  concatenazione di stringhe

Funzioni booleane boolean(value)  cast not(boolean)  negazione

Funzioni che operano sui numeri number(value)  cast

Page 40: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 50

XSL

Page 41: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 51

XSL

eXtensible Stylesheet Language•applicazione in sintassi XML nata per consentire la

rappresentazione di documenti XML sul web •funziona attraverso ‘template’ da applicare agli elementi. •utilizza un doppio processo:

ricostruisce un albero strutturale formatta gli elementi

•Costituito da 3 parti:XSLT: Linguaggio per la trasformazione di documenti XMLXPath: Linguaggio per la d di parti di documenti XMLXSL Formatting Objects: Linguaggio per la formattazione di documenti XML

Page 42: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 52

Xslt

Trasforma contenuti XML in altri contenuti XML

Opera sull’albero associato al documento XML

Tipicamente viene utilizzato per trasformare XML in XHTML

Page 43: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 53

Processo di trasformazione

Usa XPath per definire le porzioni di documento che soddisfano template predefiniti

Su tali porzioni di XML è attuata la trasformazione

Nulla è fatto sul resto del documento che viene lasciato intatto

Page 44: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 54

Dichiarazioni XSL

•XSL stylesheets sono scritti usando XML •La prima linea identifica il file XSL come un file XML•Viene quindi introdotto il riferimento al Namespace per XSL:

<xsl:stylesheet version=“1.0”xmlns:xsl=“http://www.w3.org/1999/XSL/Transform”>

Page 45: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 55

XSL Template

<xsl:template>: contiene la specifica delle regole da applicare ad un specifico nodoViene utilizzato l’attributo “match” per associare il template con un elemento XML Es: <xsl:template match = "/">‘/’ seleziona la radice del documento XML (quindi l’intero documento)chiusura </xsl:template>

Page 46: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 56

Esempio: <?xml version = "1.0"?><xsl:stylesheet version = "1.0“ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match = "/"> <html><head> <title>Module List</title> </head> <body> <table border = "1" bgcolor = "cyan"><thead> <tr> <th>Module Number</th> <th>Name</th> <th>Information</th> </tr> </thead> </table></body></html></xsl:template></xsl:stylesheet>

Page 47: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 57

Associare uno Stylesheet

<?xml version = "1.0"?><?xml-stylesheet type = "text/xsl" href="moduleTable.xsl" ?><moduleList> <module no="CP3024"> <name>Web Information Systems</name> <comment>Easy!</comment> </module> <module no="CP2027"> <name>Prog in Java</name> <comment>Hard</comment> </module></moduleList>

Page 48: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 58

XSL Value-Of

Seleziona il valore di un elemento XML

Lo aggiunge all’output

Es: <xsl:value-of select="name"/>

select contiene un espressione XPathDetermina cosa viene aggiunto all’output (può essere il contenuto di un attributo oppure il testo associato ad un marcatore)

Page 49: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 59

XSL For-Each

Seleziona tutti i nodi di un insieme specificato

ES: <xsl:for-each select = "moduleList/module">

select contiene un espressione XPath che identifica l’insieme di nodi su cui operare

Page 50: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 60

Esempio<?xml version = "1.0"?><xsl:stylesheet version = "1.0" xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"><xsl:template match = "/"> <html> <head> <title>Module List</title> </head> <body> <table border = "1" bgcolor = "cyan"> <thead> <tr> <th>Module Number</th> <th>Name</th> <th>Information</th> </tr> </thead>

<tbody> <xsl:for-each select = "moduleList/module">

<tr> <td><xsl:value-of select = "@no"/> </td> <td><xsl:value-of select = "name"/> </td> <td><xsl:value-of select = "comment"/>

</td> </tr> </xsl:for-each> </tbody> </table> </body> </html></xsl:template></xsl:stylesheet>

Page 51: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 61

…output

Page 52: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 62

XSL Formatting Objects

XSL-FO è un insieme di elementi ed attributi per la definizione di informazioni tipografiche, indipendentemente dal formato finale di presentazioneLo scopo di XSL non riguarda solo le trasformazioni strutturaliFormattazione di contenuti destinati a svariate tipologie di outputAlla trasformazione XSLT segue una seconda trasformazione atta a formattare l’output

Page 53: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 63

XQuery

Page 54: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 64

XQuery

"SQL per XML". •Linguaggio per interrogare e manipolare i dati di un

documento XML•Estensione ed evoluzione di XPath, con cui condivide librerie

di funzioni ed operatori•Applicabile su tutte diverse sorgenti dati XML (database

relazionali, ad oggetti,... )•Sintassi per navigare all’interno di una struttura di un

documento simile a quella prevista da XPath•Query come insieme di proposizioni (come in SQL)

Page 55: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 65

Struttura XQuery

Una query in XQuery è costituita da un'espressione che legge una sequenza di nodi XML od un singolo valore e restituisce come risultato una sequenza di nodi od un singolo valore.

Le espressioni XQuery sono composte da espressioni XPath per individuare i nodi da analizzare e da funzionalità aggiuntive per il specifiche di XQuery per il recupero delle informazioni

• Dichiarazione Namespace (opzionale)

• Definizione funzioni (opzionale)

• Import schema (opzionale)

• L’espressione della Query

spesso si compone di molte espressioni

Query Prolog

Expr Sequence

Page 56: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 66

Esempio

<libro> <titolo>Titolo_del_libro</titolo> <autore>Autore_del_libro</autore> <editore>Editore_del_libro</editore> <prezzo>Prezzo_del_libro</prezzo>

</libro> document("arch_libri.xml")//libro[prezzo > 50] SORTBY (autore)

Ricerca tutti i nodi <libro> che hanno un prezzo maggiore di 50 e ordina il risultato in funzione del nome dell'autore.

Page 57: Introduzione alle Griglie computazionali - aa 2005-061 Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.

Introduzione alle Griglie computazionali - aa 2005-06 72

Riferimenti...

•XML Tutorial: http://www.w3schools.com/xml/default.asp

http://www.w3schools.com/dtd/dtd_intro.asp

http://www.w3schools.com/schema/schema_intro.asp

•XPath Tutorial:http://www.w3schools.com/xpath/default.asp

•XSL Tutorial:http://www.w3schools.com/xsl/xsl_languages.asp

•XQuery Tutorial:http://www.w3schools.com/xquery/default.asp