(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/2004
Relazione 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/2004
Ruolo 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/2004
DTD ● 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/2004
Perchè 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/2004
Dichiarazione di un DTD ● Interna al documento XML: ● Esterna al documento XML : DTD LPD - A.A. 2003/2004
Esempio DTD interno ]> Carlo Paolo Ci vediamo alle 12 DTD LPD - A.A. 2003/2004
Esempio DTD esterno Carlo Paolo Ci vediamo alle 12 nota.dtd DTD LPD - A.A. 2003/2004
Dichiarazione di elemento ● Esistono quattro categorie di contenuti degli elementi: – ELEMENT – EMPTY – ANY – MIXED ● Sintassi: oppure DTD LPD - A.A. 2003/2004
Elementi contenenti solo character data ● Vengono dichiarati con la categoria (#PCDATA) ● Esempio DTD: ● Esempio XML: Paolo DTD LPD - A.A. 2003/2004
Elementi 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/2004
Quante occorrenze dello stesso elemento? ● Esattamente una occorrenza: ● Esempio DTD: ● Esempio XML: ... DTD LPD - A.A. 2003/2004
Quante occorrenze dello stesso elemento? ● Almeno una occorrenza: ● Esempio DTD: ● Esempio XML errato: DTD LPD - A.A. 2003/2004
Quante occorrenze dello stesso elemento? ● Zero o piu’ occorrenze: ● Esempio DTD: ● Esempio XML: ... ... DTD LPD - A.A. 2003/2004
Quante occorrenze dello stesso elemento? ● Zero o una occorrenza: ● Esempio DTD: ● Esempio XML errato: ... ... DTD LPD - A.A. 2003/2004
Scelta fra contenuti ● Una occorrenza oppure un'altra: ● Esempio DTD: ● Esempi XML: ... ... ... ... ... ... DTD LPD - A.A. 2003/2004
Esempi di dichiarazioni di elemento DTD LPD - A.A. 2003/2004
EMPTY ● Gli elementi vuoti vengono dichiarati con la parola chiave EMPTY ● Esempio DTD: ● Esempio XML: DTD LPD - A.A. 2003/2004
ANY ● Gli elementi generici vengono dichiarati con parola chiave ANY ● Esempio DTD: DTD LPD - A.A. 2003/2004
Contenuto misto • Testo oppure elementi non in sequenza: • Esempio DTD: • Esempio XML ... Un po' di testo ... Ancora testo DTD LPD - A.A. 2003/2004
Limitazioni Parser Error: Illegal mixed content model for 'item' Parser Warning: Duplicate definition for 'item' DTD LPD - A.A. 2003/2004
Dichiarazione di attributi ● Sintassi per la dichiarazione di attributo: ● Esempio DTD: DTD LPD - A.A. 2003/2004
Dichiarazione 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/2004
Valori 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/2004
Valori 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/2004
Dichiarazioni interne di entita’ carattere ● Sintassi: ● Esempio DTD: • Esempio XML: &autore;©right; DTD LPD - A.A. 2003/2004
Dichiarazioni esterne di entita’ carattere ● Sintassi: ● Esempio DTD: ● Esempio XML: &autore;©right; DTD LPD - A.A. 2003/2004
Entità 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/2004
Definire un namespace nel DTD ● Nel DTD: ● Nel documento: Overview DTD LPD - A.A. 2003/2004
Validazione 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/2004
Progettare una struttura dati XML DTD LPD - A.A. 2003/2004
Consigli 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/2004
Attributi 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/2004
Attributi 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/2004
Esercizi & Laboratorio XML DTD LPD - A.A. 2003/2004
Case 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/2004
Definizione degli elementi Doctor's appointment Physics class at BH291C Independence Day ... DTD LPD - A.A. 2003/2004
Aggiungere gli attributi Doctor's appointment Physics class at BH291C Independence Day ... ... DTD LPD - A.A. 2003/2004
Il DTD completo DTD LPD - A.A. 2003/2004
Documento valido Doctor's appointment Physics class at BH291C Independence Day Party at Joe's ... DTD LPD - A.A. 2003/2004
Esercizio: 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/2004
Risorse 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/2004
Domande? DTD LPD - A.A. 2003/2004
Puoi anche leggere