Sistemi informativi su Web - PowerPoint PPT Presentation

1 / 60
About This Presentation
Title:

Sistemi informativi su Web

Description:

valori: stringhe (usate per rappresentare qualsiasi tipo di dato: numeri, date, ecc. ... spesso arbitraria (come quella tra dato e metadato? ... – PowerPoint PPT presentation

Number of Views:291
Avg rating:3.0/5.0
Slides: 61
Provided by: paolome
Category:

less

Transcript and Presenter's Notes

Title: Sistemi informativi su Web


1
Sistemi informativi su Web
  • XML

Questo lavoro è concesso in uso secondo i termini
di una licenza Creative Commons (vedi ultima
pagina)
2
Sommario
  • 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

3
Sommario
  • 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

4
Un 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/
5
Il 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/
6
Il 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/
7
Introduzione 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/
8
Introduzione 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/
9
Introduzione
  • 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

10
Introduzione
  • 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.

11
Introduzione
  • 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

12
Introduzione
  • 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

13
Introduzione
  • Esempi (concreti)
  • File configurazione Apache
  • Messaggio Soap
  • Descrittore WSDL
  • Documenti MSOffice2003 e OpenOffice
  • Un formato universale
  • Eterogeneità complessità
  • Eterogeneità applicazioni

14
Tecnologie XML
  • XML e DTD
  • InfoSet
  • DOM
  • Namespace
  • XMLSchema
  • XLink
  • XPointer
  • SAX
  • CSS
  • XSL
  • XPath
  • XQuery
  • XForm
  • XBase
  • SOAP
  • WSDL

15
Sommario
  • 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

16
Modello Logico
  • Una sintassi per costruire documenti basata su
    marcatori (tag)
  • Modello logico sottostante
  • Alberi con nodi di vari tipi
  • Elementi
  • Valori (testo)
  • Attributi

Valore
nomeAttributoValoreAttributo
17
Alberi 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
18
Alberi 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)

19
Alberi 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?)

20
Sintassi 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)

21
Sintassi 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
22
Sintassi 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)

23
Analisi 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

24
Il 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

25
Il 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à

26
Sommario
  • 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

27
Approfondimenti Contenuto di Un Elemento
  • I nodi elemento sono classificati in base al loro
    contenuto
  • Element only contengono solo elementi
  • Text contengono solo valori
  • Mixed contengono sia valori (testo) che elementi
  • Empty vuoto (solo attributi)

28
Approfondimenti Contenuto di Un Elemento
  • Element only solo elementi
  • es ltcorsogt ltdataIniziogt ... lt/
    dataFinegt ltdataFinegt ... lt/ dataFinegt
    lt valutazioni gt ... lt/valutazionigt
    lt/corsogt
  • Text solo valori
  • es lttitologtJavalt/titologt

29
Approfondimenti Contenuto di Un Elemento
  • Mixed misto (elementi e valori)
  • es ltcommentigt Il corso è interessante
    ma ltsintesigtla durata lt/sintesigt
    In definitiva ... lt/commentigt
  • Empty vuoto (solo attributi)
  • es ltcoordinatore profd01 /gt

30
Approfondimenti 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

31
Approfondimenti 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

32
Sommario
  • 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

33
Documenti 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

34
Document 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

35
Document 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

36
Struttura 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

37
DTD
  • 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

38
DTD albero prototipo

1..8
o..8

1..8
attributes rifti IDREFSREQUIRED

0..1

mixed
attributes pid IDREQUIRED
39
DTD 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

40
DTD 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

41
DTD 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)

42
DTD 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

43
DTD 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

44
Validità
documento
(A)
Goedel, EscherBach
Douglas R.Hofstadter
DTD

1..8
(B)
Goedel, EscherBach
Douglas R.Hofstadter
(C)
Douglas R.Hofstadter
Goedel, EscherBach
45
Entità
  • 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

46
Entità
  • Entità predefinite
  • es agrave amp 240
  • Entità esterne
  • definite in un file esterno al documento
  • lt!ENTITY costanti SYSTEM costanti.dtdgt

47
DTD 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

48
Sintassi 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

49
Sintassi 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))

50
DTD 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
  • Gli attributi obbligatori sono 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)

51
DTD 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

52
Sommario
  • 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

53
Namespace
  • 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 se nel documento volessimo usare un
    elemento con nome protocollo si creerebbe
    ambiguità

54
Namespace
  • 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

55
Namespace
  • 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

56
Un Namespace (quello di XSLT)
http//www.w3.org/1999/xhtml
57
Namespace
  • 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

58
Namespace
  • Esempioltpratica xmlnsietfhttp//ietf.org
    xmlnsministerohttp//www.minister
    o.itgt
  • ltietfprotocollogtTCP-IPlt/ietfprotocollogt
  • ltministeroprotocollogt
  • richiesta certificato
  • lt/ministeroprotocollogt
  • lt/praticagt

59
Riferimenti
  • Extensible Markup Language (documentazione
    ufficiale W3C)
  • http//www.xml.com
  • un sito Web con numerose risorse su XML

60
Termini della Licenza
  • Questo lavoro si basa su
  • materiale del W3C in particolare
    http//www.w3c.org/Style/CSS
  • materiale del prof. G. Mecca dellUniversità
    degli Studi della Basilicata
  • materiale del prof. P. Merialdo dellUniversità
    degli Studi Roma Tre
  • e 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.
Write a Comment
User Comments (0)
About PowerShow.com