(DTD) Document Type Definition - Laboratorio di Programmazione Distribuita Dott. Marco Bianchi
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Laboratorio di Programmazione Distribuita
Document Type Definition
(DTD)
Dott. Marco Bianchi
Università degli Studi di L'Aquila
bianchi@di.univaq.it
http://di.univaq.it/~bianchi
DTD
LPD - A.A. 2003/2004Relazione tra classi e oggetti in OO
Definizione ...
Classe Ennesima istanza di classe Slide
Slide String titolo=”Overview”;
...
...
Seconda istanza di classe Slide
String titolo=”Overview”;
...
Prima istanza di classe Slide
String titolo=”Wake up to WonderWidgets!”;
...
DTD
LPD - A.A. 2003/2004Ruolo del DTD
Document
Type
Definition Mr.
Sam
Fisher
...
2002 Main Street
Anytown
34829
Mrs.
Mary
McGoon
1401 Main Street
Anytown
34829
DTD
LPD - A.A. 2003/2004DTD
● Un DTD e’ un documento che definisce in modo
formale, utizzando una grammatica Extended
Backus-Naur Form (EBNF), le regole di una classe
di documenti XML
●
In un DTD si possono dichiarare:
– Gli elementi utilizzabili, in che ordine e con
quante occorrenze possono essere nidificati
tra loro
– Quali attributi sono applicabili a ciascun
elemento, se sono obbligatori e quali sono i
loro valori predefiniti
– Le entità e le annotazioni utilizzabili all’interno
del documento XML o del DTD stesso
DTD
LPD - A.A. 2003/2004Perchè usare un DTD
● Gruppi indipendenti di persone possono
accordarsi su un DTD comune per definire
un formato per i dati
● Un DTD puo’ essere usato per verificare la
validita’ dei dati
●
Avvertenza: il DTD non e’ obbligatorio!
DTD
LPD - A.A. 2003/2004Dichiarazione di un DTD
● Interna al documento XML:
●
Esterna al documento XML :
DTD
LPD - A.A. 2003/2004Esempio DTD interno
]>
Carlo
Paolo
Ci vediamo alle 12
DTD
LPD - A.A. 2003/2004Esempio DTD esterno
Carlo
Paolo
Ci vediamo alle 12
nota.dtd
DTD
LPD - A.A. 2003/2004Dichiarazione di elemento
● Esistono quattro categorie di contenuti degli
elementi:
– ELEMENT
– EMPTY
– ANY
– MIXED
●
Sintassi:
oppure
DTD
LPD - A.A. 2003/2004Elementi contenenti solo character data
● Vengono dichiarati con la categoria
(#PCDATA)
●
Esempio DTD:
●
Esempio XML:
Paolo
DTD
LPD - A.A. 2003/2004Elementi con figli (in sequenza)
●
Gli elementi con uno o piu’ figli sono dichiarati con
il nome dei figli tra parentesi, separati da virgole
che determinano il loro ordine nel documento
oppure
● Esempio DTD:
DTD
LPD - A.A. 2003/2004Quante occorrenze dello stesso elemento?
●
Esattamente una occorrenza:
● Esempio DTD:
● Esempio XML:
...
DTD
LPD - A.A. 2003/2004Quante occorrenze dello stesso elemento?
●
Almeno una occorrenza:
●
Esempio DTD:
● Esempio XML errato:
DTD
LPD - A.A. 2003/2004Quante occorrenze dello stesso elemento?
● Zero o piu’ occorrenze:
● Esempio DTD:
●
Esempio XML:
...
...
DTD
LPD - A.A. 2003/2004Quante occorrenze dello stesso elemento?
●
Zero o una occorrenza:
●
Esempio DTD:
● Esempio XML errato:
...
...
DTD
LPD - A.A. 2003/2004Scelta fra contenuti
● Una occorrenza oppure un'altra:
●
Esempio DTD:
● Esempi XML:
... ...
... ...
... ...
DTD
LPD - A.A. 2003/2004Esempi di dichiarazioni di elemento
DTD
LPD - A.A. 2003/2004EMPTY
● Gli elementi vuoti vengono dichiarati con la
parola chiave EMPTY
● Esempio DTD:
●
Esempio XML:
DTD
LPD - A.A. 2003/2004ANY
●
Gli elementi generici vengono dichiarati con
parola chiave ANY
● Esempio DTD:
DTD
LPD - A.A. 2003/2004Contenuto misto
• Testo oppure elementi non in sequenza:
• Esempio DTD:
• Esempio XML
...
Un po' di testo
...
Ancora testo
DTD
LPD - A.A. 2003/2004Limitazioni
Parser Error:
Illegal mixed content model for 'item'
Parser Warning:
Duplicate definition for 'item'
DTD
LPD - A.A. 2003/2004Dichiarazione di attributi
● Sintassi per la dichiarazione di attributo:
●
Esempio DTD:
DTD
LPD - A.A. 2003/2004Dichiarazione di attributi: note
● Tutte le dichiarazioni attlist per lo stesso
elemento vengono fuse dal parser XML.
● In caso di conflitti su attributi ridefiniti, la
prima definizione ha la precedenza.
● Si possono dichiarare un numero arbitrario
di attributi in ogni ATTLIST.
DTD
LPD - A.A. 2003/2004Valori possibili di attribute-type
●
Sintassi per la dichiarazione di attributo:
●
Possibili valori di attribute-type:
– CDATA character data
– (n1|n2|…) uno fra gli n1, n2, …
– ID un identificatore unico
– IDREF riferimento ad un ID
– …
DTD
LPD - A.A. 2003/2004Valori possibili di default-values
●
Sintassi per la dichiarazione di attributo:
– “value” valore di default se non
esplicitamente specificato
– #REQUIRED valore obbligatorio
– #IMPLIED valore facoltativo
– #FIXED ”value” valore di default unico
ammissibile
DTD
LPD - A.A. 2003/2004Dichiarazioni interne di entita’ carattere
● Sintassi:
●
Esempio DTD:
• Esempio XML:
&autore;©right;
DTD
LPD - A.A. 2003/2004Dichiarazioni esterne di entita’ carattere
● Sintassi:
● Esempio DTD:
● Esempio XML:
&autore;©right;
DTD
LPD - A.A. 2003/2004Entità parametriche
●
Sintassi
● Simili alle entità generali, possono essere
usate solo all’interno del DTD, rendendolo
“parametrico”.
● Per utilizzare un'entità parametrica: %name;
● Sono validi tutti i contenuti visti per le entità
generali parsed (interne ed esterne).
DTD
LPD - A.A. 2003/2004Definire un namespace nel DTD
●
Nel DTD:
● Nel documento:
Overview
DTD
LPD - A.A. 2003/2004Validazione automatica
● Esistono programmi per la validazione
automatica di documenti XML
– testano sia la “ben formatezza” che la
validita’
– Esempio:
●
Sun Multi-Schema XML Validator
DTD
LPD - A.A. 2003/2004Progettare una
struttura dati XML
DTD
LPD - A.A. 2003/2004Consigli per una buona progettazione
●
Quando possibile, usare un DTD già
esistente:
– Si risparmia tempo
– Favorisce l'interscambio di dati
● Scegliere opportunamente attributi o
elementi:
...
oppure
This is the title
...
DTD
LPD - A.A. 2003/2004Attributi o Elementi: scelte forzate
Elementi più convenienti quando:
● I dati contengono sottostrutture
● I dati contengono linee multiple
● Sono possibili occorrenze multiple
●
I dati cambiano frequentemente
Attributi più convenienti quando:
● Semplici stringhe che cambiano raramente
● Quando i possibili valori sono limitati
DTD
LPD - A.A. 2003/2004Attributi o Elementi: scelte stilistiche
Le scelte stilistiche possono riguardare:
● Visibilità
– Dati visibili all'utente finale modellati come
elementi
● Consumer/Provider
– Dati inseriti da utente modellati come
elementi
● Container vs. Contents
– Caratteristiche del contenuto modellati come
attributi
DTD
LPD - A.A. 2003/2004Esercizi & Laboratorio
XML
DTD
LPD - A.A. 2003/2004Case Study: DTD per agenda giornaliera
Doctor's appointment
Physics class at BH291C
Independence Day
Party at Joe's
Meeting in room 14-C
DTD
LPD - A.A. 2003/2004Definizione degli elementi
Doctor's appointment
Physics class at BH291C
Independence Day
...
DTD
LPD - A.A. 2003/2004Aggiungere gli attributi
Doctor's appointment
Physics class at BH291C
Independence Day
...
...
DTD
LPD - A.A. 2003/2004Il DTD completo
DTD
LPD - A.A. 2003/2004Documento valido
Doctor's appointment
Physics class at BH291C
Independence Day
Party at Joe's
...
DTD
LPD - A.A. 2003/2004Esercizio: Drugs
●
Scrivere una DTD per il seguente documento; poi, cambiate la
sequenza di due elementi nel documento sorgente.
Convalidate il documento e apportate le modifiche necessarie
al DTD affinchè risulti valido.
aspirin
0.4 g. acetisalicil acid, 0.24g.
ascorbine acid
analgetic
yes
andol
ulcer
DTD
LPD - A.A. 2003/2004Risorse on-line
●
www.oasis-open.org
Per cercare DTD standard industriali
● www.dtd.com
Un repository di DTD per documenti XML
●
www.xml101.com/dtd
Contiene tutorial e spiegazioni per creare
DTD
● www.w3schools.com/dtd
Contiene tutorial ed esempi sulle DTD
●
www.schema.net
Un repository di DTD con link e risorse
correlate ad XML
DTD
LPD - A.A. 2003/2004Domande?
DTD
LPD - A.A. 2003/2004Puoi anche leggere