Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle...

78
Dati Semistrutturati: il linguaggio XML Sistemi di Elaborazione dell’informazione II Corso di Laurea Specialistica in Ingegneria Telematica II anno 4 CFU Università Kore Enna A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu [email protected]

Transcript of Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle...

Page 1: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

Dati Semistrutturati: il linguaggio XML

Sistemi di Elaborazione dell’informazione II

Corso di Laurea Specialistica in Ingegneria TelematicaII anno – 4 CFUUniversità Kore – Enna – A.A. 2009-2010

Alessandro Longheu

http://www.diit.unict.it/users/[email protected]

Page 2: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

2

Generalità XML Struttura di un documento XML Document Type Definition (DTD) XML Schema Utilizzo di XML XLL, XSL Semantica Interdocumentale XQuery

Schema Lezione

Page 3: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

3

Lo sviluppo tecnologico relativo alle reti e il crescente sviluppodella distribuzione di hardware per la comunicazione sempre piùsofisticato (personal computer ma anche palmari e telefoni dallefunzioni via via più complesse) ha reso necessaria la definizionedi standard per lo scambio di documenti e informazioni.

Da molti anni le organizzazioni per la standardizzazione lavoranoalla definizione di linguaggi di scambio. Già nel 1986l‟International Organization for Standardization (ISO) produsseSGML (Standard Generalized Markup Language), un linguaggiofinalizzato a consentire l‟identificazione del ruolo che i vari branidi informazione hanno nei documenti scambiati, delleinformazioni che debbono essere inserite nei documentiscambiati e di quali programmi vanno utilizzati per interpretarecorrettamente le informazioni scambiate. Tutto ciò prima chenascesse il world wide web e si moltiplicassero siti e portali.

XML - Generalità

Page 4: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

4

La complessità dell’SGML ne ha limitato l‟utilizzo perdiversi anni, fino alla definizione di una versionesemplificata, XML (eXtensible Markup Language),avvenuta nel 1996 ad opera del W3C (WWW Consortium) aseguito di un‟iniziativa di Jon Bosak (Sun Microsystems).

XML può essere visto sia come un linguaggio diinterscambio di dati sia come un linguaggio per ladefinizione di linguaggi (meta-linguaggio). Probabilmente ilsuccesso che ha avuto come linguaggio di scambio dipendedal suo essere essenzialmente un meta-linguaggio. Per fareun esempio, WML (Wireless Markup Language, utilizzatoper la comunicazione via WAP) è scritto in XML. Anche RDFe, di conseguenza, DAM+OIL (i linguaggi per il SemanticWeb) sono realizzati in XML.

XML - Generalità

Page 5: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

5

Caratteristiche di XML:

Linguaggio di markup

Standard del W3C

Semplicità di HTML

Flessibilità di SGML

Permette una strutturazione dei documenti

Permette di separare la struttura dallarappresentazione (al contrario di HTML)

XML - Generalità

Page 6: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

6

XML consente di definire delle strutture dati indipendentidalla piattaforma, che possono essere elaborate in modoautomatico.

XML consente di definire propri tag. I tag XML dovrebberoconsentire di descrivere la struttura dei dati, e non la lororappresentazione su browser (come avviene attualmentecon l‟HTML).

XML non consente di specificare come le informazionivanno presentate (visualizzate). A questo scopo ènecessario definire opportuni fogli di stile. E‟ possibiledefinire fogli di stile o utilizzando il linguaggio XSL(eXtensible Stylesheet Language) oppure i CSS (CascadingStyle Sheets).

XML - Generalità

Page 7: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

7

Confronto XML – HTML: Dal punto di vista dell‟organizzazione dei dati XML somiglia

ad HTML. Infatti anche in questo caso si fa uso di tag, conla notazione <TAG> testo </TAG>. La differenza principaleè che mentre in HTML i tag sono predefiniti, in XML ogniutente può definire i propri tag.

Un‟altra differenza (più subdola) è che mentre HTML ècase-insensitive, XML è case-sensitive.

In secondo luogo l‟XML è molto più preciso dell‟HTMLriguardo la chiusura dei tag: ad ogni <TAG> corrispondesempre una chiusura </TAG>.

Possono inoltre essere definiti tag vuoti ma la loro sintassi è<TAG/>.

XML - Generalità

Page 8: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

8

Rex Stout è l’autore di molti romanzi gialliaventi come protagonisti il famoso Nero Wolfe e il suo aiutante e narratore Archie Goodwin

<?xml version=“1.0”?><autore>Rex Stout</autore> è l’autore di molti

<genere>romanzi gialli</genere> aventi come protagonisti il famoso <protagonista>Nero Wolfe</protagonista>

e il suo aiutante e narratore<narratore><protagonista>

Archie Goodwin</protagonista></narratore>

XML - Generalità

Esempio di file XML:

Page 9: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

9

Permettendo l‟annidamento, un documento XML può essererappresentato mediante una struttura ad albero. Adesempio:

<?xml version=“1.0”?><autore><nome>Rex</nome><cognome>Stout</cognome></autore

>è l‟autore di molti <genere>romanzi gialli</genere>aventi come protagonisti il famoso<protagonista attributo=“famoso”><nome>Nero</nome>

<cognome>Wolfe</cognome></protagonista>e il suo aiutante e narratore<narratore>

<protagonista mansione=“aiutante”><nome>Archie</nome><cognome>Goodwin</cognome>

</protagonista></narratore>

Struttura di un documento XML

Page 10: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

10

Graficamente

radice documento

autore genere protagonista narratore

protagonistanome cognome

Rex Stout

Romanzo

giallo

Nero Wolfe

Archie Goodwin

nome cognome

nome cognome

Struttura di un documento XML

Page 11: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

11

Un documento XML è costituito da tre parti, che possonoessere contenute in tre file diversi: una Document Type Definition (DTD): è l‟insieme delle regole

che definisce la struttura dei dati, ovvero per la definizione deglielementi, degli attributi e delle loro correlazioni (la DTD definisce unvero linguaggio con un proprio vocabolario e regole sintattiche). LeDTD sono contenute alternativamente nel documento XML vero eproprio oppure in un file di testo con estensione dtd;

un foglio di stile: specifica le regole con cui un documento deveessere visualizzato da un applicativo (browser, word processor…);

il documento XML vero e proprio: i dati, organizzati secondo lastruttura definita dalla DTD. I veri e propri documenti XML sonocontenuti in file di solo testo con estensione xml.

Come nel caso dell‟HTML i dati possono alternativamente esserescritti in file oppure essere generati dinamicamente da applicativiquali i sistemi per la gestione di banche dati.

Struttura di un documento XML

Page 12: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

12

Esempio di un documento dati XML:

Struttura di un documento XML

Per consentire a un applicativo di utilizzare i dati in questione, inviare isoli dati etichettati non è sufficiente: non è possibile che l‟applicativopreveda tutti i possibili tag, strutture.

D‟altro canto i tag personalizzati in qualche modo specificano il ruoloche un brano di informazione ha all‟interno del documento.

I vari tag (<persona>, <nome>) sono definiti nella DTD del documento,che può essere memorizzata su un file a parte oppure inclusa neldocumento XML.

Page 13: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

13

In generale un documento dati XML è diviso in tre parti: un prologo,un corpo e un epilogo.

Il corpo del documento XML contiene dei dati strutturati in un albero.L'albero è espresso da un elemento radice che contiene tutti gli altrielementi e i dati del documento. Tutto ciò che precede l'elemento radicecostituisce il prologo del documento, ciò che lo segue l'epilogo.

Il prologo di un documento è molto importante: in esso sono contenutedirettive utili ai programmi che utilizzeranno il documento. In particolare undocumento XML comincia con <?xml version=“1.0”?> Qualora il documento utilizzi tag definiti in una DTD esterna occorre

indicarlo ai programmi In questo caso si ha<?xml standalone=“no”?>

Occorrerà poi aggiungere al prologo l'informazione relativa a dove èmemorizzata la DTD. A tal fine si utilizza <!DOCTYPE root SYSTEM“file.dtd” >, dove root è l'elemento che deve essere utilizzato comeradice dell'albero in cui i dati sono strutturati, SYSTEM è una parolariservata del linguaggio, e file.dtd indica la posizione occupata dal nomedel file in cui la DTD è memorizzata (ad esempio un‟URL).

Struttura di un documento XML

Page 14: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

14

Esempio di documentodati XML con DTDesterno

Struttura di un documento XML

Page 15: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

15

La DTD contiene la definizione della struttura dei dati di uno opiù documenti. Quando si parla di struttura dei dati di undocumento si assume che il documento possa esserericorsivamente scomposto in parti (per esempio un libro puòessere scomposto in capitoli, che possono essere suddivisi insezioni e così via)

in certi casi i vari elementi devono rispettare un particolareordine di precedenza (per esempio le voci di una rubricatelefonica potrebbero prevedere il nome di una persona comeprimo elemento, seguito dal numero di telefono e dall‟indirizzo).

La strutturazione dei documenti XML avviene attraverso ladefinizione di tutti gli elementi che possono denotare ildocumento e delle loro inter-relazioni

in altri termini la DTD di un documento contiene le definizioni deitag e della struttura attesa dei dati.

Document Type Definition

Page 16: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

16

Un elemento è definito utilizzando la sintassi: <!ELEMENT nome_elemento regola> nome_elemento identifica un nuovo tag ed è una sequenza di

caratteri che inizia con una lettera o un underscore e può poicontenere lettere, cifre, trattini, punti. Nel caso in cui si usino inamespace è anche possibile utilizzare “:”

Nel caso più semplice la regola può valere alternativamente: ANYoppure #PCDATA ANY è una parola chiave che indica che fra <nome_elemento>

e </nome_elemento> può essere contenuta qualsiasi cosa,ovvero possono essere contenuti sia dati (tipicamente deltesto, “PCDATA” sta per parsed character data) sia altrielementi. Se anziché ANY si utilizza #PCDATA non potrannoessere contenuti altri elementi.

Document Type Definition

Page 17: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

17

Esempio

Con riferimento ai tag utilizzati sopra, <persona> dovràavere associata come regola ANY mentre <nome>potrebbe avere associato un semplice #PCDATA.

Questi sono solo i casi di regola più semplici: regole chenon ci permettono di strutturare i dati ma in generale leregole sono proprio utilizzate per strutturare l‟informazionedefinendo un modo in cui gli elementi sono composti di altrielementi.

Document Type Definition

Page 18: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

18

La DTD prima definita non correla in alcun modo glielementi definiti: per nessun motivo siamo tenuti adescrivere una persona in termini di nome, cognome ecodice.

Normalmente pero‟, nome, cognome e codice dovrebberoessere le componenti in cui è strutturata l‟informazionerelativa a persona.

Se potessimo esprimere questa correlazione potremmoanche realizzare applicativi che controllano il modo in cuisono descritti i dati, verificando che la struttura intesa siarispettata. In generale è possibile strutturare un elementoutilizzando sequenze di altri elementi, che possono ricorrereanche più volte.

Document Type Definition

Page 19: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

19

Nel caso di persona, per indicare che l‟informazione relativaa una persona è strutturata nella sequenza di nome,cognome e codice si indica:

La strutturazione può avere più livelli ed essere di variotipo. Consideriamo per esempio il documento che contieneinformazioni relative a Giorgio Rossi, Anna Bianchi edeventuali altre persone. E‟ possibile regolamentare lastruttura dell‟intero documento dichiarando che esso ècostituito da una sequenza di persone.

Document Type Definition

Page 20: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

20

il simbolo * (asterisco) indica una sequenza eventualmentevuota, costituita da un numero imprecisato di persone. Se sivuole indicare che la sequenza non può essere vuota (l‟elencodeve contenere almeno una persona) si utilizza il simbolo +. Seinvece l.elemento può occorrere al più una volta (quindi 0oppure 1) si utilizza il simbolo ?

L‟elemento più astratto (quello definito in termini di altri elementima che non è utilizzato all‟interno di nessuna regola;nell‟esempio è proprio elenco) è detto radice. È necessario che inuna DTD sia definito sempre un elemento radice.

Document Type Definition

Page 21: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

21

Oltre ai simboli visti le regole possono contenere anche l‟operatore |(oppure) che indica un‟alternativa. Supponiamo, per esempio, che ilcampo codice sia opzionale nella definizione di persona. Potremmoquindi scrivere:

Che si legge: un elemento persona è strutturato in un nome, seguito daun cognome, seguito da un codice oppure da un nome seguito da uncognome. Le parentesi tonde sono utilizzate per dare maggioregranularità alla sintassi definita.

Si osservi che le regole per definire una certa struttura non sononecessariamente uniche, tornando al caso precedente è possibiledefinire anche la seguente regola, equivalente a ((nome, cognome,persona) | (nome, cognome))

Le regole più compatte sono generalmente più efficienti, anche se nonsempre sono altrettanto intuitive.

Document Type Definition

Page 22: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

22

In accordo al DTD ora definito, un esempio corretto ed unoscorretto di file XML:

Document Type Definition

Page 23: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

23

Gli elementi vuoti sono definiti utilizzando la parola chiaveEMPTY:

gli elementi vuoti possono avere attributi ma non contengono nullaal loro interno; un esempio ripreso dall‟HTML e‟ il tag IMG chedescrive un‟immagine:

<IMG src=“./images/prova.jpg” border=1></IMG> fra <IMG…> e </IMG> non si pone nulla; nel caso specifico,

poiche‟ l‟HTML lo permette, e‟ quasi sempre assente </IMG>

nel caso di DTD che non si intendano utilizzare per descrivere ilcontenuto di più documenti XML è possibile inserire la DTDdirettamente nel prologo del documento, all'interno delladirettiva <!DOCTYPE ...>.

In tal caso la specifica 'SYSTEM <URL_della_dtd> è sostituitadalla DTD medesima inserita fra parentesi quadre.

Document Type Definition

Page 24: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

24

DTD

Esempio diDTDincorporato

Page 25: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

25

Gli elementi possono essere caratterizzati meglio tramite la specifica diuna lista di attributi.

Considerando il tag <persona> prima definito, consideriamo inparticolare il campo codice. Codice è attualmente definito come unelemento della stessa DTD, potrebbe però tornare utile rappresentarloin modo diverso, ad esempio: <persona codice=“12343”> …</persona>. In questo caso codice non è più un elemento bensì è unattributo di <persona>.

Dal punto di vista sintattico un attributo è così specificato:

nome_elem è un riferimento all‟elemento caratterizzato dall‟attributo(nell‟esempio persona),

nome_attr è il nome dell‟attributo in questione (codice) tipo indica il tipo di valore che l‟attributo può assumere valore_default è il valore che l‟attributo assume quando non specificato

diversamente nel documento.

Document Type Definition

Page 26: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

26

Il tipo di un attributo può essere alternativamente:una lista di alternative: alt1 | alt2 | . | altNCDATA: sequenza di caratteri (una stringa)ENTITY: una delle entità dichiarate nella DTD (indicato nel seguito)ENTITIES: più entità separate da spaziID: attributo che funge da identificatore di uno specifico elemento (es. il codicefiscale è un identificatore di una persona); utilizzando il valore degli attributi ID èpossibile correlare dati presenti nel documento. Ogni entità può avere al più unidentificatore.IDREF: i valori ammessi sono identificatori di altri elementi (es. per identificare ilpadre di una persona posso utilizzarne il codice fiscale). La coppia di tipi IDREF/IDconsente la correlazione dei dati.IDREFS: sequenza di IDREF separati da spaziNMTOKEN: contrassegno di un nome XML; è più restrittivo di CDATA in quantoindica che i valori che l'attributo può assumere devono essere costituitiesclusivamente da lettere, cifre, punti, caratteri di sottolineatura, trattini e due punti.NMTOKENS: sequenza di NMTOKEN separati da spaziNOTATION: notazione dichiarata nella DTD (illustrata in seguito)

Document Type Definition

Page 27: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

27

Document Type Definition

Il campo valore_default può assumere diversi valori: una stringa di caratteri. la parola chiave #REQUIRED. In questo caso, pur non

esistendo un valore di default predefinito, è necessarioche l'utente (o il sistema), che scrive il documento XML,specifichi sempre un valore per l'attributo in questione,per ogni occorrenza dell'elemento da esso caratterizzato.

parola chiave #IMPLIED (l‟attributo è opzionale e il suovalore può non essere specificato)

coppia #FIXED valore, dove #FIXED è una parola chiaveche indica che l‟attributo ha il valore costante valore.

Page 28: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

28

Alcuni esempi di definizione di attributi: <!ATTLIST persona cod_fis ID #REQUIRED>: codice fiscale è un identificatore

di persona, è necessario specificarne il valore ma non esiste un valore didefault

<!ATTLIST persona azienda CDATA #FIXED .Pinco Palla spa.>: supponendo discrivere una DTD per un file che conterrà le informazioni relative ai dipendentidella ditta “Pinco Palla spa.”, l‟attributo “azienda” è sempre uguale al valore“Pinco Palla spa”.

<!ATTLIST persona genere (uomo | donna) #REQUIRED>: attributonecessario, i valori ammissibili sono solo due: uomo oppure donna

<!ATTLIST persona data_nascita CDATA #IMPLIED>: la data di nascita non èun attributo necessario, è di tipo CDATA, quindi sostanzialmente una qualsiasisequenza di caratteri; non si è utilizzato NMTOKEN perché le date possonocontenere il carattere slash (/)

<!ATTLIST persona padre IDREF #IMPLIED>: l‟attributo “padre” non ènecessario ma qualora specificato deve essere l‟identificatore di un altroelemento. Si noti che non si specifica di quale elemento si tratti (se unapersona o altro)

Document Type Definition

Page 29: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

29

Un esempio di DTD completo:

Document Type Definition

Page 30: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

30

DTD

Supponendo chela DTDprecedente siamemorizzata nelfile “organizer.dtd”possiamo scrivereun documentoXML che lautilizza:

Page 31: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

31

come decidere se rappresentare una componente di un‟entità comeun attributo o come un‟altra entità a parte? Nel caso degliidentificatori occorre definirli come attributi in quanto solo inquesto modo potranno essere utilizzati per fare riferimento da unelemento ad un altro. Anche nel caso in cui si conoscano a prioritutti i possibili valori che una componente dell‟elemento puòassumere è bene utilizzare un attributo, idem quando si specificaun valore di default.

L‟unico caso in cui potrebbe invece essere meglio utilizzare un altroelemento è il caso di CDATA #IMPLIED: una stringa di caratteripriva di valore di default, non costretta ad appartenere ad uninsieme limitato di alternative.

In generale, tuttavia, è difficile o addirittura impossibile effettuareuna scelta oggettiva, in quanto non vi è un chiaro vantaggionell'una oppure nell'altra soluzione. In questi casi il programmatoreè libero di utilizzare la forma che preferisce.

Document Type Definition

Page 32: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

32

Oltre agli elementi e ai loro attributi, una DTD puòcontenere la definizione di un certo numero di entità. Leentità corrispondono sostanzialmente a delle macro:consentono di attribuire a una sequenza di caratteri unnome convenzionale, che può essere utilizzato (percomodità) al posto della sequenza stessa, e ve ne sono divari tipi: generali, parametriche, esterne, non analizzate

Il primo tipo è quello delle entità generali. Un’entitàgenerale attribuisce un nome convenzionale a una stringadi caratteri utilizzata in uno o più documenti XML; vienedefinita nel seguente modo:

Document Type Definition

Page 33: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

33

Per esempio supponiamo di dover gestire la modulistica diuna ditta (tale Pinco Palla srl) e che il nome della ditta inquestione compaia in tutti i moduli. Se i moduli inquestione sono memorizzati come documenti XML, anzichéinserire in ciascuno la stringa “Pinco Palla srl”, potremmodefinire un'entità id_ditta nel seguente modo:

e poi utilizzare id_ditta usando la notazione &nome_entità;nei documenti XML veri e propri

l‟utilizzo è analogo ai caratteri speciali utilizzati in HTML,come ad esempio “&agrave;” che produce “à”

Document Type Definition

Page 34: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

34

Il vantaggio è duplice: da un lato avremmo uniformità di presentazione,dall'altro si puo‟ aggiornare tutta la modulistica in un colpo solo,semplicemente sostituendo la stringa associata ad id_ditta nell‟unicadefinizione dell'entità contenuta nella DTD.

L'operazione di sostituzione del nome di un‟entità con la sequenza dicaratteri corrispondente (sequenza di sostituzione) è detta risoluzionedell'entità ed è effettuata automaticamente dagli applicativi preposti adelaborare documenti XML (browser, editor). All‟atto della fruizione deidati l‟utente non leggerà il nome dell‟entità ma la sequenza di caratteriche rappresenta.

Le entità generali vengono risolte esclusivamente nei documenti XML,quindi è vietato utilizzare un'entità generale in qualche punto di unaDTD. Per esempio, il codice seguente, nel quale si associa un nome auna regola utilizzando un'entità generale e poi si usa il nome al postodella regola nella definizione di un'entità è sbagliato:

Document Type Definition

Page 35: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

35

Un'entità parametrica può essere utilizzata solo all'interno delle DTD. Ladefinizione di un'entità parametrica si distingue per la presenza di un caratterepercentuale % posto dopo !ENTITY e da applicare anche nell‟utilizzo con%nome;. Il funzionamento è analogo a quello delle entità generali, ma siapplicano alle DTD. L'esempio precedente può essere riscritto utilizzandoun'entità parametrica:

Le entità esterne consentono di includere in un documento il contenuto di unaltro documento accessibile attraverso un URL. Per includere il documentoesterno dovremo definire un'entità esterna corrispondente all'URL della paginaed utilizzarlo all'interno della pagina da noi definita. Quello che otterremo nonsarà un link, bensì una pagina parte del cui contenuto sarà stato importato daun'altra fonte. Le entità esterne sono definite nella DTD come segue:

nome è il nome dell'entità definita, url il suo indirizzo. Per richiamare un'entitàesterna si utilizza la notazione già vista &nome;

Document Type Definition

Page 36: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

36

L'ultimo tipo è l'entità non analizzata. Le entità non analizzatesono simili a quelle esterne, la differenza è che mentre le primefanno riferimento ad altri documenti XML, queste ultime fannoriferimento a documenti non-XML. È opportuno che i due casivengano distinti in quanto mentre i documenti XML devono essereanalizzati dal parser, i documenti non-XML sono direttamente inviatiall'applicativo finale (browser, data-base manager, editor, ...). La lorodefinizione segue lo schema:

La differenza rispetto alle entità esterne è la parola chiave NDATAseguita da un nome convenzionale che indica il tipo di informazionecontenuta nel documento non analizzato. Nel caso di un'immaginein formato gif, per esempio, il tipo sarà GIF89a.

Document Type Definition

Page 37: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

37

Le notazioni sono una componente del linguaggio usatoper scrivere DTD, e sono legati alle entità non analizzabili.Sono utilizzati per compiere delle associazioni fra un nomeutilizzato come tipo di NDATA e una specifica più fine. Ladifferenza rispetto alle entità è che tali associazioni nonsono finalizzate alla sostituzione. Un uso tipico consistenell'indicare quale applicativo consente di trattare un certotipo di documenti. Per esempio:

Questa specifica associa l'applicativo “netscape.exe” al tipodi documento non analizzabile jpeg.

Document Type Definition

Page 38: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

38

Tornando agli attributi, un attributo ENTITY assume comevalori entità definite all'interno della DTD. Per esempio:

Nell'esempio, motto è un attributo dell'elemento ditta edassume come valori delle entità. Se in qualche punto dellaDTD è definita l'entità:

Nel documento XML potremo scrivere:

Si osservi che quando si usa un'entità come valore di unattributo non compaiono i delimitatori “&” e “;”

Document Type Definition

Page 39: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

39

Nell'esempio è stata utilizzata un'entità generale, tuttavia il casopiù frequente di utilizzo degli attributi entità è finalizzato a crearedei collegamenti con dati esterni da non analizzare, come peresempio le immagini.

Si pensi al tag <IMG> di HTML: questo tag ha un modificatore(src) il cui valore è l'identificatore di un file immagine, che verràmostrato dal browser. L'immagine non è un documento HTML,quindi il browser deve trattarla in un modo particolare, adeguatoal formato dei dati che contiene.

Supponiamo di voler realizzare qualcosa di analogo in XML. Inparticolare, supponiamo di voler definire un elemento mia_img,che circonda del testo che costituirà la didascalia dell'immagine eche ha un attributo sorgente analogo a SRC di <IMG>: taleattributo assumerà come valore l'URL di un file immagine

Document Type Definition

Page 40: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

40

Nella DTD si avrà allora:

L'elemento mia_img in un file XML verrà usato nel seguentemodo:

Document Type Definition

Page 41: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

41

L'ultimo caso di attributo lasciato in sospeso è l'attributo di tipoNOTATION. Le notazoni sono usate per associare tipi didocumenti non XML a strumenti necessari per gestire talidocumenti. Consideriamo il caso di documenti multimediali. Unesempio potrebbe essere:

Supponiamo di avere definito nella nostra DTD un elemento file,che identifica in modo generico un elemento multimedialecompreso in un documento. Supponiamo inoltre di volerassociare a tale elemento una proprietà che indica quale playerva utilizzato. In questo caso possiamo utilizzare un attributo ditipo NOTATION, che assume valori nell'insieme {avi, jpg, wav}:

Document Type Definition

Page 42: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

42

Un esempioriassuntivo:

DTD

Semantic WEB - Longheu - TESEO

“http://www.mysite.it/pasta.mpg”

Page 43: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

43

Un esempioriassuntivo:

DTD

Semantic WEB - Longheu - TESEO

Page 44: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

44

Un documento è valido quando rispetta le regole espresse dallaDTD.

Un documento si dice invece ben formato quando rispetta legeneriche regole di scrittura di un documento XML, che sono: i valori degli attributi devono essere racchiusi fra doppi apici i tag devono sempre essere chiusi aperture e chiusure dei tag non devono intersecarsi (es.

<nome> Anna <cognome></nome>Rossi </cognome> èsbagliato)

I sistemi che verificano la correttezza (sintattica) dei documentiXML sono detti parser. A seconda che tali strumenti verifichino lacorrettezza del documento rispetto alla DTD indicata oppurerispetto alle generiche regole sintattiche di XML solamente,vengono detti parser validanti o parser non-validanti.

Validazione di documenti XML

Page 45: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

45

Oltre la validità e l‟essere ben formato, un documento XMLdovrebbe rispettare alcuni requisiti.

Quando si utilizza infatti XML per memorizzare dati, bisogna fareattenzione all‟utilizzo corretto degli elementi del modello dei dati:elementi, attributi, contenuti, gerarchie. Forniamo alcune lineeguida.

Una prima indicazione è che i dati devono essere memorizzatinel contenuto degli elementi. Ad esempio:<libro><titolo>I Promessi sposi</titolo></libro>

Va preferito a<libro titolo="I Promessi sposi" />

Stesura di documenti XML

Page 46: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

46

I metadati non dovrebbero apparire negli attributi o nei nomi deglielementi, nell‟esempio “titolo” è un metadato, non va come contenuto.<libro>

<caratteristica><nome>titolo</nome> <valore>I Promessi sposi</valore>

</caratteristica></libro>

Uso scorretto delle gerarchie<db>

<titolo>I Promessi sposi</titolo><autore>Manzoni</autore><titolo>Notre-Dame de Paris</titolo><autore>Hugo</autore>

</db> I due titoli e i due autori sono separati solo dall‟ordine degli elementi,

mentre si riferiscono a due libri diversi. <titolo> e <autore> devonoessere figli di un elemento <libro>, non di <db>.

Stesura di documenti XML

Page 47: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

47

le DTD non sono l'unico modo per definire la struttura di un documento XML.Un'alternativa è data dagli XML Schema. Le DTD derivano dal linguaggioSGML, di cui XML è una semplificazione, gli schemi XML sono natisuccessivamente.

Le principali differenze rispetto alle DTD sono che da un lato è possibileesprimere vincoli di tipo, dall'altro è possibile esprimere vincoli di cardinalità.Riguardo il primo tipo di vincolo, consideriamo un elemento peso definito come<!ELEMENT peso (#PCDATA)>. In un documento, sono ammessi utilizzi come<peso>15</peso>, <peso>Anna</peso>, <peso>una giornata inbarca</peso>. Intuitivamente potremmo pensare che si tratti di una misura,quindi che il primo uso sia l'unico corretto però ci è impossibile far sì che ilparser controlli che peso racchiuda solo dei numeri, quindi tutti e tre gli usisono formalmente corretti. La seconda differenza riguarda i vincoli dicardinalità: abbiamo visto che nelle regole che specificano la struttura deglielementi possono essere utilizzati gli operatori di ricorrenza * e +. Nonpossiamo però esprimere strutture del tipo “l'elemento A è costituito da unalista di almeno 2 ma non più di 5 elementi B”.

XML Schema

Page 48: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

48

DTD (Document Type Definition) Specifica annidamenti e combinazioni permesse

di elementi, attributi ecc. Un doc XML conforme a DTD = valido

XML Schema Definisce lo schema sintattico con la stessa

sintassi XML Fa uso di namespace e definizione di tipi Un doc XML conforme a XML Schema = schema

valido

XML Schema

Page 49: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

49

Definizioni di tipo• Semplici

<simpleType name=„stringlist‟ base=„string‟ derivedBy=„list‟ />

• Complessi<complexType name=„indirizzo‟><sequence>

<element name=„nome‟ type=„string‟ /><element name=„via‟ type=„string‟ /><element name=„cap‟ type=„decimal‟ /><element name=„citta‟ type=„string‟ />

</sequence></complexType>

Dichiarazioni di elementi e attributi<element name=„elenco‟ type=„stringlist‟>

Roma,Londra,

Parigi,Lisbona,Madrid

<nome>...</nome>

<via>...</via>

<cap>00100</cap>

<citta>Roma</citta>

XML Schema

Page 50: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

50

Schema<schema xmlns=’http://www.w3.org/1999/XMLSchema’

targetNamespace=’http://lazoo.org’><simpleType name=’comment’ base=’string’>

<maxLength value=’1024’></simpleType><element name=’about’ type=’comment’><element name=’autore’ type=’string’>

</schema>

Istanza schema-valida

<?xml version=„1.0‟ xmlns=„http://lazoo.org‟ ?><autore>Luigi Pirandello</autore><about>romanziere e commediografo</about>

XML Schema

Page 51: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

51

Namespace = collezione di nomi identificati da URI (UniformResource Identifier)

Associati a elementi e attributi di documenti XML Permettono la visibilità al di fuori del documento Esempio di libreria online

XML Namespaces

books.org

isbn.org

ecommerce.org

/schema

XML

XML

XML

<author>Dino Buzzati</author>

<title>Il deserto dei Tartari</title>

<isbn>88-06-13848-4</isbn>

<author> </author>

<title> </title>

<isbn> </isbn>

Page 52: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

52

<?xml version=„1.0‟xmlns:books=’http://www.books.org/’xmlns:store=’http://ecommerce.org/schema’xmlns:isbn=’http://www.isbn.org/’ ?>

<store:bookstore><books:book>

<books:title>Il deserto dei Tartari</books:title><books:author>Dino Buzzati</books:author><isbn:number>88-06-13848-4</isbn:number>

</books:book><books:book>

<books:title>L‟isola di Arturo</books:title><books:author>Elsa Morante</books:author><isbn:number>88-06-13838-3</isbn:number>

</books:book></store:bookstore>

XML Namespaces

Page 53: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

53

Alcuni utilizzi di XML:Come sintassi di serializzazione per altri linguaggiMarkup di risorse (documenti, pagine web, configurazioni)Come formato uniforme per lo scambio dei dati (molti DBMSutilizzano l‟XML per import/export dati)

Formato OpenDocument per documenti in applicazioni SOHOMappe Google in XML SMIL (synchronized multimedia interface language), unlinguaggio XML-based per presentazioni multimediali

WSDL (Web Service description language), XML-based SVG (Scalable Vector Graphics), per le immagini vettoriali MathML, linguaggio per la rappresentazione e l‟elaborazione di

espressioni matematiche X3D, linguaggio XML-based derivato dal VRML per la modellazione

di scenari 3D

Utilizzo di XML

Page 54: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

54

Come sintassi di serializzazione per altri linguaggi

Esempio: Java XML

class Hello

{

static public void main(String[] args)

{

System.out.println(“Hello world!”);

}

}

Utilizzo di XML

Page 55: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

55

Come sintassi di serializzazione per altri linguaggi Esempio: Java XML

<?xml version=“1.0” ?>

<class name=“Hello”>

<method name=“main” static=“true” scope=“public” returnType=“void” input=“String[]”>

System.out.println(“Hello world!”);

</method>

</class>

Utilizzo di XML

Page 56: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

56

Come markup per risorse (documenti, pagine web, configurazioni)

Es. classificazione delle istanze di un documento:

Tra i precursori del genere giallo troviamo

<autore>Edgar Allan Poe</autore>, con <romanzo genere=“giallo”>I delitti della Rue Morgue</romanzo>, e <autore>Arthur Conan Doyle</autore> con il suo <personaggio>Sherlock Holmes</personaggio>.

Altro esempio quello degli editor di testo: diversi editorutilizzano (in modo trasparente all‟utente) il linguaggio XML permantenere le informazioni relative ai documenti costruiti.Questo significa che il testo scritto viene man manoopportunamente “taggato” in XML dall‟editor.

Ai vari tag sono inoltre associate regole di visualizzazione (opresentazione) e l‟editor le usa per far sì che ad esempio untesto dichiarato in grassetto, oltre ad essere descritto in XML,appaia agli occhi dell‟utente in grassetto.

Utilizzo di XML

Page 57: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

57

Come sintassi di serializzazione per altri linguaggi

Come markup per risorse (documenti, pagine web, configurazioni ecc.)

Come formato uniforme per lo scambio dei dati

Es. SOAP (Simple Object Access Protocol)

<?xml version="1.0"?>

<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Body xmlns:m="http://www.stock.org/stock">

<m:GetStockPrice>

<m:StockName>IBM</m:StockName>

</m:GetStockPrice>

</soap:Body>

</soap:Envelope>

Utilizzo di XML

Page 58: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

58

L‟XML fornisce un complesso meccanismo per la gestione dei link,definiti dallo standard XML Linking Language (XLL), tramite cui:

specificare quando un link deve attivarsi (manualmente o meno); specificare cosa effettuare a seguito dell‟attivazione (aprire una

nuova finestra, sostituire la precedente, o sostituire l‟elementoiniziale;

collegare l‟elemento iniziale a più risorse (link semplici o estesi),specificando la regola per ogni singolo locator;

definire una gerarchia di documenti tramite l‟X-pointer, così dapoter supportare link assoluti (es puntare alla radice, puntare alterzo figlio), o relativi alla gerarchia (es puntare al precedentedocumento), eventualmente completandoli con string matching,ad esempio:

ROOT.CHILD(3,CHAP).STRING(7,”Napoleone”)trova la settima occorrenza della stringa “Napoleone” all‟internodel terzo capitolo del documento puntato.

Semantic WEB - Longheu - TESEO

XML - XLL

Page 59: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

59

L‟XML fornisce un complesso meccanismo per larappresentazione dei documenti, l‟eXtensible StylesheetLanguage (XSL).

l‟XSL si basa sulle template rules, regole che consentono diintercettare una sequenza richiesta di tag all‟interno deldocumento XML da formattare e di associarvi un opportunooggetto di formattazione.

L‟XSL processor prende in ingresso il documento XML darappresentare (source tree), vi applica le template rules e generail documento con i soli oggetti di formattazione (output tree).Esso viene dato ad un formatter in cui viene dettagliatamentedescritto come rappresentare ogni oggetto di formattazione. Ilformatter deve essere incluso nei browser.

XML - XSL

Page 60: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

60

Sebbene un documento sia un buon modo per specificareinformazioni, un documento, ancorché espresso in formato XML,è poco adatto al Web che per sua natura è distribuito edecentralizzato e, quindi, informazioni su una particolare entitàpossono essere localizzate ovunque. Infatti, con XML è possibiledescrivere adeguatamente i contenuti di un documento ma lasintassi XML non definisce alcun meccanismo esplicito perqualificare le relazioni tra documenti.

In questo non è di aiuto neppure il meccanismo dei collegamentiipertestuali reso popolare dall'HTML perché amorfo, cioè nonprevede la possibilità di descrivere il legame definito.

Semantica Interdocumentale

Page 61: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

61

Ad esempio, sebbene in un documento (ad es. una pagina HTML) siapossibile parlare di un Signor Napolitano ed esprimere semanticamentequesto con opportuni tag, è poi difficile capire se due documenti cheparlano di un Signor Napolitano si riferiscono alla stessa persona conconseguente scarsa qualità dei risultati restituiti dai motore di ricerca.

Nella migliore delle ipotesi sarebbe possibile dedurlo se, tra gli altri, vifossero dati anagrafici semanticamente definiti e sufficientementeprecisi (ad es. il Codice Fiscale) o collegamenti ipertestuali debitamentedescritti che li collegano.

Poiché, però, i diversi documenti sono redatti per scopi differenti,indipendentemente gli uni dagli altri e normalmente senza condividereun comune formato XML, informazioni utili quali l'indirizzo postale o ladata di nascita finiscono per essere espresse in modo non uniforme,rendendo ardua ogni deduzione automatica.

Semantica Interdocumentale

Page 62: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

62

Per comprendere il problema della rappresentazionedell'informazione semantica dei documenti online, consideriamoun motore di ricerca: i motori di ricerca consentono di reperirepagine presenti in rete ed inerenti un certo argomento (peresempio “il linguaggio XML”), in quale modo può un sistema diquesto tipo valutare che una certa pagina sarà di interesse perl'utente?

Tale valutazione riguarda il contenuto della pagina, non il nomedell'autore o l'URL alla quale è disponibile.

Una soluzione grezza consiste nello scorrere il testo contenuto intutte le pagine di tutti i siti web del mondo e restituire l'elenco diquelle che contengono la parola di interesse.

Semantica Interdocumentale

Page 63: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

63

Questa soluzione non è molto raffinata, per una discretavarietà di motivi: Il testo potrebbe contenere la scritta “questa pagina non

riguarda il linguaggio XML” Il testo potrebbe riguardare tutt'altro argomento e poi

contenere una frase del tipo “Suggeriamo al lettoreinteressato di studiare anche il linguaggio XML”

Il testo potrebbe riguardare il linguaggio XML ma esserescritto in inglese, per cui si parlerebbe di “XMLlanguage”

Il testo potrebbe riguardare l'argomento di interesse maapprofondimento di aspetti diversi (XML per principianti,XML per la realizzazione di banche dati, XML e creazionedi nuovi linguaggi)

Semantica Interdocumentale

Page 64: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

64

Il linguaggio HTML fornisce una soluzione primitiva alproblema consentendo di esplicitare informazioni inerenti ildocumento intero nella sezione HEAD, utilizzando il tagMETA (che sta per meta-dato). I tag meta non vengonovisualizzati a chi fruisce della pagina HTML come lettorebensì da taluni motori di ricerca per valutarel'appropriatezza di una pagina come risposta ad una certadomanda.

In generale un tag meta ha la seguente forma: <meta NAME="nome" CONTENT="valore"> Con questa indicazione l'autore di una pagina associa la

stringa “valore” alla stringa “nome”, dove “nome” indicauna proprietà del documento e “valore” il valore di taleproprietà.

Semantica Interdocumentale

Page 65: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

65

Esempi di utilizzo di metatag sono: <head> <meta NAME="AUTHOR" CONTENT="C. Bianchi"> <meta NAME="KEYWORDS" CONTENT="XML,

programmazione web, query"> <meta NAME="DESCRIPTION" CONTENT="introduzione

all'XML"> </head> L'idea è quindi trasferire nella sezione HEAD le meta-

informazioni relative ad un documento, privilegiando ilcontenuto di tale sezione come informazione utile duranteuna ricerca.

Semantic WEB - Longheu - TESEO

Semantica Interdocumentale

Page 66: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

66

L‟utilizzo del tag HTML <meta> presenta un primolimite, ossia non esistono convenzioni né sui nomi nésulla struttura del contenuto delle proprietà dadefinire, limitando fortemente l‟utilizzo di sistemiautomatici.

Se un sistema non è in grado di identificare odistinguere nomi di proprietà non potrà, per esempio,distinguere il caso in cui le meta-informazionispecificano che il sito è stato scritto da “C. Bianchi” daquello in cui si dichiara che il sito riguarda la vita e leopere di “C. Bianchi”

Riassumendo, una specifica semantica deve basarsi sudi un linguaggio (o vocabolario) comune, condiviso.

Semantic WEB - Longheu - TESEO

Semantica Interdocumentale

Page 67: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

67

Il secondo limite dell‟uso del tag <meta> è che non permette diesprimere legami semantici:

supponiamo di essere in cerca di materiale riguardante XML. Al dilà delle specifiche sintattiche che ci spiegano come deve esserescritta, per esempio, una DTD, per comprendere bene la portata diXML potrebbe essere utile accedere ad altri argomenti ad essocorrelati: per esempio a una descrizione di SGML oppure a qualchepanoramica riguardante la programmazione dei siti web (conrelativo uso di linguaggi quali javascript o perl). È assai inverosimileche nella descrizione del contenuto semantico dei siti inerentiquesti argomenti sia specificato anche XML, tuttavia esiste unacorrelazione con XML: se il meccanismo che utilizziamo ciconsentisse di mantenere non solo informazioni del tipo proprietà-valore ma strutture più complesse (in altri termini non solo concettima anche relazioni fra concetti) il nostro meccanismo di ricercapotrebbe svolgere ricerche più intelligenti. Da questo problemanasce il linguaggio RDF

Semantica Interdocumentale

Page 68: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

68

XQuery è un linguaggio di interrogazione per dati espressi inXML, e può essere dunque utilizzato per accedere adocumenti strutturati e semi-strutturati.

E‟ diventato una Recommendation del W3C nel gennaio 2007. XQuery è un linguaggio case sensitive (come XML), estende

l‟ultima versione di XPath e ha funzionalità analoghe a XSLT(eXtensible Stylesheet Language Transformations).

Offre anche possibilità avanzate come: La definizione di funzioni. Le estensioni per l‟information retrieval (XQuery-FullText). Le estensioni per l‟aggiornamento di documenti (XQuery-

Update).

Il linguaggio XQuery

Page 69: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

69

Il modello dei dati utilizzato è differente dall‟SQL. XQueryinfatti opera su sequenze (e non su relazioni, ossia insiemi),che possono contenere: Valori atomici, come la stringa “ciao” o l‟intero 3. Nodi.

Un‟espressione XQuery riceve in input zero o più sequenze eproduce una sequenza.

Le caratteristiche principali delle sequenze sono le seguenti: Le sequenze sono in generale ordinate, per cui (1, 2) è

diversa da (2, 1). Le sequenze non sono annidate, per cui (( ), 1, (2, 3)) è

uguale a (1, 2, 3). Non c‟è differenza tra un item e una sequenza con lo

stesso item quindi ad esempio (1) è uguale a 1.

Il linguaggio XQuery

Page 70: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

70

Oltre ai valori atomici, una sequenza può contenere nodi.Documenti e frammenti XML sono rappresentati come alberi, i cuinodi riconosciuti in XQuery sono: documento, elemento, attributo,testuale.

Il valore testuale (string value) dei nodi di tipo documento edelemento corrisponde alla concatenazione dei valori testuali di tuttii propri discendenti di tipo testuale, nell‟ordine in cui essi si trovanonel documento.

Se al documento è associato uno schema (XML Schema), i nodipossono avere un tipo, come nei seguenti

Il linguaggio XQuery

Page 71: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

71

Le Path Expressions possono essere utilizzate per estrarre nodi e valorida alberi XML, e per verificarne proprietà.

Anche le Path Expressions elaborano sequenze. Una Path Expression consiste in una serie di step, separati dal

carattere /. Ogni step viene valutato in un contesto, cioè una sequenza dinodi (con informazioni accessorie, ad esempio la posizione del nodo), eproduce una sequenza. Lo step successivo viene valutato utilizzandocome contesto la sequenza di nodi prodotta dallo step precedente.

Uno step è composto da tre parti principali: Un Asse, che seleziona nodi sulla base della propria posizione rispetto

al context node (nell‟esempio che segue, i figli – child::). Un test che filtra i nodi in base a nome o tipo (nell‟esempio, sezione). Uno o più predicati, che filtrano ulteriormente i nodi sulla base di

criteri più generali (nell‟esempio, il fatto di non essere il primo figlio).

Il linguaggio XQuery

Page 72: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

72

Esempio di valutazione di uno step

Il linguaggio XQuery

Page 73: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

73

Esempio di valutazione di una Path Expression:

Il linguaggio XQuery

Page 74: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

74

Esempio di valutazione di una Path Expression:

Il linguaggio XQuery

Page 75: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

75

Esempio di valutazione di una Path Expression:

Il linguaggio XQuery

Page 76: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

76

Esempio di valutazione di una Path Expression:

Il linguaggio XQuery

Page 77: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

77

Per effettuare le interrogazioni: Una espressione FLWOR (pronuncia “flower”) è simile ad

uno statement SQL Select-From-Where; è però definita intermini di binding di variabili. E’ composta da 5 parti,alcune delle quali opzionali: For: associa una o più variabili ad espressioni. Let: costruisce un alias dell‟intero risultato di

un‟espressione; For e Let creano un elenco con tutte le associazioni

possibili, chiamate anche “tuple” nella specifica di XQuery. Where: filtra l‟elenco di associazioni in base ad una

condizione; Order by: ordina l‟elenco di associazioni; Return: costruisce il risultato dell‟espressione FLWOR.

Il linguaggio XQuery

Page 78: Dati Semistrutturati: il linguaggio XML · una Document Type Definition (DTD): è l‟insiemedelle regole che definisce la struttura dei dati, ovvero per la definizione degli elementi,

A. Longheu – Sistemi di Elaborazione delle Informazioni II

78

Esempio di interrogazione FLOWR: Trova i libri pubblicati daRizzoli dopo il '91.

for $b in doc("esempio.xml")/bib/libro

where $b/edizione = "Rizzoli"

and $b/@anno > 1991

return

<libro>

{ $b/titolo }

</libro>

Il linguaggio XQuery