G. Mecca – [email protected] – Università della Basilicata Tecnologie di Sviluppo per il Web XML:...

54
G. Mecca – [email protected] – Università della G. Mecca – [email protected] – Università della Basilicata Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Transcript of G. Mecca – [email protected] – Università della Basilicata Tecnologie di Sviluppo per il Web XML:...

Page 1: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

G. Mecca – [email protected] – Università della Basilicata G. Mecca – [email protected] – Università della Basilicata

Tecnologie di Sviluppo per il Web

XML:

Concetti Fondamentali

versione 2.0Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons

(vedi ultima pagina)

Page 2: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

2G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Concetti Fondamentali

Introduzione Modello Logico

Alberi XML (“InfoSet”) Sintassi XML Il Successo di XML Spazi di Nomi (“Namespace”) Schemi

DTDXMLSchema – cenni

DOM (Document Object Model) Utilizzo di XML nelle Applicazioni Web

XML >> Sommario

Page 3: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

3G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Introduzione

Che cos’è XML ?

XML >> Concetti Fondamentali >> Introduzione

Il Webmaster“smanettone”

XML è la tecnologiache risolverà tutti i

problemi dello sviluppo Web

Page 4: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

4G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Introduzione

Che cos’è XML ?

XML >> Concetti Fondamentali >> Introduzione

Il Webmaster“smanettone”

L’esperto didocumenti

XML è la tecnologiache risolverà tutti i

problemi della gestionedi documenti elettronici

Page 5: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

5G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Introduzione

Che cos’è XML ?

XML >> Concetti Fondamentali >> Introduzione

Il Webmaster“smanettone”

L’esperto didocumenti

L’integratore disistemi informativi

XML è la tecnologiache risolverà tutti i

problemi dello scambio di dati tra applicazioni

Page 6: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

6G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Introduzione

Che cos’è XML ?

XML >> Concetti Fondamentali >> Introduzione

Il Webmaster“smanettone”

L’esperto didocumenti

Il venditoredi DBMS

L’integratore disistemi informativi

XML è la tecnologiache risolverà tutti i

problemi dei sistemidi basi di dati

Page 7: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

7G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Introduzione

Che cos’è XML ?

XML >> Concetti Fondamentali >> Introduzione

XML è una sintassi per

descrivere alberi

Page 8: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

8G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Introduzione

Un po’ di storiauna raccomandazione del W3C del 1998

(World Wide Web Consortium, www.w3.org)tradizione dei documenti strutturati

(discende da uno standard precedente: SGML)pensato originariamente come sostituto di HTML per

il Web (“Web Semantico”) Successivamente, altre applicazioni

adottato come formato di scambio tra applicazionirecentemente, DBMS basati su XML

XML >> Concetti Fondamentali

Page 9: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

9G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

La Galassia di XML (w3.org)

XML e DTD InfoSet DOM Namespace XMLSchema XLink XPointer SAX

CSS XSL, XSLT, XSL-FO XPath XQuery XForm XInclude XBase …

XML >> Concetti Fondamentali >> Introduzione

Page 10: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

10G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Insegnare XML

Caratteristiche di XMLun modello per la descrizione dei datiuna sintassi concretamolte altre tecnologie collegate

Due problemievitare un impostazione eccessivamente

“sintattica”evitare di disperdersi nella presentazione

delle tecnologie collegate

XML >> Concetti Fondamentali

Page 11: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

11G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Modello Logico

Una sintassi per costruire documentibasata su marcatori (“tag”)

Modello logico sottostantealberi con nodi di vari tipi (“nodi tipizzati”)identificatori di nodoriferimenti incrociati tra i nodi

XML >> Concetti Fondamentali >> Modello Logico

Page 12: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

12G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Alberi XML

XML >> Concetti Fondamentali >> Modello Logico

id=“a01”

… …

univ

studenti corsi

studente corso

matricola nome dataN esami titolo

6554 Rossi Mario 5/12/1978

esame

idref=“a01”voto

scala=“30”27

docente

Analisi Pinco Palla

lode=“no”

nodo radice (documento)

elemento principale

attributovalore

riferimento

elementi

studente corso

esame

InfoSetInfoItems

Page 13: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

13G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Alberi XML

Radice (Documento) Elemento principale Nodi intermedi: elementi

con sottoalberi di elementi, attributi e valori Nodi foglia: attributi e valori

attributi: coppie (nome, valore)valori: stringhe, numeri, date, ecc.

XML >> Concetti Fondamentali >> Modello Logico

Page 14: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

14G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Alberi XML

Funzione degli attributisimili ad una coppia elemento+valore

Utilizzo degli attributigli attributi servono per valori speciali

es: identificatori e riferimentigli attributi servono per i metadati (“dati che

descrivono i dati”); es: scala dei votigli attributi servono a specificare valori che

devono essere meno “visibili” (es: stampa)

XML >> Concetti Fondamentali >> Modello Logico

Page 15: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

15G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Alberi XML

Differenze con il modello relazionaleanche per XML esiste il concetto di schema (>>)un albero può essere visto come analogo ad una

base di dati (es: studenti e corsi)è possibile organizzare le relazioni tra i dati in modo

più flessibileè possibile utilizzare identificatori e riferimenti

es: riferimenti dagli esami ai corsima è possibile utilizzare la nidificazione

es: esami “nidificati” all’interno degli studentialtre differenze: attributi, contenuto misto (>>)

XML >> Concetti Fondamentali >> Modello Logico

Page 16: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

16G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Alberi XML

Differenza con i modelli a oggettigli elementi dell’albero sono assimilabili ad oggetti,

classificabili rispetto al loro nomema vengono utilizzati meccanismi molto diversi di

organizzazione degli oggetticontenimento, vincolato alla struttura di albero (un

elemento non può essere figlio di due padri)riferimenti espliciti con identificatori gestiti dal

programmatore e non dal sistema (OID) >> correttezza dei riferimenti

non esiste esplicitamente la nozione di ereditarietà

XML >> Concetti Fondamentali >> Modello Logico

Page 17: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

17G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Sintassi XML

Rappresentazione degli alberiattraverso file di testo o “documenti”sintassi concreta definita nello standard basata su

marcatori (“tag”) Algoritmo ricorsivo di codifica

visita in preordine dell’alberoper ogni albero: tag di apertura; es: <corso>codifica ricorsiva del sottoalberotag di chiusura; es: </corso>codifica opportuna per le foglie (valori e attr.)

XML >> Concetti Fondamentali >> Sintassi XML

Page 18: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

18G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Sintassi XML<?xml version=“1.0” encoding=“UTF-8”?><univ> <studenti> <studente> <matricola> 6554 </matricola> <nome>Rossi Mario</nome> ... <esami> <esame> <voto scala=“30”

lode=“no”> 27 </voto> ... </esame> </esami> </studente> ... </studenti> <corsi> <corso id=“a01”> ... </corso> </corsi></univ>

XML >> Concetti Fondamentali >> Sintassi XML

id=“a01”

… …

univ

studenti corsi

studente corso

matricola nome

6554 Rossi Mario

… esami

esame

voto

scala=“30” 27

lode=“no”

file di testoes: univ.xml

Page 19: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

19G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Sintassi XML

In sostanzaalla nidificazione dei nodi nell’Infoset

corrisponde la nidificazione dei tag nel doc.tutti i valori sono codificati come caratteri

Difetto della sintassiverbosità: i tag di chiusura sono espliciti

(a 3+4 * (b 2+1 )b + 4 )a >> (a 3+4*(b 2+1) + 4) Pregio della sintassi

semplice da interpretare per il programmat.

XML >> Concetti Fondamentali >> Sintassi XML

Page 20: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

20G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Analisi Sintattica

E’ facile costruire analizzatori sintattici perleggere un documento XMLanalizzare la sintassi dei marcatoriricostruire l’InfoSet“parsing” del documento XML

Il documento è auto-descrittivoil significato dei valori è codificato nel nome

degli elementi e degli attributi

XML >> Concetti Fondamentali >> Sintassi XML

Page 21: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

21G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Il Successo di XML

Motivi di successogli alberi sono strutture flessibilila sintassi è standard e relativam. semplice

E’ applicato in moltissimi settoribasi di datigestione di documenti elettronicisiti Webscambio di dati tra applicazioni

XML >> Concetti Fondamentali >> Il Successo di XML

Page 22: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

22G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Documenti

XML >> Concetti Fondamentali >> Il Successo di XML

rifti=“par01par04 par07

…”

libro

indicecapitolo

voce

titolo

Un’offerta musico-logica

Bach

capitolotitolo

Goedel, EscherBach: Un’Eterna

GhirlandaBrillante

autore

Douglas R.Hofstadter

paragrafo

paragrafo

titolo

Bachpid=“par01”

codice testo

Federico il Grande …

citazione

Una sera, proprio…

QuandoBach…

voce

•solo elementi•solo testo•misto•vuoto

Contenuto:

Page 23: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

23G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Contenuto di Un Elemento

Solo elementi“element only”es: <capitolo>

<titolo> ... </titolo> <paragrafo> ... </paragrafo> </capitolo>

Solo valori“text”es: <autore>D. Hofstadter</autore>

XML >> Concetti Fondamentali >> Il Successo di XML

Page 24: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

24G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Contenuto di Un Elemento

Misto (elementi e valori)“mixed” es: <testo>

Federico il Grande … <citazione>Una sera …</citazione> Quando Bach... </testo>

Vuoto (solo attributi)“empty” es: <codice id=“par01” /> oppure <img ... />, <br />

XML >> Concetti Fondamentali >> Il Successo di XML

Page 25: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

25G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Integrazione di Applicazioni

Applicazioni “business to business” (B2B)es: il sistema informativo di un supermercato

COOP ordina gelati al sistema informativo dell’Algida

Sistema Informativo della COOPDBMS relazionale, applicazioni in C, TCP/IP

Sistema Informativo dell’AlgidaDBMS a oggetti, applicazioni in Java, TCP/IP

Come si scambiano i dati ?

XML >> Concetti Fondamentali >> Il Successo di XML

Page 26: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

26G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

B2B

<?xml version=“1.0” ?><ordine> <prod>Cornetto</prod> <qta>300</qta> <dataCons> <giorno>15</giorno> <mese>giugno</giugno> <anno>2002</anno>

</dataCons> <indirizzo> <via>dei Frassini</via> <citta>Potenza</citta> <CAP>85100</CAP> </indirizzo> ...</ordine>

XML >> Concetti Fondamentali >> Il Successo di XML

ordine

data cons indirizzo

giorno citta

15

mese

prod

Cornetto

qta

300 via

deiFrassini

CAPanno

giugno 2002 Potenza 85100

Page 27: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

27G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Namespace

Ambiguitàes: prezzo (con IVA o senza IVA ?)es: protocollo (tecnologia o burocrazia ?)

Spazio di Nomi (“Namespace”)tecnica standard (W3C) per qualificare i nomiper risolvere l’ambiguità, è possibile “annotare”

un nome di elemento con un URIes: http://www.ietf.org, oppure

http://www.funzionepubblica.it

XML >> Concetti Fondamentali >> NameSpace

Page 28: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

28G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Namespace

Attenzionein questo caso, l’URI è solo un URNovvero non rappresenta una risorsa fisicamente

disponibile sulla retema solo un nome che rispetta la sintassi degli URI

Quindiun namespace non è un dizionario né una collezione

di stringhe corrispondenti a nomiun namespace non corrisponde necessariamente ad

un’autorità che ha controllo sui nomi descritti dal namespace

XML >> Concetti Fondamentali >> NameSpace

Page 29: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

29G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Il Namespace di XHTML

XML >> Concetti Fondamentali >> NameSpace

http://www.w3.org/1999/xhtml

Page 30: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

30G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Namespace

Sintatticamenteattributo speciale “xmlns”prefisso distinto per ciascun namespace

definito nella radice di un sottoalberoes: <ordine xmlns:w3c=“http://www.w3.org” xmlns:fp=“http://www.funzionepubblica.it”>

visibilità nel sottoalberonomi composti con il prefisso

es: <w3c:protocollo>, <fp:protocollo>

XML >> Concetti Fondamentali >> NameSpace

Page 31: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

31G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Schemi

Regole della sintassii documenti devono essere “ben formati” >>

conseg. dell’algoritmo di codifica dell’InfoSet Documento Ben Formato (“well formed”)

prologocorretta nidificazione dei tag; es:

<a><b>...</b></a> e non <a><b>...</a></b>corretta codifica degli attributi (virgolette)corretta codifica dei valori

XML >> Concetti Fondamentali >> Schemi

Page 32: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

32G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Schemi

Schema per un Documento XML“albero prototipo”descrive quali strutture sono ammissibili per i

sottoalberi e quali non lo sonodescrive alcuni vincoli di integrità sui dati

Documento valido rispetto a uno schemal’albero è conforme allo schema

(ovvero: è un’istanza dello schema)

XML >> Concetti Fondamentali >> Schemi

Page 33: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

33G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Schemi

Esistono due categorie di schemi DTD (“Document Type Declaration”)

orientato ai documenti elettroniciparte dello standard XML 1.0

XML Schemastandard successivoorientato alla descrizione dei dati

XML >> Concetti Fondamentali >> Schemi

Page 34: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

34G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

DTD

Albero sintattico di una “grammatica”basato su “espressioni regolari”

Un solo tipo di valori: la stringa#PCDATA

Rispetto agli schemi di basi di datil’enfasi non è sulla natura dei valori (tipi)ma sulla posizione reciproca e sulle

occorrenze degli elementi

XML >> Concetti Fondamentali >> Schemi

Page 35: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

35G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Struttura del DTD

Nodi ordinaridocumento ed elementi

Nodi per attributi (nome e tipo)vincoli sugli attributi (chiavi e riferimenti)

Nodi per i valori (#PCDATA) Nodi speciali

nodi che descrivono l’ordine degli elementinodo sequenza – seq oppure , nodo alternativa – U oppure I

XML >> Concetti Fondamentali >> Schemi

Page 36: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

36G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

DTD

Indicatori di cardinalità etichette degli archi dell’alberoindicano la numerosità degli elementi

presenti in un sottoalberominimo e massimo numero di occorrenze del

sottoalberouna o più volte – 1..* oppure +zero o una volta – 0..1 oppure ? zero o più volte – 0..* oppure *

XML >> Concetti Fondamentali >> Schemi

Page 37: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

37G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

DTD

XML >> Concetti Fondamentali >> Schemi

libro

indice

capitolo

voce

titolo

titolo

#PCDATA

autore

paragrafo

titolo

pid ID#REQUIRED

codice testo

citazione

#PCDATA

#PCDATA

rifti IDREFS#REQUIRED

seq

#PCDATA

seq

#PCDATA U

#PCDATA

#PCDATA

+

*

+

seq

*

Page 38: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

38G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

DTD: Sintassi

<!ELEMENT libro (titolo, autore, capitolo+, indice)><!ELEMENT titolo (#PCDATA)><!ELEMENT autore (#PCDATA)><!ELEMENT capitolo (titolo, paragrafo+)><!ELEMENT paragrafo (codice, titolo, testo)><!ELEMENT testo (#PCDATA | citazione)*><!ELEMENT citazione (#PCDATA)><!ELEMENT codice EMPTY> <!ATTLIST codice pid ID #REQUIRED><!ELEMENT indice (voce*)><!ELEMENT voce (#PCDATA)> <!ATTLIST voce rifti IDREFS #REQUIRED>

XML >> Concetti Fondamentali >> Schemi

vincolo: una sola definizione per ogni elemento

>> libro.xml, libro.dtdriferimento al DTD: <!DOCTYPE libro SYSTEM “libro.dtd”><!DOCTYPE libro SYSTEM “libro.dtd”>

Page 39: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

39G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Validità

XML >> Concetti Fondamentali >> Schemi

libro

capitolotitoloautore

seq +

libro

capitolo capitolotitolo autore

#PCDATA#PCDATA

Goedel, EscherBach …

Douglas R.Hofstadter

libro

capitolo capitolotitoloautore

Goedel, EscherBach …

Douglas R.Hofstadter

libro

titolo autore

Douglas R.Hofstadter

Goedel, EscherBach …

DTD

documento

(A)

(B)

(C)

Page 40: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

40G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Validità

XML >> Concetti Fondamentali >> Schemi

DTD

documento

testo

citazione

U

#PCDATA

#PCDATA

*

testo

Una sera, proprio…

testo

Federico il Grande … citazione

Una sera, proprio…

QuandoBach…

testo

citazione

Una sera, proprio…

testo

(A)

(B)

(C)

(D)struttura tipica per gli elementi di contenuto misto

Page 41: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

41G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

DTD per la Base di Dati Universitaria<!ELEMENT univ (studenti, corsi)><!ELEMENT studenti (studente)*><!ELEMENT studente (matricola, nome, dataN, (claurea | claureaSp), esami)><!ELEMENT matricola (#PCDATA)><!ELEMENT nome (#PCDATA)><!ELEMENT dataN (#PCDATA)><!ELEMENT claurea (#PCDATA)><!ELEMENT claureaSp (#PCDATA)><!ELEMENT esami (esame)*><!ELEMENT esame (voto)> <!ATTLIST esame idref IDREF #REQUIRED><!ELEMENT voto (#PCDATA)> <!ATTLIST voto scala CDATA #IMPLIED lode CDATA #IMPLIED><!ELEMENT corsi (corso)*><!ELEMENT corso (titolo, docente)> <!ATTLIST corso id ID #REQUIRED><!ELEMENT titolo (#PCDATA)><!ELEMENT docente (#PCDATA)>

XML >> Concetti Fondamentali >> Schemi

Page 42: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

42G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

DTD

In sintesiil DTD è il prototipo per una classe di

documenti XML validi rispetto al DTD Un esempio interessante

il linguaggio XHTMLcollezione di documenti XMLvalidi rispetto al DTD definito dal consorzio

(xhtml1-strict.dtd)problema di correttezza del codice XHTML

XML >> Concetti Fondamentali >> Schemi

Page 43: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

43G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Validatori

Validatoreapplicazione che verifica la validità di un

documento XML rispetto al suo schema Un esempio

xmlvalid (http://www.elcel.com/products/xmlvalid.html)

Sintassixmlvalid <file.xml>

XML >> Concetti Fondamentali >> Schemi

>> xmlvalid univ.xml>> univ.xml, univ.dtd

Page 44: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

44G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

DTD: Limiti

Esiste un unico tipo di dati#PCDATA

Un DTD non è un documento XMLsintassi diversa, problemi di parsing

Definizione imprecisa di contenuto mistoes: al massimo due citazioni

Scarsa modularitànon è possibile riutilizzare o estendere le strutture

definite

XML >> Concetti Fondamentali >> Schemi

Page 45: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

45G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

XML Schema

Standard recente del consorzioraccomandazione del Maggio 2001

Livello base: “DTD con tipi di dato”

Livello avanzato:meccanismi per il riuso di schemivincoli di integrità avanzati

XML >> Concetti Fondamentali >> Schemi

Page 46: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

46G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

XML Schema

Sintassi XML Più di 40 tipi di base per i valori

stringhe, numeri, date, ore, … Sistema di costrutti più ricco

sequenza (“sequence”)alternativa (“union”)cardinalità (“minOccurs”, “maxOccurs”)insieme (“all”)raffinamento del concetto di contenuto misto

XML >> Concetti Fondamentali >> Schemi

Page 47: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

47G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

XML Schema: Esempio<?xml version=“1.0” ?><?xml version=“1.0” ?><<xsd:schemaxsd:schema xmlns:xsd=“http://www.w3.org/1999/XMLSchema”> xmlns:xsd=“http://www.w3.org/1999/XMLSchema”>

<<xsd:complexTypexsd:complexType name=“tipoStudente”> name=“tipoStudente”> <<xsd:sequencexsd:sequence>>

<<xsd:elementxsd:element name=“matricola“ type=" name=“matricola“ type="xsd:integerxsd:integer"/>"/> <xsd:element name=“nome" type="xsd:string"/> <xsd:element name=“nome" type="xsd:string"/> <xsd:element name=“dataN“ type=" <xsd:element name=“dataN“ type="xsd:datexsd:date"/>"/> < <xsd:unionxsd:union>> <xsd:element name=“claurea" type="xsd:string"/><xsd:element name=“claurea" type="xsd:string"/> <xsd:element name=“claureaSp" type="xsd:string"/> <xsd:element name=“claureaSp" type="xsd:string"/> </xsd:union> </xsd:union> <xsd:element name=“esame” <xsd:element name=“esame” maxOccurs=“30”maxOccurs=“30” type=“tipoEsame”> type=“tipoEsame”></xsd:sequence></xsd:sequence><<xsd:attributexsd:attribute name=“sesso” type=“xsd:string”/> name=“sesso” type=“xsd:string”/>

</xsd:complexType></xsd:complexType>

<<xsd:element name=“studente“ type=“tipoStudente”xsd:element name=“studente“ type=“tipoStudente”/>/> ......</xsd:schema></xsd:schema>

XML >> Concetti Fondamentali >> Schemi

Page 48: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

48G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

DOM (Document Object Model)

Standard W3C API per programmare su un InfoSet

collezione di interfacce Oggetti del DOM

l’InfoSet è rappresentato da oggetti del linguaggio che costituiscono l’albero

Document, DocumentType, Element, Attr, Comment, Text, NameSpace ecc.

su ognuno sono definiti metodi per la manip.

XML >> Concetti Fondamentali >> DOM

Page 49: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

49G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

DOM (Document Object Model)

Implementazione in Javaclassi e metodi per costruire la rappresentaz.

Java dell’InfoSet da un documento XMLclassi e metodi per navigare l’alberoJAXP (Java 2 SE 1.4)

Terminologicamentemolti confondono InfoSet e DOMovvero chiamano DOM l’albero invece che la

sua rappresentazione nel linguaggio

XML >> Concetti Fondamentali >> DOM

>> Mozilla DOM Inspector

Page 50: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

50G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

DOM (Document Object Model)

AlternativaSAX – “Simple API for XML Processing”http://www.saxproject.org/standard di fatto

Differenze tra DOM e SAXstruttura di dati vs. eventiparsing completo vs. parsing incrementale

XML >> Concetti Fondamentali >> DOM

Page 51: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

51G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Utilizzo di XML nelle Applicazioni Web In quale strato viene usato XML ?

viene utilizzato in tutti gli strati dell’architettura

Sul lato del clienttecnologia fondamentaleè la base per la nuova generazione di

linguaggi di marcaturaXHTML: versione di HTML costruita secondo

le regole del modello e della sintassi XML

XML >> Concetti Fondamentali >> Utilizzo di XML

Page 52: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

52G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Utilizzo di XML nelle Applicazioni Web Ma

XML viene utilizzato anche negli altri strati Sul lato della persistenza

può essere utilizzato come tecnologia per la persistenza

Sul lato del server applicativoviene utilizzato per la configurazione

dell’applicazione Web e del server applicativo

XML >> Concetti Fondamentali >> Utilizzo di XML

Page 53: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

53G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Riassumendo

XML >> Sommario

Introduzione Modello Logico

Alberi XML (“InfoSet”) Sintassi XML Il Successo di XML Spazi di Nomi (“Namespace”) Schemi

DTDXMLSchema – cenni

DOM (Document Object Model) Utilizzo di XML nelle Applicazioni Web

Page 54: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso.

54G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Termini della Licenza

Termini della Licenza

This work is licensed under the Creative Commons Attribution-ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/1.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Questo lavoro viene concesso in uso secondo i termini della licenza “Attribution-ShareAlike” di Creative Commons. Per ottenere una copia della licenza, è possibile visitare http://creativecommons.org/licenses/by-sa/1.0/ oppure inviare una lettera all’indirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.