La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "G. Mecca – – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso."— Transcript della presentazione:

1 G. Mecca – – Università della 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)

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

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

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

5 5 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione m Che cosè XML ? XML >> Concetti Fondamentali >> Introduzione Il Webmaster smanettone Lesperto di documenti Lintegratore di sistemi informativi XML è la tecnologia che risolverà tutti i problemi dello scambio di dati tra applicazioni

6 6 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione m Che cosè XML ? XML >> Concetti Fondamentali >> Introduzione Il Webmaster smanettone Lesperto di documenti Il venditore di DBMS Lintegratore di sistemi informativi XML è la tecnologia che risolverà tutti i problemi dei sistemi di basi di dati

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

8 8 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione m Un po di storia una raccomandazione del W3C del 1998 (World Wide Web Consortium, tradizione dei documenti strutturati (discende da uno standard precedente: SGML) pensato originariamente come sostituto di HTML per il Web (Web Semantico) m Successivamente, altre applicazioni adottato come formato di scambio tra applicazioni recentemente, DBMS basati su XML XML >> Concetti Fondamentali

9 9 G. Mecca - Tecnologie di Sviluppo per il Web La Galassia di XML (w3.org) m XML e DTD m InfoSet m DOM m Namespace m XMLSchema m XLink m XPointer m SAX m CSS m XSL, XSLT, XSL-FO m XPath m XQuery m XForm m XInclude m XBase m … XML >> Concetti Fondamentali >> Introduzione

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

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

12 12 G. Mecca - Tecnologie di Sviluppo per il Web Alberi XML XML >> Concetti Fondamentali >> Modello Logico id=a01 … … univstudenticorsistudentecorsomatricolanomedataNesamititolo 6554Rossi Mario5/12/1978 esame idref=a01 voto scala=3027 docente AnalisiPinco Palla lode=no … nodo radice (documento) elemento principale attributo valore riferimento elementi studentecorsoesame InfoSet InfoItems …

13 13 G. Mecca - Tecnologie di Sviluppo per il Web Alberi XML m Radice (Documento) m Elemento principale m Nodi intermedi: elementi con sottoalberi di elementi, attributi e valori m Nodi foglia: attributi e valori attributi: coppie (nome, valore) valori: stringhe, numeri, date, ecc. XML >> Concetti Fondamentali >> Modello Logico

14 14 G. Mecca - Tecnologie di Sviluppo per il Web Alberi XML m Funzione degli attributi simili ad una coppia elemento+valore m 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) XML >> Concetti Fondamentali >> Modello Logico

15 15 G. Mecca - Tecnologie di Sviluppo per il Web Alberi XML m 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 allinterno degli studenti altre differenze: attributi, contenuto misto (>>) XML >> Concetti Fondamentali >> Modello Logico

16 16 G. Mecca - Tecnologie di Sviluppo per il Web Alberi XML m Differenza con i modelli a oggetti gli elementi dellalbero 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à XML >> Concetti Fondamentali >> Modello Logico

17 17 G. Mecca - Tecnologie di Sviluppo per il Web Sintassi XML m Rappresentazione degli alberi attraverso file di testo o documenti sintassi concreta definita nello standard basata su marcatori (tag) m Algoritmo ricorsivo di codifica visita in preordine dellalbero per ogni albero: tag di apertura; es: codifica ricorsiva del sottoalbero tag di chiusura; es: codifica opportuna per le foglie (valori e attr.) XML >> Concetti Fondamentali >> Sintassi XML

18 18 G. Mecca - Tecnologie di Sviluppo per il Web Sintassi XML 6554 Rossi Mario XML >> Concetti Fondamentali >> Sintassi XML id=a01 … … univstudenticorsistudentecorsomatricolanome 6554Rossi Mario … esamiesamevoto scala=3027 … … lode=no file di testo es: univ.xml

19 19 G. Mecca - Tecnologie di Sviluppo per il Web Sintassi XML m In sostanza alla nidificazione dei nodi nellInfoset corrisponde la nidificazione dei tag nel doc. tutti i valori sono codificati come caratteri m 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) m Pregio della sintassi semplice da interpretare per il programmat. XML >> Concetti Fondamentali >> Sintassi XML

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

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

22 22 G. Mecca - Tecnologie di Sviluppo per il Web Documenti XML >> Concetti Fondamentali >> Il Successo di XML rifti=par01 par04 par07 … … … libroindicecapitolovocetitolo Unofferta musico-logica Bach capitolotitolo Goedel, Escher Bach: UnEterna Ghirlanda Brillante autore Douglas R. Hofstadter paragrafo titolo Bach pid=par01 codicetesto Federico il Grande … citazione Una sera, proprio… Quando Bach… … voce solo elementi solo testo misto vuoto Contenuto:

23 23 G. Mecca - Tecnologie di Sviluppo per il Web Contenuto di Un Elemento m Solo elementi element only es: m Solo valori text es: D. Hofstadter XML >> Concetti Fondamentali >> Il Successo di XML

24 24 G. Mecca - Tecnologie di Sviluppo per il Web Contenuto di Un Elemento m Misto (elementi e valori) mixed es : Federico il Grande … Una sera … Quando Bach... m Vuoto (solo attributi) empty es: oppure, XML >> Concetti Fondamentali >> Il Successo di XML

25 25 G. Mecca - Tecnologie di Sviluppo per il Web Integrazione di Applicazioni m Applicazioni business to business (B2B) es: il sistema informativo di un supermercato COOP ordina gelati al sistema informativo dellAlgida m Sistema Informativo della COOP DBMS relazionale, applicazioni in C, TCP/IP m Sistema Informativo dellAlgida DBMS a oggetti, applicazioni in Java, TCP/IP m Come si scambiano i dati ? XML >> Concetti Fondamentali >> Il Successo di XML

26 26 G. Mecca - Tecnologie di Sviluppo per il Web B2B Cornetto giugno 2002 dei Frassini Potenza XML >> Concetti Fondamentali >> Il Successo di XML ordinedata consindirizzogiornocitta 15 meseprod Cornetto qta 300 via dei Frassini CAPanno giugno2002 Potenza85100 …

27 27 G. Mecca - Tecnologie di Sviluppo per il Web Namespace m Ambiguità es: prezzo (con IVA o senza IVA ?) es: protocollo (tecnologia o burocrazia ?) m Spazio di Nomi (Namespace) tecnica standard (W3C) per qualificare i nomi per risolvere lambiguità, è possibile annotare un nome di elemento con un URI es: oppure XML >> Concetti Fondamentali >> NameSpace

28 28 G. Mecca - Tecnologie di Sviluppo per il Web Namespace m 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 m 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 XML >> Concetti Fondamentali >> NameSpace

29 29 G. Mecca - Tecnologie di Sviluppo per il Web Il Namespace di XHTML XML >> Concetti Fondamentali >> NameSpace

30 30 G. Mecca - Tecnologie di Sviluppo per il Web Namespace m Sintatticamente attributo speciale xmlns prefisso distinto per ciascun namespace definito nella radice di un sottoalbero es: visibilità nel sottoalbero nomi composti con il prefisso es:, XML >> Concetti Fondamentali >> NameSpace

31 31 G. Mecca - Tecnologie di Sviluppo per il Web Schemi m Regole della sintassi i documenti devono essere ben formati >> conseg. dellalgoritmo di codifica dellInfoSet m Documento Ben Formato (well formed) prologo corretta nidificazione dei tag; es:... e non... corretta codifica degli attributi (virgolette) corretta codifica dei valori XML >> Concetti Fondamentali >> Schemi

32 32 G. Mecca - Tecnologie di Sviluppo per il Web Schemi m 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 m Documento valido rispetto a uno schema lalbero è conforme allo schema (ovvero: è unistanza dello schema) XML >> Concetti Fondamentali >> Schemi

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

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

35 35 G. Mecca - Tecnologie di Sviluppo per il Web Struttura del DTD m Nodi ordinari documento ed elementi m Nodi per attributi (nome e tipo) vincoli sugli attributi (chiavi e riferimenti) m Nodi per i valori (#PCDATA) m Nodi speciali nodi che descrivono lordine degli elementi nodo sequenza – seq oppure, nodo alternativa – U oppure I XML >> Concetti Fondamentali >> Schemi

36 36 G. Mecca - Tecnologie di Sviluppo per il Web DTD m Indicatori di cardinalità etichette degli archi dellalbero 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 * XML >> Concetti Fondamentali >> Schemi

37 37 G. Mecca - Tecnologie di Sviluppo per il Web DTD XML >> Concetti Fondamentali >> Schemi libroindicecapitolovocetitolo #PCDATA autoreparagrafotitolo pid ID #REQUIRED codicetestocitazione #PCDATA rifti IDREFS #REQUIRED seq #PCDATA seq #PCDATA U + * + seq *

38 38 G. Mecca - Tecnologie di Sviluppo per il Web DTD: Sintassi XML >> Concetti Fondamentali >> Schemi vincolo: una sola definizione per ogni elemento >> libro.xml, libro.dtd riferimento al DTD:

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

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

41 41 G. Mecca - Tecnologie di Sviluppo per il Web DTD per la Base di Dati Universitaria XML >> Concetti Fondamentali >> Schemi

42 42 G. Mecca - Tecnologie di Sviluppo per il Web DTD m In sintesi il DTD è il prototipo per una classe di documenti XML validi rispetto al DTD m 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 XML >> Concetti Fondamentali >> Schemi

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

44 44 G. Mecca - Tecnologie di Sviluppo per il Web DTD: Limiti m Esiste un unico tipo di dati #PCDATA m Un DTD non è un documento XML sintassi diversa, problemi di parsing m Definizione imprecisa di contenuto misto es: al massimo due citazioni m Scarsa modularità non è possibile riutilizzare o estendere le strutture definite XML >> Concetti Fondamentali >> Schemi

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

46 46 G. Mecca - Tecnologie di Sviluppo per il Web XML Schema m Sintassi XML m Più di 40 tipi di base per i valori stringhe, numeri, date, ore, … m Sistema di costrutti più ricco sequenza (sequence) alternativa (union) cardinalità (minOccurs, maxOccurs) insieme (all) raffinamento del concetto di contenuto misto XML >> Concetti Fondamentali >> Schemi

47 47 G. Mecca - Tecnologie di Sviluppo per il Web XML Schema: Esempio...... XML >> Concetti Fondamentali >> Schemi

48 48 G. Mecca - Tecnologie di Sviluppo per il Web DOM (Document Object Model) m Standard W3C m API per programmare su un InfoSet collezione di interfacce m Oggetti del DOM lInfoSet è rappresentato da oggetti del linguaggio che costituiscono lalbero Document, DocumentType, Element, Attr, Comment, Text, NameSpace ecc. su ognuno sono definiti metodi per la manip. XML >> Concetti Fondamentali >> DOM

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

50 50 G. Mecca - Tecnologie di Sviluppo per il Web DOM (Document Object Model) m Alternativa SAX – Simple API for XML Processing standard di fatto m Differenze tra DOM e SAX struttura di dati vs. eventi parsing completo vs. parsing incrementale XML >> Concetti Fondamentali >> DOM

51 51 G. Mecca - Tecnologie di Sviluppo per il Web Utilizzo di XML nelle Applicazioni Web m In quale strato viene usato XML ? viene utilizzato in tutti gli strati dellarchitettura m 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 XML >> Concetti Fondamentali >> Utilizzo di XML

52 52 G. Mecca - Tecnologie di Sviluppo per il Web Utilizzo di XML nelle Applicazioni Web m Ma XML viene utilizzato anche negli altri strati m Sul lato della persistenza può essere utilizzato come tecnologia per la persistenza m Sul lato del server applicativo viene utilizzato per la configurazione dellapplicazione Web e del server applicativo XML >> Concetti Fondamentali >> Utilizzo di XML

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

54 54 G. Mecca - Tecnologie di Sviluppo per il Web Termini della Licenza m This work is licensed under the Creative Commons Attribution- ShareAlike License. To view a copy of this license, visit or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. m Questo lavoro viene concesso in uso secondo i termini della licenza Attribution-ShareAlike di Creative Commons. Per ottenere una copia della licenza, è possibile visitare oppure inviare una lettera allindirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.


Scaricare ppt "G. Mecca – – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Concetti Fondamentali versione 2.0 Questo lavoro è concesso."

Presentazioni simili


Annunci Google