1 / 54

Tecnologie di Sviluppo per il Web

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). XML >> Sommario. Concetti Fondamentali. Introduzione Modello Logico Alberi XML (“InfoSet”) Sintassi XML

annick
Download Presentation

Tecnologie di Sviluppo per il Web

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

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

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

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

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

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

  8. 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

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

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

  11. 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

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

  13. 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

  14. 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

  15. 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 riferimenties: riferimenti dagli esami ai corsi • ma è possibile utilizzare la nidificazionees: esami “nidificati” all’interno degli studenti • altre differenze: attributi, contenuto misto (>>) G. Mecca - Tecnologie di Sviluppo per il Web

  16. 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

  17. 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

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

  19. 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

  20. 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

  21. 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

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

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

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

  25. 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

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

  27. 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

  28. 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

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

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

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

  32. 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

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

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

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

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

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

  38. 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

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

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

  41. 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

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

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

  44. 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

  45. 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

  46. 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

  47. XML >> Concetti Fondamentali >> Schemi XML Schema: Esempio <?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

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

  49. 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

  50. 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

More Related