260 likes | 405 Views
Tecnologie di Sviluppo per il Web. XML: Dettagli e Approfondimenti. versione 2.0. Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina). XML >> Sommario. Dettagli e Approfondimenti. Un Ulteriore Esempio Il Sistema PdD
E N D
Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti 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
XML >> Sommario Dettagli e Approfondimenti • Un Ulteriore Esempio • Il Sistema PdD • Dettagli sulla Sintassi • Entità • DTD • Validatori G. Mecca - Tecnologie di Sviluppo per il Web
XML >> Dettagli e Approfondimenti >> Un Ulteriore Esempio Un Ulteriore Esempio • Il Sistema PdD • un sistema per la costruzione di questionari cartacei ed elettronici • Esigenza • costituire e gestire archivi di domande per varie discipline • creare e stampare questionari sulla base degli archivi • XML è una soluzione ideale G. Mecca - Tecnologie di Sviluppo per il Web
XML >> Dettagli e Approfondimenti >> Un Ulteriore Esempio Un Ulteriore Esempio • Idea • costituire archivi di domande e questionari come file XML • sulla base di un DTD fissato • Attenzione • fisicamente si tratta di file di testo • ma la struttura logica che c’è dietro è quella di un albero >> PdD-archivioQuesitiGeografia.xml >> DOM Inspector G. Mecca - Tecnologie di Sviluppo per il Web
XML >> Dettagli e Approfondimenti >> Dettagli Sulla Sintassi Dettagli sulla Sintassi • Regole generali • sensibile alle maiuscole • convenzione: minuscole • Identificatori (nomi) • iniziano per lettera oppure _ oppure : • sequenza di lettere, cifre, _ • Namespace • attributi speciali degli elementi <collezioneQuesiti xmlns:pdd=“http://www.db.unibas.it”> <pdd:quesito>...</pdd:quesito> G. Mecca - Tecnologie di Sviluppo per il Web
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi Dettagli sulla Sintassi • Contenuto di un documento XML • Istruzioni di Elaborazione • es: prologo <? xml version=“1.0 ?> • es: foglio di stile <?xml-stylesheet type="text/xsl" href="PdD-stile.xsl"?> • Dichiarazione di DTD (DOCTYPE) >> • Descrizione dell’albero • elementi, attributi, valori • altri oggetti: commenti, entità G. Mecca - Tecnologie di Sviluppo per il Web
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi Dettagli sulla Sintassi • Elementi • tag di apertura (“start tag”) es: <quesito> • tag di chiusura (“end tag”) es: </quesito> • tag di elem. vuoto (“empty element tag”)es: <soluzione lettera="b" /> • Elemento principale • deve essere unico • es: <collezioneQuesiti disciplina="Geografia"> ... </collezioneQuesiti> G. Mecca - Tecnologie di Sviluppo per il Web
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi Dettagli sulla Sintassi • Attributi • <soluzione lettera="b" /> • Valori • stringhe di caratteri • Commenti • <!-- testo del commento --> • Entità • definizioni di costanti o “macro” G. Mecca - Tecnologie di Sviluppo per il Web
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi Entità • Due categorie • general entity, parameter entity (nel DTD >>) • General Entity • definite nel DTD, utilizzate nel documento • es: quesiti di analisi <!ENTITY pigreco “3.1412”> • utilizzo della costante: &<nome>; es: &pigreco; • possono essere definite all’esterno<!ENTITY capitolo1 SYSTEM “cap1.xml”> • per includere il contenuto di cap1.xml in libro.xml G. Mecca - Tecnologie di Sviluppo per il Web
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi Entità • Esistono varie entità predefinite di XML • corrispondono ai caratteri riservati della sintassi • esempi: < <> > & & ' ‘ " “ • Più in generale • esiste un’entità predefinita per ogni carattere del set di caratteri ISO/IEC 10646 • &#<n>, dove <n> è il codice esadecimale del carattere ISO es: > equivale a > (>) G. Mecca - Tecnologie di Sviluppo per il Web
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi DTD • Schema per il documento XML • vincoli sulla struttura dell’albero • Sintassi per i DTD • non è basata su XML • Esempio <!ELEMENT archivioDomande (elencoArgomenti, elencoQuesiti)><!ATTLIST archivioDomande disciplina CDATA #REQUIRED><!ELEMENT elencoArgomenti (argomento)* >... G. Mecca - Tecnologie di Sviluppo per il Web
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi DTD • Riferimento al DTD • nodo DOCTYPE • riporta il riferimento all’URI del DTD (relativo o assoluto) • es: <!DOCTYPE archivioDomande SYSTEM "pdd_0_2.dtd"> • Attenzione • la presenza dello schema è opzionale • documenti validi e documenti ben formati G. Mecca - Tecnologie di Sviluppo per il Web
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi DTD • DTD interno • il DTD può essere contenuto nel file XML • <!DOCTYPE archivioDomande [ <!ELEMENT archivioDomande (elencoArgomenti,elencoQuesiti)> <!ATTLIST archivioDomandedisciplina CDATA #REQUIRED…]> G. Mecca - Tecnologie di Sviluppo per il Web
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi DTD • Identificatore del DTD • normalmente: identificatore di “sistema” (SYSTEM) • Identificatori pubblici • alcuni DTD molto utilizzati hanno un “nome” pubblico (PUBLIC); es: il DTD di XHTML • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN“"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> G. Mecca - Tecnologie di Sviluppo per il Web
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi DTD • Contenuto del DTD • dichiarazione di elementi • dichiarazioni di attributo • dichiarazione di entità • Parameter Entity • pezzi di DTD da riutilizzare varie volte • sono utilizzate nel DTD e non nel doc. xml(differenza con le entità generali) G. Mecca - Tecnologie di Sviluppo per il Web
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi DTD • Utilizzo tipico • definisco la struttura di un albero in un DTD • riutilizzo la struttura in un altro DTD senza doverla ridefinire • Esempio • collezioneProve.dtd: collezione di questionari • <!ENTITY % collezioneQuesiti SYSTEM “collezioneQuesiti_0_2.dtd”> • nel DTD: %collezioneQuesiti; >> collezioneProve.dtd G. Mecca - Tecnologie di Sviluppo per il Web
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi DTD • Definizione degli elementi • <!ELEMENT nome (contenuto)> • es: <!ELEMENT elencoQuesiti (quesito)* > • Una sola dichiarazione per ogni nome • Modello di contenuto (“content model”) • ELEMENT ONLY elementi combinati con * + ? • TEXT (#PCDATA) • MIXED (#PCDATA | <el1> | <el2> | … )* • EMPTY • ANY G. Mecca - Tecnologie di Sviluppo per il Web
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi DTD • Utilizzo di EMPTY • per quegli elementi che hanno attributi ma non hanno contenuto nè sottoelementi • è quasi sempre possibile evitarlo, tranne che a scopo di presentazione (es: HTML) • Esempio <!ELEMENT soluzione EMPTY> <soluzione lettera="b" /> <!ELEMENT difficolta EMPTY> <difficolta valore="0" /> G. Mecca - Tecnologie di Sviluppo per il Web
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi DTD • Utilizzo di ANY • per quegli elementi di cui non si vuole vincolare il contenuto • Esempio • <!ELEMENT risposta ANY> • nelle risposte proposte per una domanda è opportuno poter specificare elementi diversi; es: immagini, o testo formattato G. Mecca - Tecnologie di Sviluppo per il Web
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi DTD • Definizione degli attributi • <!ATTLIST nomeEl listaDefAttributi> • Definizione dell’attributo • nomeAttr tipo vincolo • Esempio <!ATTLIST soluzione lettera CDATA #REQUIRED> G. Mecca - Tecnologie di Sviluppo per il Web
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi DTD • Tipo dell’attributo • CDATA: testo • ID: identificatore; non ammette duplicati • IDREF: riferimento ad un ID (integr. ref.) • IDREFS: riferimenti ad una lista di ID (integrità referenziale) • tipo enumerato: (val1 | val2 | … | valn)es: centesimi (“1” | “2” | “5” | “10” | “20” | “50””) • NMTOKEN, NMTOKENS G. Mecca - Tecnologie di Sviluppo per il Web
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi DTD • Vincoli sull’attributo • #REQUIRED obbligatorioes: <!ATTLIST soluzione lettera CDATA #REQUIRED> • #IMPLIED opzionale es: <!ATTLIST elencoQuesiti disciplina CDATA #IMPLIED> • valore opzionale con v. standardes: <!ATTLIST difficolta valore CDATA "1"> • #FIXED valore valore fissatoes: <!ATTLIST difficolta valore "1“ #FIXED> G. Mecca - Tecnologie di Sviluppo per il Web
XML >> Dettagli e Approfondimenti >> Validatori Validatori • Esistono vari validatori • alcuni supportano solo DTD • altri anche XMLSchema • Browser • tutti i principali browser effettuano la convalida dell’XML • IE6, Mozilla, Netscape G. Mecca - Tecnologie di Sviluppo per il Web
XML >> Dettagli e Approfondimenti >> Validatori Validatori • In questo corso • xmlvalid, semplice da usare, efficace • Altri esempi • RXP – Univ. of Edimburghhttp://www.ltg.ed.ac.uk/~richard/xml-check.html • XSV – Univ. of Edimburgh, W3Chttp://www.w3.org/2001/03/webdata/xsv • Altri validatori • http://w3.org/XML, http://www.w3.org/XML/Schema G. Mecca - Tecnologie di Sviluppo per il Web
XML >> Sommario Riassumendo • Un Ulteriore Esempio • Il Sistema PdD • Dettagli sulla Sintassi • Entità • DTD • Validatori 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