Tecnologie di Sviluppo per il Web

Slides:



Advertisements
Presentazioni simili
Informatica II – Basi di Dati (08/09) – Parte 1
Advertisements

Algoritmi e Strutture Dati
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Caduta non guidata di un corpo rettangolare in un serbatoio Velocità e rotazione.
I Namespace Mario Arrigoni Neri.
1 Tutto su liceoclassicojesi.it 1° Incontro sulla gestione di liceoclassicojesi.it.
Tecnologie di Sviluppo per il Web
1 MeDeC - Centro Demoscopico Metropolitano Provincia di Bologna - per Valutazione su alcuni servizi erogati nel.
TAV.1 Foto n.1 Foto n.2 SCALINATA DI ACCESSO ALL’EREMO DI SANTA CATERINA DEL SASSO DALLA CORTE DELLE CASCINE DEL QUIQUIO Foto n.3 Foto n.4.
Introduzione al DTD Mario Arrigoni Neri.
Introduzione ad XML Mario Arrigoni Neri.
XML - Schema Mario Arrigoni Neri.
1 Pregnana Milanese Assessorato alle Risorse Economiche Bilancio Preventivo P R O P O S T A.
HTML+XML= XHTML Il ritorno al futuro del WEB A cura di Barbara Lotti.
A. FERRARI Alberto Ferrari. L'HyperText Markup Language (HTML) (traduzione letterale: linguaggio di marcatura per ipertesti) è un linguaggio usato per.
1 Introduzione ad XML. 2 Problemi con SGML Complesso da comprendere ed utilizzare Non è pensato per la rete: mancano link ipertestuali e specifiche grafiche.
Lezione 18 MIDI e XML Programmazione MIDI (Prof. Luca A. Ludovico)
Document Type Definition per XML Presentazione 8.1 Informatica Generale (Prof. Luca A. Ludovico)
Query OQL e XQUERY a confronto
G. Mecca – – Università della Basilicata Basi di Dati Progettazione di Basi di Dati: Introduzione versione 2.0 Questo lavoro è concesso.
G. Mecca – – Università della Basilicata Tecnologie di Sviluppo per il Web Valutazione della Qualità del Codice HTML versione 2.0 Questo.
G. Mecca – – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.
G. Mecca – – Università della Basilicata Tecnologie di Sviluppo per il Web Cascading Style Sheets (CSS): Introduzione versione 2.0 Questo.
Modello Concettuale dei Dati: Concetti Fondamentali
G. Mecca – – Università della Basilicata Tecnologie di Sviluppo per il Web Cascading Style Sheets (CSS): Dettagli e Approfondimenti versione.
G. Mecca – – Università della Basilicata Tecnologie di Sviluppo per il Web XHTML Principali Moduli versione 2.0 Questo lavoro è concesso.
Tecnologie di Sviluppo per il Web
Modello Concettuale Dettagli e Approfondimenti
G. Mecca – – Università della Basilicata Tecnologie di Sviluppo per il Web Cascading Style Sheets (CSS): Concetti Fondamentali versione.
G. Mecca – – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è
Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, La rappresentazione dellinformazione testuale e i linguaggi di codifica.
Frontespizio Economia Monetaria Anno Accademico
XML Prof. Alfredo Pulvirenti. XML XML (eXtensible Markup Language) è un meta linguaggio. Può essere definito come un insieme di regole e convenzioni che.
Introduzione ai Web Services. E' un nuovo meccanismo RPC ottimizzato per l'uso in Internet Un qualunque Client su una generica piattaforma deve poter.
Programmazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++
Implementazione dell algortimo di Viterbi attraverso la soluzione del problema di cammino mi- nimo tramite software specifico. Università degli studi di.
XML Prof. Barbara Pernici Politecnico di Milano. Introduzione a XML.
XML Prof. Barbara Pernici Politecnico di Milano aggiornato 10/12/2002.
Programmazione 1 9CFU – TANTE ore
Corso di Informatica (Basi di Dati)
Ufficio Studi UNIONCAMERE TOSCANA 1 Presentazione di Riccardo Perugi Ufficio Studi UNIONCAMERE TOSCANA Firenze, 19 dicembre 2000.
Algoritmi e Strutture Dati
1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 7 - Tabelle hash Alberto Montresor Università di Trento This work is licensed under the Creative.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
La partita è molto combattuta perché le due squadre tentano di vincere fino all'ultimo minuto. Era l'ultima giornata del campionato e il risultato era.
DHTML: Modello degli Eventi 1. 2 Sommario Introduzione Evento onclick Evento onload Gestione errori con onerror Gestione mouse con levento onmousemove.
Esercizio 1 Convertire il seguente DTD (esercizio 1 sui DTD) in XML Schema:
Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)
G. Mecca – – Università della Basilicata Tecnologie di Sviluppo per il Web XHTML Introduzione versione 2.0 Questo lavoro è concesso in.
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
ISOIVA (LOCALE) TO ISOIVA (WEB) RIPARTIZIONE INFORMATICA UFFICIO APPLICATIVI AMMINISTRATIVI 13/04/2011 UNIVERSITÀ DEGLI STUDI DI FERRARA 1.
TECNOLOGIE DELLINFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE Materiale di supporto alla didattica.
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
1 Questionario di soddisfazione del servizio scolastico Anno scolastico 2011/2012 Istogramma- risposte famiglie.
1 Ly-LAB Sistema di gestione dei dati analitici di laboratorio.
Creare pagine web Xhtlm. Struttura di una pagina.
Riconfigurare il diritto dautore. Lipertesto, una necessità di riconfigurazione. Secondo G. P. Landow, lavvento dellipertesto implica la necessità di.
Calendario lezioni ed esercitazioni impartite nell anno accademico 2001/2002 II Semestre Corso di Fisica Sperimentale con Laboratorio Classe di Tecnologie.
XHTML Corso linguaggi per il web a.s. 2011/2012 ITIS A. Righi – Corsico Relatore – Aldo Guastafierro.
A.P. cat. B - 1 Per chi vuole: Libro di testo D.P. Curtis, K. Foley, K. Sen, C. Morin Informatica di base 2° edizione Mc Graw-Hill Companies.
Programmazione Procedurale in Linguaggio C++
Informatica Introduzione alle basi di dati Lezione 2 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Introduzione alle Griglie computazionali - aa Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.
A.a. 2004/05Tecnologie Web1 Introduzione a XML: Document Type Definition; parser XML; XML-schema; eXtensible Stylesheet Language.
Cenni Su SGML, HTML, XML SGML (Standard Generalized Markup Language) è il padre di tutti i linguaggi "Markup" – Lo svantaggio è la "pesantezza" dei suoi.
Il linguaggio XML per la rappresentazione dei dati Lo Extensible Markup Language o XML è stato concepito da un gruppo di lavoro del World Wide Web Consortium.
Transcript della presentazione:

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) G. Mecca – mecca@unibas.it – Università della Basilicata

Concetti Fondamentali XML >> Sommario Concetti Fondamentali Introduzione Modello Logico Alberi XML (“InfoSet”) Sintassi XML Il Successo di XML Spazi di Nomi (“Namespace”) Schemi DTD XMLSchema – cenni DOM (Document Object Model) Utilizzo di XML nelle Applicazioni Web G. Mecca - Tecnologie di Sviluppo per il Web

problemi dello sviluppo Web XML >> Concetti Fondamentali >> Introduzione Introduzione XML è la tecnologia che risolverà tutti i problemi dello sviluppo Web Che cos’è XML ? Il Webmaster “smanettone” G. Mecca - Tecnologie di Sviluppo per il Web

Introduzione Che cos’è XML ? Il Webmaster L’esperto di “smanettone” XML >> Concetti Fondamentali >> Introduzione Introduzione XML è la tecnologia che risolverà tutti i problemi della gestione di documenti elettronici Che cos’è XML ? Il Webmaster “smanettone” L’esperto di documenti G. Mecca - Tecnologie di Sviluppo per il Web

problemi dello scambio di XML >> Concetti Fondamentali >> Introduzione Introduzione XML è la tecnologia che risolverà tutti i problemi dello scambio di dati tra applicazioni Che cos’è XML ? Il Webmaster “smanettone” L’esperto di documenti L’integratore di sistemi informativi G. Mecca - Tecnologie di Sviluppo per il Web

Introduzione Che cos’è XML ? L’integratore di Il Webmaster XML >> Concetti Fondamentali >> Introduzione Introduzione XML è la tecnologia che risolverà tutti i problemi dei sistemi di basi di dati Che cos’è XML ? Il Webmaster “smanettone” L’esperto di documenti L’integratore di sistemi informativi Il venditore di DBMS G. Mecca - Tecnologie di Sviluppo per il Web

Introduzione Che cos’è XML ? XML è una sintassi per descrivere alberi XML >> Concetti Fondamentali >> Introduzione Introduzione XML è una sintassi per descrivere alberi Che cos’è XML ? G. Mecca - Tecnologie di Sviluppo per il Web

Introduzione Un po’ di storia Successivamente, altre applicazioni XML >> Concetti Fondamentali Introduzione Un po’ di storia una 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 applicazioni recentemente, DBMS basati su XML G. Mecca - Tecnologie di Sviluppo per il Web

La Galassia di XML (w3.org) XML >> Concetti Fondamentali >> Introduzione 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 … G. Mecca - Tecnologie di Sviluppo per il Web

Insegnare XML Caratteristiche di XML Due problemi XML >> Concetti Fondamentali Insegnare XML Caratteristiche di XML un modello per la descrizione dei dati una sintassi concreta molte altre tecnologie collegate Due problemi evitare un impostazione eccessivamente “sintattica” evitare di disperdersi nella presentazione delle tecnologie collegate G. Mecca - Tecnologie di Sviluppo per il Web

Modello Logico Una sintassi per costruire documenti XML >> Concetti Fondamentali >> Modello Logico Modello Logico Una sintassi per costruire documenti basata su marcatori (“tag”) Modello logico sottostante alberi con nodi di vari tipi (“nodi tipizzati”) identificatori di nodo riferimenti incrociati tra i nodi G. Mecca - Tecnologie di Sviluppo per il Web

Alberi XML InfoSet InfoItems XML >> Concetti Fondamentali >> Modello Logico nodo radice (documento) Alberi XML elemento principale elementi univ studenti corsi studente studente corso corso … … matricola nome dataN … esami id=“a01” titolo docente Analisi Pinco Palla 6554 Rossi Mario 5/12/1978 esame esame … InfoSet voto InfoItems idref=“a01” valore attributo riferimento 27 scala=“30” lode=“no” G. Mecca - Tecnologie di Sviluppo per il Web

Alberi XML Radice (Documento) Elemento principale XML >> Concetti Fondamentali >> Modello Logico 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. G. Mecca - Tecnologie di Sviluppo per il Web

Alberi XML Funzione degli attributi Utilizzo degli attributi XML >> Concetti Fondamentali >> Modello Logico Alberi XML Funzione degli attributi simili ad una coppia elemento+valore Utilizzo degli attributi gli attributi servono per valori speciali es: identificatori e riferimenti gli attributi servono per i metadati (“dati che descrivono i dati”); es: scala dei voti gli attributi servono a specificare valori che devono essere meno “visibili” (es: stampa) G. Mecca - Tecnologie di Sviluppo per il Web

Alberi XML Differenze con il modello relazionale XML >> Concetti Fondamentali >> Modello Logico Alberi XML Differenze con il modello relazionale anche 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 corsi ma è possibile utilizzare la nidificazione es: esami “nidificati” all’interno degli studenti altre differenze: attributi, contenuto misto (>>) G. Mecca - Tecnologie di Sviluppo per il Web

Alberi XML Differenza con i modelli a oggetti XML >> Concetti Fondamentali >> Modello Logico Alberi XML Differenza con i modelli a oggetti gli elementi dell’albero sono assimilabili ad oggetti, classificabili rispetto al loro nome ma vengono utilizzati meccanismi molto diversi di organizzazione degli oggetti contenimento, 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à G. Mecca - Tecnologie di Sviluppo per il Web

Sintassi XML Rappresentazione degli alberi XML >> Concetti Fondamentali >> Sintassi XML 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 dell’albero per ogni albero: tag di apertura; es: <corso> codifica ricorsiva del sottoalbero tag di chiusura; es: </corso> codifica opportuna per le foglie (valori e attr.) G. Mecca - Tecnologie di Sviluppo per il Web

Sintassi XML file di testo es: univ.xml XML >> Concetti Fondamentali >> 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> Sintassi XML univ studenti corsi corso studente … … matricola nome … esami id=“a01” … esame 6554 Rossi Mario voto … file di testo es: univ.xml scala=“30” lode=“no” 27 G. Mecca - Tecnologie di Sviluppo per il Web

Sintassi XML In sostanza Difetto della sintassi Pregio della sintassi XML >> Concetti Fondamentali >> Sintassi XML Sintassi XML In sostanza alla nidificazione dei nodi nell’Infoset corrisponde la nidificazione dei tag nel doc. tutti i valori sono codificati come caratteri Difetto della sintassi verbosità: 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. G. Mecca - Tecnologie di Sviluppo per il Web

Analisi Sintattica E’ facile costruire analizzatori sintattici per XML >> Concetti Fondamentali >> Sintassi XML Analisi Sintattica E’ facile costruire analizzatori sintattici per leggere un documento XML analizzare la sintassi dei marcatori ricostruire l’InfoSet “parsing” del documento XML Il documento è auto-descrittivo il significato dei valori è codificato nel nome degli elementi e degli attributi G. Mecca - Tecnologie di Sviluppo per il Web

Il Successo di XML Motivi di successo XML >> Concetti Fondamentali >> Il Successo di XML Il Successo di XML Motivi di successo gli alberi sono strutture flessibili la sintassi è standard e relativam. semplice E’ applicato in moltissimi settori basi di dati gestione di documenti elettronici siti Web scambio di dati tra applicazioni G. Mecca - Tecnologie di Sviluppo per il Web

Goedel, Escher Bach: Un’Eterna Ghirlanda Brillante XML >> Concetti Fondamentali >> Il Successo di XML Documenti libro indice titolo autore capitolo capitolo … Goedel, Escher Bach: Un’Eterna Ghirlanda Brillante Douglas R. Hofstadter voce voce … titolo paragrafo rifti=“par01 par04 par07 …” Bach … paragrafo Un’offerta musico-logica Contenuto: codice titolo testo solo elementi solo testo citazione Quando Bach… Bach Federico il Grande … pid=“par01” misto vuoto Una sera, proprio… G. Mecca - Tecnologie di Sviluppo per il Web

Contenuto di Un Elemento XML >> Concetti Fondamentali >> Il Successo di XML Contenuto di Un Elemento Solo elementi “element only” es: <capitolo> <titolo> ... </titolo> <paragrafo> ... </paragrafo> </capitolo> Solo valori “text” es: <autore>D. Hofstadter</autore> G. Mecca - Tecnologie di Sviluppo per il Web

Contenuto di Un Elemento XML >> Concetti Fondamentali >> Il Successo di XML 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 /> G. Mecca - Tecnologie di Sviluppo per il Web

Integrazione di Applicazioni XML >> Concetti Fondamentali >> Il Successo di XML 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 COOP DBMS relazionale, applicazioni in C, TCP/IP Sistema Informativo dell’Algida DBMS a oggetti, applicazioni in Java, TCP/IP Come si scambiano i dati ? G. Mecca - Tecnologie di Sviluppo per il Web

B2B … <?xml version=“1.0” ?> <ordine> XML >> Concetti Fondamentali >> Il Successo di XML B2B ordine … data cons prod qta indirizzo Cornetto 300 giorno mese anno via citta CAP 15 giugno 2002 dei Frassini Potenza 85100 <?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> G. Mecca - Tecnologie di Sviluppo per il Web

Namespace Ambiguità Spazio di Nomi (“Namespace”) XML >> Concetti Fondamentali >> NameSpace Namespace Ambiguità es: prezzo (con IVA o senza IVA ?) es: protocollo (tecnologia o burocrazia ?) Spazio di Nomi (“Namespace”) tecnica standard (W3C) per qualificare i nomi per risolvere l’ambiguità, è possibile “annotare” un nome di elemento con un URI es: http://www.ietf.org, oppure http://www.funzionepubblica.it G. Mecca - Tecnologie di Sviluppo per il Web

Namespace Attenzione Quindi in questo caso, l’URI è solo un URN XML >> Concetti Fondamentali >> NameSpace Namespace Attenzione in questo caso, l’URI è 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 un’autorità che ha controllo sui nomi descritti dal namespace G. Mecca - Tecnologie di Sviluppo per il Web

Il Namespace di XHTML http://www.w3.org/1999/xhtml XML >> Concetti Fondamentali >> NameSpace Il Namespace di XHTML http://www.w3.org/1999/xhtml G. Mecca - Tecnologie di Sviluppo per il Web

Namespace Sintatticamente attributo speciale “xmlns” XML >> Concetti Fondamentali >> NameSpace Namespace Sintatticamente attributo speciale “xmlns” prefisso distinto per ciascun namespace definito nella radice di un sottoalbero es: <ordine xmlns:w3c=“http://www.w3.org” xmlns:fp=“http://www.funzionepubblica.it”> visibilità nel sottoalbero nomi composti con il prefisso es: <w3c:protocollo>, <fp:protocollo> G. Mecca - Tecnologie di Sviluppo per il Web

Schemi Regole della sintassi Documento Ben Formato (“well formed”) XML >> Concetti Fondamentali >> Schemi Schemi Regole della sintassi i documenti devono essere “ben formati” >> conseg. dell’algoritmo di codifica dell’InfoSet Documento Ben Formato (“well formed”) prologo corretta nidificazione dei tag; es: <a><b>...</b></a> e non <a><b>...</a></b> corretta codifica degli attributi (virgolette) corretta codifica dei valori G. Mecca - Tecnologie di Sviluppo per il Web

Schemi Schema per un Documento XML XML >> Concetti Fondamentali >> Schemi Schemi Schema 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 Documento valido rispetto a uno schema l’albero è conforme allo schema (ovvero: è un’istanza dello schema) G. Mecca - Tecnologie di Sviluppo per il Web

Schemi Esistono due categorie di schemi XML >> Concetti Fondamentali >> Schemi Schemi Esistono due categorie di schemi DTD (“Document Type Declaration”) orientato ai documenti elettronici parte dello standard XML 1.0 XML Schema standard successivo orientato alla descrizione dei dati G. Mecca - Tecnologie di Sviluppo per il Web

DTD Albero sintattico di una “grammatica” XML >> Concetti Fondamentali >> Schemi DTD Albero sintattico di una “grammatica” basato su “espressioni regolari” Un solo tipo di valori: la stringa #PCDATA Rispetto agli schemi di basi di dati l’enfasi non è sulla natura dei valori (tipi) ma sulla posizione reciproca e sulle occorrenze degli elementi G. Mecca - Tecnologie di Sviluppo per il Web

Struttura del DTD Nodi ordinari Nodi per attributi (nome e tipo) XML >> Concetti Fondamentali >> Schemi Struttura del DTD Nodi ordinari documento 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 elementi nodo sequenza – seq oppure , nodo alternativa – U oppure I G. Mecca - Tecnologie di Sviluppo per il Web

DTD Indicatori di cardinalità etichette degli archi dell’albero XML >> Concetti Fondamentali >> Schemi DTD Indicatori di cardinalità etichette degli archi dell’albero indicano la numerosità degli elementi presenti in un sottoalbero minimo e massimo numero di occorrenze del sottoalbero una o più volte – 1..* oppure + zero o una volta – 0..1 oppure ? zero o più volte – 0..* oppure * G. Mecca - Tecnologie di Sviluppo per il Web

rifti IDREFS #REQUIRED XML >> Concetti Fondamentali >> Schemi DTD libro seq + indice titolo autore capitolo * #PCDATA #PCDATA voce seq + rifti IDREFS #REQUIRED titolo paragrafo #PCDATA seq #PCDATA codice titolo testo * pid ID #REQUIRED #PCDATA U citazione #PCDATA #PCDATA G. Mecca - Tecnologie di Sviluppo per il Web

riferimento al DTD: <!DOCTYPE libro SYSTEM “libro.dtd”> XML >> Concetti Fondamentali >> Schemi 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> vincolo: una sola definizione per ogni elemento riferimento al DTD: <!DOCTYPE libro SYSTEM “libro.dtd”> >> libro.xml, libro.dtd G. Mecca - Tecnologie di Sviluppo per il Web

Validità XML >> Concetti Fondamentali >> Schemi documento libro (A) titolo autore capitolo capitolo Goedel, Escher Bach … Douglas R. Hofstadter DTD libro libro + seq titolo capitolo autore titolo (B) capitolo capitolo autore Douglas R. Hofstadter Goedel, Escher Bach … #PCDATA #PCDATA libro (C) titolo autore Goedel, Escher Bach … Douglas R. Hofstadter G. Mecca - Tecnologie di Sviluppo per il Web

Validità U struttura tipica per gli elementi di contenuto misto XML >> Concetti Fondamentali >> Schemi documento Validità (A) testo Una sera, proprio… DTD testo testo (B) citazione * U Una sera, proprio… #PCDATA citazione (C) testo #PCDATA testo struttura tipica per gli elementi di contenuto misto (D) Federico il Grande … Quando Bach… citazione Una sera, proprio… G. Mecca - Tecnologie di Sviluppo per il Web

DTD per la Base di Dati Universitaria XML >> Concetti Fondamentali >> Schemi 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)> G. Mecca - Tecnologie di Sviluppo per il Web

DTD In sintesi Un esempio interessante XML >> Concetti Fondamentali >> Schemi DTD In sintesi il DTD è il prototipo per una classe di documenti XML validi rispetto al DTD Un esempio interessante il linguaggio XHTML collezione di documenti XML validi rispetto al DTD definito dal consorzio (xhtml1-strict.dtd) problema di correttezza del codice XHTML G. Mecca - Tecnologie di Sviluppo per il Web

Validatori Validatore Un esempio Sintassi XML >> Concetti Fondamentali >> Schemi Validatori Validatore applicazione che verifica la validità di un documento XML rispetto al suo schema Un esempio xmlvalid (http://www.elcel.com/products/xmlvalid.html) Sintassi xmlvalid <file.xml> >> univ.xml, univ.dtd >> xmlvalid univ.xml G. Mecca - Tecnologie di Sviluppo per il Web

DTD: Limiti Esiste un unico tipo di dati Un DTD non è un documento XML XML >> Concetti Fondamentali >> Schemi 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 Scarsa modularità non è possibile riutilizzare o estendere le strutture definite G. Mecca - Tecnologie di Sviluppo per il Web

XML Schema Standard recente del consorzio Livello base: XML >> Concetti Fondamentali >> Schemi XML Schema Standard recente del consorzio raccomandazione del Maggio 2001 Livello base: “DTD con tipi di dato” Livello avanzato: meccanismi per il riuso di schemi vincoli di integrità avanzati G. Mecca - Tecnologie di Sviluppo per il Web

XML Schema Sintassi XML Più di 40 tipi di base per i valori XML >> Concetti Fondamentali >> Schemi 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 G. Mecca - Tecnologie di Sviluppo per il Web

XML Schema: Esempio XML >> Concetti Fondamentali >> Schemi <?xml version=“1.0” ?> <xsd:schema xmlns:xsd=“http://www.w3.org/1999/XMLSchema”> <xsd:complexType name=“tipoStudente”> <xsd:sequence> <xsd:element name=“matricola“ type="xsd:integer"/> <xsd:element name=“nome" type="xsd:string"/> <xsd:element name=“dataN“ type="xsd:date"/> <xsd:union> <xsd:element name=“claurea" type="xsd:string"/> <xsd:element name=“claureaSp" type="xsd:string"/> </xsd:union> <xsd:element name=“esame” maxOccurs=“30” type=“tipoEsame”> </xsd:sequence> <xsd:attribute name=“sesso” type=“xsd:string”/> </xsd:complexType> <xsd:element name=“studente“ type=“tipoStudente”/> ... </xsd:schema> G. Mecca - Tecnologie di Sviluppo per il Web

DOM (Document Object Model) XML >> Concetti Fondamentali >> DOM 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. G. Mecca - Tecnologie di Sviluppo per il Web

DOM (Document Object Model) XML >> Concetti Fondamentali >> DOM DOM (Document Object Model) >> Mozilla DOM Inspector Implementazione in Java classi e metodi per costruire la rappresentaz. Java dell’InfoSet da un documento XML classi e metodi per navigare l’albero JAXP (Java 2 SE 1.4) Terminologicamente molti confondono InfoSet e DOM ovvero chiamano DOM l’albero invece che la sua rappresentazione nel linguaggio G. Mecca - Tecnologie di Sviluppo per il Web

DOM (Document Object Model) XML >> Concetti Fondamentali >> DOM DOM (Document Object Model) Alternativa SAX – “Simple API for XML Processing” http://www.saxproject.org/ standard di fatto Differenze tra DOM e SAX struttura di dati vs. eventi parsing completo vs. parsing incrementale G. Mecca - Tecnologie di Sviluppo per il Web

Utilizzo di XML nelle Applicazioni Web XML >> Concetti Fondamentali >> Utilizzo di XML Utilizzo di XML nelle Applicazioni Web In quale strato viene usato XML ? viene utilizzato in tutti gli strati dell’architettura Sul lato del client tecnologia fondamentale è la base per la nuova generazione di linguaggi di marcatura XHTML: versione di HTML costruita secondo le regole del modello e della sintassi XML G. Mecca - Tecnologie di Sviluppo per il Web

Utilizzo di XML nelle Applicazioni Web XML >> Concetti Fondamentali >> Utilizzo di XML 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 applicativo viene utilizzato per la configurazione dell’applicazione Web e del server applicativo G. Mecca - Tecnologie di Sviluppo per il Web

Riassumendo Introduzione Modello Logico Sintassi XML XML >> Sommario Riassumendo Introduzione Modello Logico Alberi XML (“InfoSet”) Sintassi XML Il Successo di XML Spazi di Nomi (“Namespace”) Schemi DTD XMLSchema – cenni DOM (Document Object Model) Utilizzo di XML nelle Applicazioni Web G. 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. G. Mecca - Tecnologie di Sviluppo per il Web