G. Mecca – [email protected] – Università della Basilicata Tecnologie di Sviluppo per il Web XML:...
-
Upload
filippo-vianello -
Category
Documents
-
view
226 -
download
0
Transcript of G. Mecca – [email protected] – Università della Basilicata Tecnologie di Sviluppo per il Web XML:...
G. Mecca – [email protected] – Università della Basilicata G. Mecca – [email protected] – Università della Basilicata
Tecnologie di Sviluppo per il Web
XML:
Dettagli e Approfondimenti
versione 2.0Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons
(vedi ultima pagina)
2G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web
Dettagli e Approfondimenti
Un Ulteriore EsempioIl Sistema PdD
Dettagli sulla SintassiEntitàDTD
Validatori
XML >> Sommario
3G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web
Un Ulteriore Esempio
Il Sistema PdDun 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
XML >> Dettagli e Approfondimenti >> Un Ulteriore Esempio
4G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web
Un Ulteriore Esempio
Ideacostituire archivi di domande e questionari
come file XMLsulla base di un DTD fissato
Attenzionefisicamente si tratta di file di testoma la struttura logica che c’è dietro è quella
di un albero
XML >> Dettagli e Approfondimenti >> Un Ulteriore Esempio
>> PdD-archivioQuesitiGeografia.xml>> DOM Inspector
5G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web
Dettagli sulla Sintassi
Regole generalisensibile alle maiuscoleconvenzione: minuscole
Identificatori (nomi)iniziano per lettera oppure _ oppure :sequenza di lettere, cifre, _
Namespaceattributi speciali degli elementi
<collezioneQuesiti xmlns:pdd=“http://www.db.unibas.it”><pdd:quesito>...</pdd:quesito>
XML >> Dettagli e Approfondimenti >> Dettagli Sulla Sintassi
6G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web
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, valorialtri oggetti: commenti, entità
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi
7G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web
Dettagli sulla Sintassi
Elementitag 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 unicoes: <collezioneQuesiti disciplina="Geografia"> ...
</collezioneQuesiti>
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi
8G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web
Dettagli sulla Sintassi
Attributi<soluzione lettera="b" />
Valoristringhe di caratteri
Commenti<!-- testo del commento -->
Entitàdefinizioni di costanti o “macro”
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi
9G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web
Entità
Due categoriegeneral entity, parameter entity (nel DTD >>)
General Entitydefinite nel DTD, utilizzate nel documentoes: 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
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi
10G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web
Entità
Esistono varie entità predefinite di XMLcorrispondono ai caratteri riservati della sintassiesempi: < <
> > & & ' ‘ " “
Più in generaleesiste 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 > (>)
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi
11G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web
DTD
Schema per il documento XMLvincoli sulla struttura dell’albero
Sintassi per i DTDnon è basata su XML
Esempio<!ELEMENT archivioDomande (elencoArgomenti, elencoQuesiti)><!ATTLIST archivioDomande
disciplina CDATA #REQUIRED><!ELEMENT elencoArgomenti (argomento)* >
...
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi
12G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web
DTD
Riferimento al DTDnodo DOCTYPEriporta il riferimento all’URI del DTD (relativo
o assoluto)es: <!DOCTYPE archivioDomande SYSTEM
"pdd_0_2.dtd">
Attenzionela presenza dello schema è opzionaledocumenti validi e documenti ben formati
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi
13G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web
DTD
DTD internoil DTD può essere contenuto nel file XML<!DOCTYPE archivioDomande [
<!ELEMENT archivioDomande
(elencoArgomenti,elencoQuesiti)><!ATTLIST archivioDomande
disciplina CDATA #REQUIRED…
]>
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi
14G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web
DTD
Identificatore del DTDnormalmente: 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">
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi
15G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web
DTD
Contenuto del DTDdichiarazione di elementidichiarazioni di attributodichiarazione di entità
Parameter Entitypezzi di DTD da riutilizzare varie voltesono utilizzate nel DTD e non nel doc. xml
(differenza con le entità generali)
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi
16G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web
DTD
Utilizzo tipicodefinisco la struttura di un albero in un DTDriutilizzo 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;
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi
>> collezioneProve.dtd
17G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web
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> | … )*EMPTYANY
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi
18G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web
DTD
Utilizzo di EMPTYper 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" />
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi
19G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web
DTD
Utilizzo di ANYper 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
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi
20G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web
DTD
Definizione degli attributi<!ATTLIST nomeEl listaDefAttributi>
Definizione dell’attributonomeAttr tipo vincolo
Esempio<!ATTLIST soluzione
lettera CDATA #REQUIRED>
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi
21G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web
DTD
Tipo dell’attributoCDATA: testoID: identificatore; non ammette duplicatiIDREF: 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
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi
22G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web
DTD
Vincoli sull’attributo#REQUIRED obbligatorio
es: <!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>
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi
23G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web
Validatori
Esistono vari validatorialcuni supportano solo DTDaltri anche XMLSchema
Browsertutti i principali browser effettuano la
convalida dell’XMLIE6, Mozilla, Netscape
XML >> Dettagli e Approfondimenti >> Validatori
24G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web
Validatori
In questo corsoxmlvalid, semplice da usare, efficace
Altri esempiRXP – Univ. of Edimburgh
http://www.ltg.ed.ac.uk/~richard/xml-check.htmlXSV – Univ. of Edimburgh, W3C
http://www.w3.org/2001/03/webdata/xsv
Altri validatorihttp://w3.org/XML, http://www.w3.org/XML/Schema
XML >> Dettagli e Approfondimenti >> Validatori
25G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web
Riassumendo
Un Ulteriore EsempioIl Sistema PdD
Dettagli sulla SintassiEntitàDTD
Validatori
XML >> Sommario
26G. Mecca - Tecnologie di Sviluppo per il WebG. 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.