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 – [email protected] – 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
2
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
3
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
4
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
5
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
6
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
7
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
8
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
9
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi
Entità

Esistono varie entità predefinite di XML
corrispondono ai caratteri riservati della sintassi
esempi:
&lt;
<
&gt;
>
&amp;
&
&apos;
‘
&quot;
“

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: &#62 equivale a &gt; (>)
G. Mecca - Tecnologie di Sviluppo per il Web
10
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
11
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
12
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 archivioDomande
disciplina CDATA #REQUIRED
…
]>
G. Mecca - Tecnologie di Sviluppo per il Web
13
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
14
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
15
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
16
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
17
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
<soluzione lettera="b" />
<!ELEMENT difficolta
<difficolta valore="0" />
G. Mecca - Tecnologie di Sviluppo per il Web
EMPTY>
EMPTY>
18
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
19
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi
DTD
 Definizione
degli attributi
<!ATTLIST nomeEl
 Definizione
nomeAttr
listaDefAttributi>
dell’attributo
tipo vincolo
 Esempio
<!ATTLIST soluzione
lettera CDATA #REQUIRED>
G. Mecca - Tecnologie di Sviluppo per il Web
20
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
21
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi
DTD
 Vincoli
sull’attributo
#REQUIRED
obbligatorio
es: <!ATTLIST soluzione lettera CDATA #REQUIRED>
#IMPLIED
opzionale
es: <!ATTLIST elencoQuesiti disciplina CDATA #IMPLIED>
valore
opzionale con v. standard
es: <!ATTLIST difficolta valore CDATA "1">
#FIXED valore
valore fissato
es: <!ATTLIST difficolta valore "1“ #FIXED>
G. Mecca - Tecnologie di Sviluppo per il Web
22
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
23
XML >> Dettagli e Approfondimenti >> Validatori
Validatori
 In
questo corso
xmlvalid, semplice da usare, efficace
 Altri
esempi
RXP – Univ. of Edimburgh
http://www.ltg.ed.ac.uk/~richard/xml-check.html
XSV – Univ. of Edimburgh, W3C
http://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
24
XML >> Sommario
Riassumendo
 Un
Ulteriore Esempio
Il Sistema PdD
 Dettagli
sulla Sintassi
Entità
DTD
 Validatori
G. Mecca - Tecnologie di Sviluppo per il Web
25
Termini della Licenza
Termini della Licenza

This work is licensed under the Creative Commons AttributionShareAlike 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
26
Scarica

Dettagli e Approfondimenti () - Corso di Laurea in Informatica