Title: Sistemi informativi su Web
1Sistemi informativi su Web
Questo lavoro è concesso in uso secondo i termini
di una licenza Creative Commons (vedi ultima
pagina)
2Sommario
- XML
- XML Introduzione
- XML una sintassi per la descrizione di alberi
- Sintassi e semantica del linguaggio
- DTD documenti validi e ben formati
- namespaces disambiguare i nomi
3Sommario
- XML
- XML Introduzione
- XML una sintassi per la descrizione di alberi
- Sintassi e semantica del linguaggio
- DTD documenti validi e ben formati
- namespaces disambiguare i nomi
4Un protagonista assolutoil Consorzio W3C
- The World Wide Web Consortium was created in
October 1994 to lead the World Wide Web to its
full potential by developing common protocols
that promote its evolution and ensure its
interoperability. W3C has over 350 Member
organizations from all over the world and has
earned international recognition for its
contributions to the growth of the Web.
http//www.w3.org/Consortium/
5Il consorzio W3C
- W3C's Goals
- W3C's long term goals for the Web are
- Universal Access To make the Web accessible to
all by promoting technologies that take into
account the vast differences in culture,
languages, education, ability, material
resources, access devices, and physical
limitations of users on all continents - Semantic Web To develop a software environment
that permits each user to make the best use of
the resources available on the Web - Web of Trust To guide the Web's development with
careful consideration for the novel legal,
commercial, and social issues raised by this
technology.
http//www.w3.org/Consortium/
6Il consorzio W3C
- W3C's Role As with many other information
technologies, in particular those that owe their
success to the rise of the Internet, the Web must
evolve at a pace unrivaled in other industries.
Almost no time is required to turn a bright idea
into a new product or service and make it
available on the Web to the entire world for
many applications, development and distribution
have become virtually indistinguishable. At the
same time, easy customer feedback has made it
possible for designers to fine tune their
products almost continually. With an audience of
millions applying W3C specifications and
providing feedback, W3C concentrates its efforts
on three principle tasks - Vision W3C promotes and develops its vision of
the future of the World Wide Web. Contributions
from several hundred dedicated researchers and
engineers working for Member organizations, from
the W3C Team (led by Tim Berners-Lee, the Web's
inventor), and from the entire Web community
enable W3C to identify the technical requirements
that must be satisfied if the Web is to be a
truly universal information space. - Design W3C designs Web technologies to realize
this vision, taking into account existing
technologies as well as those of the future. - Standardization W3C contributes to efforts to
standardize Web technologies by producing
specifications (called "Recommendations") that
describe the building blocks of the Web. W3C
makes these Recommendations (and other technical
reports) freely available to all.
http//www.w3.org/Consortium/
7Introduzione il consorzio W3C
- Design Principles of the Web The Web is an
application built on top of the Internet and, as
such, has inherited its fundamental design
principles. - Interoperability Specifications for the Web's
languages and protocols must be compatible with
one another and allow (any) hardware and software
used to access the Web to work together. - Evolution The Web must be able to accommodate
future technologies. Design principles such as
simplicity, modularity, and extensibility will
increase the chances that the Web will work with
emerging technologies such as mobile Web devices
and digital television, as well as others to
come. - Decentralization Decentralization is without a
doubt the newest principle and most difficult to
apply. To allow the Web to "scale" to worldwide
proportions while resisting errors and
breakdowns, the architecture (like the Internet)
must limit or eliminate dependencies on central
registries.
http//www.w3.org/Consortium/
8Introduzione il ruolo di XML
- W3C is transforming the architecture of the
initial Web (essentially HTML, URIs, and HTTP)
into the architecture of tomorrow's Web, built
atop the solid foundation provided by XML.
http//www.w3.org/Consortium/
9Introduzione
- XML è quindi considerato come le fondamenta del
Web del futuro (e del presente) - Ma il Web è considerato la piattaforma di
sviluppo dei sistemi informativi di prossima
generazione
10Introduzione
- Un po di storia (http//www.w3c.org/XML/hist2002
) - Tappe fondamentali
- Working draft W3C 14 nov 96
- Raccomandazione W3C feb 1998
- Extensible Markup Language (XML)
- W3C Working Draft 14-Nov-96
- Extensible Markup Language (XML) is an
extremely simple dialect of SGML which is
completely described in this document. The goal
is to enable generic SGML to be served, received,
and processed on the Web in the way that is now
possible with HTML. For this reason, XML has been
designed for ease of implementation, and for
interoperability with both SGML and HTML.
11Introduzione
- Nov 96 initial XML draft The design goals for
XML are - XML shall be straightforwardly usable over the
Internet - XML shall support a wide variety of applications
- XML shall be compatible with SGML
- It shall be easy to write programs which process
XML documents - The number of optional features in XML is to be
kept to the absolute minimum, ideally zero - XML documents should be human-legible and
reasonably clear - The XML design should be prepared quickly
- The design of XML shall be formal and concise
- XML documents shall be easy to create
- Terseness is of minimal importance
12Introduzione
- Già oggi XML è usato come formato universale in
tutti i settori dellIT - Alcuni esempi
- formato di rappresentazione documenti (word,
spread-sheet, etc.) - formato di scambio tra applicazioni
- formato di rappresentazione file di
configurazione - formato di rappresentazione dati
13Introduzione
- Esempi (concreti)
- File configurazione Apache
- Messaggio Soap
- Descrittore WSDL
- Documento Word (Office2003)
- Un formato universale
- Eterogeneità complessitÃ
- Eterogeneità applicazioni
14Tecnologie XML
- XML e DTD
- InfoSet
- DOM
- Namespace
- XMLSchema
- XLink
- XPointer
- SAX
- CSS
- XSL
- XPath
- XQuery
- XForm
- XBase
- SOAP
- WSDL
15Sommario
- XML
- XML Introduzione
- XML una sintassi per la descrizione di alberi
- Sintassi e semantica del linguaggio
- DTD documenti validi e ben formati
- namespaces disambiguare i nomi
16Modello Logico
- Una sintassi per costruire documenti basata su
marcatori (tag) - Modello logico sottostante
- Alberi con nodi di vari tipi
- Elementi
- Valori (testo)
- Attributi
17Alberi XML
nodo radice (documento)
elemento principale
elementi
codd01
profd01
Paolo
Rossi
Java
1/09/2004
1/10/2004
valore
4
scala5
attributo
riferimento
criteriocapacità docente
Il corso è interessante
La durata
18Alberi XML
- Radice (Documento)
- Elemento principale
- Nodi intermedi elementi
- con sottoalberi di elementi, valori e attributi
- Nodi foglia attributi e valori
- valori stringhe (usate per rappresentare
qualsiasi tipo di dato numeri, date, ecc.) - attributi coppie (nome, valore)
19Alberi XML
- Funzione degli attributi
- coppia nomevalore
- Utilizzo degli attributi
- gli attributi servono per valori speciali es
identificatori e riferimenti - gli attributi servono per rappresentare i
metadati (dati che descrivono i dati) es
scala dei voti - La distinzione (attributo o elemento?) spesso è
arbitraria (come quella tra dato e metadato?)
20Sintassi XML
- Rappresentazione degli alberi
- attraverso file di testo o documenti
- sintassi concreta definita nello standard basata
su marcatori (tag) - Algoritmo ricorsivo di codifica
- visita in preordine dellalbero
- per ogni albero tag di apertura es ltdocentegt
- codifica ricorsiva del sottoalbero
- tag di chiusura es lt/docentegt
- codifica opportuna per le foglie (valori e
attributi)
21Sintassi XML
- lt?xml version1.0 encodingUTF-8?gt
- ltdiagt
- ltcorsigt
- ltcorsogt
- lttitologt
- Java
- lt/titologt
- ltdataIniziogt01/09/2004lt/dataIniziogt
- ...
- ltvalutazionigt
- ltvalutazione scala5
criteriocapacità docentegt - 4
- lt/valutazionegt
- ...
- lt/valutazionigt
- lt/corsogt
- ...
- lt/corsigt
- ltdocentigt
codiced01
Java
01/09/2004
scala5
4
criteriocapacità docente
22Sintassi XML
- In sostanza
- alla nidificazione dei nodi nellalbero
corrisponde la nidificazione dei tag nel
documento - tutti i valori sono codificati come caratteri
- Sintassi
- Verbosa (i tag di chiusura sono espliciti)
- Ma semplice da interpretare
- (vedi Design goals)
23Analisi Sintattica
- E facile costruire analizzatori sintattici per
- leggere un documento XML
- analizzare la sintassi dei marcatori
- ricostruire lalbero
- parsing del documento XML
- Il documento è auto-descrittivo
- il significato dei valori è codificato nel nome
degli elementi e degli attributi
24Il Successo di XML
- Motivi di successo
- Uno standard de iure e de facto
- Gli alberi sono strutture dati estremamente
flessibili che possono rappresentare facilmente
diverse tipologie di informazioni - Basi di dati
- Documenti
- Messaggi
-
- La sintassi di XML è semplice
25Il successo di XML
- Uno standard per linteroperabilitÃ
- es il sistema informativo dellEsercito deve
interagire con il sistema informativo della
Marina - Come scambiare i dati?
- I due soggetti si possono mettere daccordo su un
formato di scambio intermedio - Come definiamo il formato di scambio?
- Possiamo inventarci un formato ad hoc,
- oppure usare XML
26Il successo di XML
- Uno standard per la rappresentazione di
informazioni - Es abbiamo sviluppato una applicazione costosa,
che deve salvare su file informazioni complesse - Come memorizzare queste informazioni?
- Possiamo inventarci un formato ad hoc,
- oppure usare XML
27Il successo di XML
- Riassumendo
- Un formato semplice e autodescrittivo
- Permette di rappresentare strutture dati (alberi)
estremamente versatili - Uno standard accettato universalmente
- Tecnologie e soluzioni già pronte per la
manipolazione di documenti XML riduzione dei
costi, aumento della affidabilitÃ
28Sommario
- XML
- XML Introduzione
- XML una sintassi per la descrizione di alberi
- Sintassi e semantica del linguaggio
- approfondimenti
- DTD documenti validi e ben formati
- namespaces disambiguare i nomi
29Approfondimenti Contenuto di Un Elemento
- Solo elementi
- element only
- es ltcorsogt ltdataIniziogt ... lt/
dataFinegt ltdataFinegt ... lt/ dataFinegt
lt valutazioni gt ... lt/valutazionigt
lt/corsogt - Solo valori
- text
- es lttitologtJavalt/titologt
30Approfondimenti Contenuto di Un Elemento
- Misto (elementi e valori)
- mixed
- es ltcommentigt Il corso è interessante
ma ltsintesigtla durata lt/sintesigt
In definitiva ... lt/commentigt - Vuoto (solo attributi)
- empty
- es ltcoordinatore profd01 /gt
31Approfondimenti Dettagli sulla sintassi
- Regole generali
- sensibile alle maiuscole
- convenzione usare sempre minuscole per i nomi
degli elementi e degli attributi - identificatori (nomi)
- iniziano per lettera oppure _ oppure
- Es. esame _corso partita
- Commenti
- lt!-- testo del commento --gt
32Approfondimenti Dettagli sulla sintassi
- Elementi
- tag di apertura (start tag) es ltcorsogt
- tag di chiusura (end tag) es lt/corsogt
- tag di elem. vuoto (empty element tag)es
ltcoordinatore profd01 /gt -
- ltcoordinatore profd01gt
- lt/coordinatoregt
- Elemento radice
- deve essere unico
- es dia
33Sommario
- XML
- XML Introduzione
- XML una sintassi per la descrizione di alberi
- Sintassi e semantica del linguaggio
- DTD documenti validi e ben formati
- namespaces disambiguare i nomi
34Documenti validi e ben formati
- Regole della sintassi
- i documenti devono essere ben formati
conseguenza dellalgoritmo di codifica
dellalbero - Documento Ben Formato (well formed)
- prologo
- corretta nidificazione dei tagEs.
ltagtltbgt...lt/bgtlt/agt ben fomato
ltagtltbgt...lt/agtlt/bgt NON ben formato - corretta codifica degli attributi (virgolette)
- Es. ltt scala"celsius"gt...lt/tgt è ben fomato
ltt scalacelsiusgt...lt/tgt NON è ben formato - Identificatori corretti
35Document Type
- Tipo di riferimento per un Documento XML
- albero prototipo
- descrive quali strutture sono ammissibili per i
sottoalberi e quali non lo sono - descrive alcuni vincoli di integrità sui dati
- Se abbiamo definito un tipo, possiamo imporre che
un documento sia valido rispetto al tipo - Ovvero, possiamo imporre che lalbero sia
conforme allalbero prototipo
36Document Type Definition (DTD)
- Albero sintattico di una grammatica
- basato su espressioni regolari
- Un solo tipo di valori la stringa
- PCDATA
- Permette di definire
- la posizione reciproca e le occorrenze degli
elementi
37Struttura del DTD
- Nodi elementi element only
- Nodi elementi text
- Nodi per attributi (nome e tipo)
- vincoli sugli attributi (chiavi e riferimenti)
- Nodi speciali
- nodo sequenza
- nodo alternativa
attributes rifti IDREFSREQUIRED
38DTD
- Indicatori di cardinalitÃ
- etichette associate ai nodi dellalbero
- indicano la numerosità degli elementi a cui sono
associati - minimo e massimo numero di occorrenze del
sottoalbero - una o più volte 1..8 oppure
- zero o una volta 0..1 oppure ?
- zero o più volte 0.. 8 oppure
39DTD albero prototipo
1..8
o..8
attributes rifti IDREFSREQUIRED
mixed
attributes pid IDREQUIRED
40DTD sintassi
- L'albero prototipo si esprime per mezzo di una
sequenza di definizioni una per ogni elemento e
per ogni attributo - Definizione degli elementi
- lt!ELEMENT nome (contenuto)gt
- Una sola dichiarazione per ogni nome
- Modello di contenuto (content model)
- ELEMENT ONLY ( ) , ?
- TEXT PCDATA
- MIXED (PCDATA ltel1gt ltel2gt )
- EMPTY EMPTY
41DTD definizione degli attributi
- Definizione degli attributi
- lt!ATTLIST nome-Elemento
nome-attributo tipo-attributo
valore-di-defaultgt - Esempio
- Nel DTD
- lt!ATTLIST temperatura scala CDATA celsius"gt
- Nel documento
- lttemperatura scalacelsius" /gt
42DTD definizione degli attributi
- Definizione degli attributi
- lt!ATTLIST nome-Elemento
nome-attributo tipo-attributo
valore-di-defaultgt - Tipo-attributo
- CDATA character data (stringhe)
- ID, IDREF, IDREFS identificatori e riferimenti a
identificatori - tipo enumerato (val1 val2 valn)
43DTD definizione degli attributi
- Definizione degli attributi
- lt!ATTLIST nome-Elemento
nome-attributo tipo-attributo
valore-di-defaultgt - Valore di default
- REQUIRED obbligatorio
- IMPLIED opzionale
- valore opzionale con v. standard
- FIXED valore valore fissato
44DTD Sintassi
- lt!ELEMENT libro (titolo, autore, capitolo,
indice)gt - lt!ELEMENT titolo (PCDATA)gt
- lt!ELEMENT autore (PCDATA)gt
- lt!ATTLIST autore codiceautore ID REQUIREDgt
- lt!ELEMENT capitolo (titolo, paragrafo)gt
- lt!ELEMENT paragrafo (codice, titolo, testo)gt
- lt!ELEMENT testo (PCDATA citazione)gt
- lt!ELEMENT citazione (PCDATA)gt
- lt!ELEMENT codice EMPTYgt
- lt!ATTLIST codice pid ID REQUIREDgt
- lt!ELEMENT indice (voce)gt
- lt!ELEMENT voce (PCDATA)gt
- lt!ATTLIST voce rifti IDREFS REQUIREDgt
45ValiditÃ
documento
(A)
Goedel, EscherBach
Douglas R.Hofstadter
DTD
(B)
1..8
Goedel, EscherBach
Douglas R.Hofstadter
(C)
Douglas R.Hofstadter
Goedel, EscherBach
46EntitÃ
- EntitÃ
- definizioni di costanti o macro
- General Entity
- definite nel DTD
- lt!ENTITY pigreco 3.1412gt
- utilizzate nel documento
- pigreco
- Parameter Entity
- definite nel DTD lt!ENTITY testo
(PCDATAcitazione)gt - utilizzate nel DTD
- testo
47EntitÃ
- Entità predefinite
- es agrave amp 240
- Entità esterne
- definite in un file esterno al documento
- lt!ENTITY costanti SYSTEM costanti.dtdgt
48DTD esterni ed interni
- Per specificare la validità di un documento
rispetto ad un DTD è necessario esprimere
l'associazione tra il documento e il DTD - I DTD possono essere interni o esterni al
documento - Esterni il DTD viene scritto in un file
(identificato da un URL) e ogni documento valido
rispetto a tale DTD contiene un riferimento al
DTD - Interni il DTD è scritto internamente al
documento stesso
49Sintassi DTD interni
- lt?xml version"1.0"?gt
- lt!DOCTYPE dia lt!ELEMENT dia (corsi,
docenti)gt lt!ELEMENT corsi (corso)) gt - ltdiagt
- ltcorsigt
-
- lt/corsigt
- ltdocentigt
- lt/docentigt
- lt/diagt
50Sintassi DTD esterni
- lt?xml version"1.0"?gt
- lt!DOCTYPE dia SYSTEM dia.dtdgt
- ltdiagt
- ltcorsigt
-
- lt/corsigt
- ltdocentigt
- lt/docentigt
- lt/diagt
- E la definizione viene scritta nel file dia.dtd
- lt!ELEMENT dia (corsi, docenti)gt
- lt!ELEMENT corsi (corso))
51DTD riassumendo
- Un documento XML associato ad un DTD si dice
valido se rispetta tutte le regole espresse nel
DTD - Rispetta la sequenza e nidificazione degli
elementi come definito nel DTD - Rispetta le cardinalità definite nel DTD
- Rispetta i vincoli espressi sugli attributi
- Rispetta i vincoli sugli attributi
- Gli attributi obbligatori ono tutti presenti nel
documento - I valori degli attributi di tipo ID sono univoci
- I valori degli attributi di tipo IDREF
appartengono all'insieme dei valori degli
attributi di tipo ID del documento - Come verificare la validità di un documento XML ?
- Ci sono molti strumenti (anche on-line)
- Uno dei più diffusi è Altova XMLSPY (la cui Home
edition è disponibile gratuitamente)
52DTD Limiti
- Esiste un unico tipo di dati
- PCDATA
- Un DTD non è un documento XML
- sintassi diversa, problemi di parsing
- Definizione imprecisa di contenuto misto
- es al massimo due citazioni
- Riferimenti agli attributi ID non tipati
- Scarsa modularitÃ
- non è possibile riutilizzare o estendere le
strutture definite - Per fare fronte a questi limiti ci sono numerose
proposte - La più autorevole e diffusa è la raccomandazione
XML Schema
53Sommario
- Parte I XML
- XML Introduzione
- XML una sintassi per la descrizione di alberi
- Sintassi e semantica del linguaggio
- DTD documenti validi e ben formati
- namespaces disambiguare i nomi
54Namespace
- AmbiguitÃ
- Supponiamo di scrivere un documento XML in cui
vengono riportate informazioni sulle regole da
seguire per linterazione tra diverse
amministrazioni - Le informazioni descrivono
- protocolli amministrativi
- ma anche protocolli informatici
- In sostanza nel documento se volessimo usare un
elemento con nome protocollo si creerebbe
ambiguitÃ
55Namespace
- Spazio di Nomi (Namespace)
- Per risolvere i problemi di ambiguità viene
introdotta una tecnica per qualificare i nomi - Lidea è quella di annotare un nome di elemento
con un URI, ovvero con un riferimento univoco - Tornando allesempio
- gli elementi che fanno riferimento alle pratiche
burocratiche possono essere annotate con lURI
http//www.miur.it, - mentre gli elementi che fanno riferimento ai
protocolli tecnologici possono essere annotate
con lURI http//ietf.org
56Namespace
- Attenzione
- in questo caso, lURI è solo un URN, ovvero non
rappresenta una risorsa fisicamente disponibile
sulla rete, ma solo un nome che rispetta la
sintassi degli URI - Quindi
- un namespace non è un dizionario né una
collezione di stringhe corrispondenti a nomi - un namespace non corrisponde necessariamente ad
unautorità che ha controllo sui nomi descritti
dal namespace
57Un Namespace (quello di XSLT)
http//www.w3.org/1999/xhtml
58Namespace
- Sintatticamente
- Gli elementi si annotano con lattributo speciale
xmlns - Si definisce un prefisso distinto per ciascun
namespace definito nella radice di un
sottoalbero. Esempioltpratica
xmlnsietfhttp//ietf.org
xmlnsministerohttp//www.miur.itgt - visibilità nel sottoalbero
- nomi composti con il prefissoEsempio
ltietfprotocollogt, ltministeroprotocollogt
59Namespace
- Esempioltpratica xmlnsietfhttp//ietf.org
xmlnsministerohttp//www.minister
o.itgt - ltietfprotocollogtTCP-IPlt/ietfprotocollogt
- ltministeroprotocollogt
- richiesta certificato
- lt/ministeroprotocollogt
- lt/praticagt
60Termini della Licenza
- Questo lavoro
- si basa su materiale originale preparato dal
prof. G. Mecca della Università della Basilicata
nellambito del progetto Diogene
(http//www.difa.unibas.it/gmecca/diogene), e
successivamente adattato dalling. Paolo Merialdo
della Università Roma Tre. - 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 allindirizzo
Creative Commons, 559 Nathan Abbott Way,
Stanford, California 94305, USA.