dtd laurea magistrale in informatica chapter 03 modulo del corso thecnologies for innovation
TRANSCRIPT
![Page 1: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/1.jpg)
DTD
Laurea Magistrale in InformaticaLaurea Magistrale in Informatica
Chapter 03 Chapter 03
Modulo del corsoModulo del corso
Thecnologies for InnovationThecnologies for Innovation
![Page 2: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/2.jpg)
DTD 2
Agenda
DTD role
DTD Declaration
Sequences
Content Types
Attributes
Entities
DTD role
DTD Declaration
Sequences
Content Types
Attributes
Entities
![Page 3: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/3.jpg)
DTD 3
Relazione tra classi ed oggetti in OO
![Page 4: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/4.jpg)
DTD 4
Ruolo del DTD
![Page 5: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/5.jpg)
DTD 5
DTD
Un DTD e’ un documento che definisce in modo formale, 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
![Page 6: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/6.jpg)
DTD 6
Perché usare una 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!
![Page 7: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/7.jpg)
DTD 7
Dichiarazione di un DTD
Interna al documento XML:
<!DOCTYPE root-element [element declarations]>
Esterna al documento XML :
<!DOCTYPE root-element SYSTEM “URI”>
N.B.: In XML il nome del DOCTYPE deve essere il nome del tag radice.
![Page 8: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/8.jpg)
DTD 8
Esempio DTD Interna
![Page 9: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/9.jpg)
DTD 9
Esempio DTD Esterna
![Page 10: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/10.jpg)
DTD 10
Dichiarazione di elemento
Per ogni tipo di elemento viene indicato il tipo di contenuto, che può essere: Any content: indica che ogni contenuto è ammissibile.
Es: <!ELEMENT memo ANY> Empty content: un elemento vuoto non può contenere alcun testo
tra il tag di inizio e quello di chiusura e può quindi essere rappresentato da un tag vuoto. Es: <!ELEMENT br EMPTY>
Simple content: è un elemento il cui contenuto è composto da testo. In questo caso #PCDATA è acronimo di “Parsed Character Data”.Es: <!ELEMENT message (#PCDATA)>
Element content: è il caso tipico in cui il contenuto è composto da sottoelementi.Es: <!ELEMENT note (to, from, title, message)>
Mixed content: sono elementi che contendono testo misto ad altri elementi
![Page 11: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/11.jpg)
DTD 11
Sequenze
L’elemento ,, (chiamato sequenza) specifica l’ordine in cui debbono presentarsi gli elementi
<!ELEMENT classe (insegnate,studente)>Specifica che l’elemento classe deve contenere un solosolo elemento insegnate seguito daseguito da un soloun solo elemento studente
L’elemento || (chiamato opzione) specifica le opzioni con cui debbono presentarsi gli elementi
<!ELEMENT classe (insegnate|studente)>Specifica che l’elemento classe deve contenere l’elemento insegnate oo l’elemento studente non entrambinon entrambi
L’elemento ++ (chiamato ricorrenza) specifica le frequenze di ripetizione con cui debbono presentarsi gli
elementi
<!ELEMENT classe (insegnate,studente+)>Specifica che l’elemento classe deve contenere un solosolo elemento insegnate seguito daseguito da piùpiù elementi studente
![Page 12: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/12.jpg)
DTD 12
Indicatori di ricorrenza
Indicatore Descrizione
++ L’elemento può ripetersi più volte, ma deve essere usato almeno una volta
** Elemento facoltativo; se viene utilizzato può apparire più volte
?? Elemento facoltativo; se viene utilizzato può apparire una sola volta
<!ELEMENT libreria (libro*)>Specifica che l’elemento libreria può contenere un numero qualsiasi numero qualsiasi didi elemento libro che può anche non essere utilizzatoche può anche non essere utilizzato
<!ELEMENT poltrona (persona?)>Specifica che l’elemento poltrona può contenere al massimoal massimo un elemento persona che può anche non essere utilizzatoche può anche non essere utilizzato
![Page 13: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/13.jpg)
DTD 13
ESEMPI
<!ELEMENT classe (numero, (istruttore | assistente+), (credito | nocredito) )>
soluzione
<!ELEMENT crostata (gelatina?, limone*,((crema | zucchero)+ | glassa))>
soluzione
<!ELEMENT fattoria (fattore+,(cane* | gatto?), maiale*, ( capra | mucca)?, (gallina+ | oca* ))>
soluzione
![Page 14: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/14.jpg)
DTD 14
Contenuto misto
In XML il contenuto di testo #PCDATA ed il contenuto di elementi possono combinarsi solo nella forma seguente:
<!ELEMENT para (#PCDATA | bold | italic)*>
Ogni paragrafo contiene un testo in cui si possono trovare, opzionalmente, degli elementi <bold> ed <italic>. Es:
<para><bold>Questo</bold> testo contiene delle sezioni in <bold>grassetto</bold> ed in <italic>corsivo</italic>, ma potrebbe anche non averne</para>
![Page 15: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/15.jpg)
DTD 15
EMPTY
![Page 16: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/16.jpg)
DTD 16
ANY
![Page 17: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/17.jpg)
DTD 17
Tipi di contenuto
Documento DTD intro.dtd
<!ELEMENT myMessage ( message )>
Dichiara l’elemento myMessage come root con un unico child di nome message
<!ELEMENT message ( #PCDATA )>
Dichiara che l’elemento message deve contenere dati di caratteri riconosciuti dal parser XML
Contenuto MISTO
<!ELEMENT myMessage (#PCDATA | message )*>
Dichiara l’elemento myMessage come root con contenuto misto
Documento XML intro.xml
<?xml version = "1.0"?>
<!DOCTYPE myMessage SYSTEM "intro.dtd">
<myMessage>
<message>Welcome to XML!</message>
</myMessage>
MARKUP conforme alla dichiarazione
<?xml version = "1.0"?>
<!DOCTYPE myMessage SYSTEM "intro.dtd">
<myMessage> questo è un esempio; segue
<message> altro test </message>
e
<message> altro testo ancora </message>
</myMessage>
L’elemento myMessage contiene due elementi message e due istanze di dati e caratteri
Considerando la presenza dell’*, l’elemento myMessage potrebbe essere privo di contenuto
![Page 18: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/18.jpg)
DTD 18
Esempio di tipo di contenuto mixed.xml<?xml version = "1.0" ?>
<!-- Fig. 6.5: mixed.xml --><!-- Mixed content type elements --><!DOCTYPE format [ <!ELEMENT format ( #PCDATA | bold | italic )*> <!ELEMENT bold ( #PCDATA )> <!ELEMENT italic ( #PCDATA )>]>
<format> This is a simple formatted sentence. <bold>I have tried bold.</bold> <italic>I have tried italic.</italic> Now what?</format>
NOTARE LA SPECIFICA DELLA DTD INTERNA
![Page 19: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/19.jpg)
DTD 19
Limitazioni
![Page 20: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/20.jpg)
DTD 20
Attributi
In generale gli attributi vengono specificati con ATTLIST:
<!ATTLIST elementoattributo1 tipo1 modificatore1attributo2 tipo2 modificatore2attributo-n tipo-n modificatore-n>
I tipi definiscono l’insieme o la tipologia dei valori assumibili dall’attributo
I modificatori identificano le condizioni di obbligatorietà o opzionalità dell’attributo ed, eventualmente, un valore di default per lo stesso
![Page 21: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/21.jpg)
DTD 21
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 …
![Page 22: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/22.jpg)
DTD 22
Note
![Page 23: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/23.jpg)
DTD 23
Attributi stringa
<!ATTLIST message lang CDATA “Italiano”>
In questo caso l’attributo lang è una stringa Se l’attributo è presente nel file il suo valore è quello specificato Altrimenti viene assunto il valore di default “Italiano”
<note>…<message lang=“English”>Remember the meeting</message></note>
<note>…<message>Ricordati l’appuntamento</message></note>
![Page 24: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/24.jpg)
DTD 24
Attributi per enumerazione
<!ATTLIST person salutation (Mr | Mrs | Miss | Dr) “Mr”>
Il titolo di ogni persona assume valori nell’insieme indicato
In mancanza del parametro si assume per default “Mr”
<person salutation=“Dr”><name>Luke</name><surname>Brown</name>
</person>
![Page 25: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/25.jpg)
DTD 25
Modificatori
Valore di default: espresso da una stringa indica il valore da assegnare all’attributo in mancanza di diverse indicazioni
Valore fisso: definito da #FIXED più il valore. L’attributo assume obbligatoriamente il valore assegnato e l’autore del documento XML non può modificarlo:<!ATTLIST persona numeroGambe CDATA #FIXED “2”>
Specifica di obbligatorietà: #REQUIRED. Indica che l’attributo deve essere sempre presente in ogni elemento<!ATTLIST misura val CDATA #REQUIRED>
Specifica di opzionalità: #IMPLIED. Indica che l’attributo è opzionale e può non essere specificato dall’autore del documento. Se combinato con ID indica che il sistema genererà un identificativo automaticamente
![Page 26: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/26.jpg)
DTD 26
Entità
Le entità del DTD sono frammenti ricorrenti di contenuti testuali a cui vengono associati degli identificatori che possono essere “espansi” come macro all’interno del documento prima di procedere al parsing vero e proprio
La definizione avviene secondo lo schema:<!ENTITY nomeEntità valore>
L’utilizzo avviene inserendo nel testo la sequenza:&nomeEntità;
Esempio:
<!ENTITY autore “Francesco De Angelis”><document>
<title>Introduzione ad XML</title><author>&autore;</author>
</document>
![Page 27: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/27.jpg)
DTD 27
Entità esterne
Le entità esterne vengono “recuperate” da un file esterno all’XML
<!ENTITY nomeEntità SYSTEM “url del file”>
Es: <!ENTITY text SYSTEM “book.txt”>
E’ possibile specificare entità da non parsare, tipicamente come entità di dati binari
<!ENTITY immagine SYSTEM “img.gif” NDATA gif>
<book><title>..</title><text>&text;</text></book>
![Page 28: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/28.jpg)
DTD 28
Entità predefinite
Sono predefinire tutte le entità associabili ai singoli caratteri sulla base del codice (unicode) degli stessi. Ad esempio l’entità corrisponde al carattere ASCII 10.
Alcuni caratteri, tra cui ‘<‘ ed ‘&’, creano problemi quando vengono mischiati al testo. Per questo sono predefinire alcune entità che possono sostituire questi caratteri:
Equivalente a : <![CDATA [<]]>
< “<”
> “>”
& “&”
' “ ’ ”
" “ ” ”
![Page 29: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/29.jpg)
DTD 29
Entità parametriche (I)
Sono entità definite nel DTD ed utilizzate all’interno del DTD stesso
Vengono sostituite durante la lettura del DTD Contengono frammenti ricorrenti del modello di
contenuto Es: volendo definire in un unico punto il tipo di testo
che contiene sezioni in grassetto:
<!ENTITY % testo “#PCDATA”><!ENTITY % testoConBold “(%testo;|bold)*”><!ELEMENT testo %testoConBold;>
![Page 30: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/30.jpg)
DTD 30
Entità Parametriche (II)
<!ENTITY % common "size (small | medium | large) 'medium'color (red | blue | green | black | white) "'white'price CDATA #REQUIRED"><!ELEMENT shirt (#PCDATA)><!ELEMENT pants (#PCDATA)><!ELEMENT skirt (#PCDATA)><!ATTLIST shirt%common;><!ATTLIST pants%common;><!ATTLIST skirt%common;>
![Page 31: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/31.jpg)
DTD 31
Cosa c’è di sbagliato nelle DTD
Troppo “document oriented” DTD è stato sviluppato per interfacciarsi con tool per
il trattamento del testo Limitato nella rappresentazione di strutture
complesse Non c’è la nozione di ereditarietà/sub-typing Content-model ambiguo Troppi modi per rappresentare la stessa cosa I nomi sono globali, non locali
![Page 32: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/32.jpg)
DTD 32
Utilizzo delle DTD
Validazione Storage XML efficiente (persistenza, estensione, o
database storage) Documentazione Parsing efficiente Design di tool di supporto
![Page 33: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/33.jpg)
DTD 33
Progettare una struttura dati XML
![Page 34: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/34.jpg)
DTD 34
Attributi o Elementi : scelte forzate
![Page 35: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/35.jpg)
DTD 35
Attributi o elementi : scelte stilistiche
![Page 36: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/36.jpg)
DTD 36
Case Study: Agenda giornalieraDefinizione degli elementi
![Page 37: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/37.jpg)
DTD 37
Case Study: Agenda giornalieraAggiunta di attributi
![Page 38: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/38.jpg)
DTD 38
Case Study: Agenda giornalieraDTD : Completo
![Page 39: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/39.jpg)
DTD 39
Case Study: Agenda giornalieraDocumento Valido
![Page 40: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/40.jpg)
DTD 40
![Page 41: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/41.jpg)
DTD 41
Soluzione 1
L’elemento classe deve contenere un elemento numero, un elemento istruttore oppure un numero qualsiasi di elementi assistente e un elemento credito o un elemento nocredito,
<!ELEMENT classe (numero, (istruttore | assistente+), (credito | nocredito) )>
![Page 42: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/42.jpg)
DTD 42
Soluzione 2
L’elemento crostata può avere o non avere l’elemento gelatina, seguito da zero o più elementi limone, uno o più elementi crema o zucchero, oppure un solo elemento glassa
<!ELEMENT crostata (gelatina?, limone*,((crema | zucchero)+ | glassa))>
![Page 43: DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation](https://reader036.vdocuments.mx/reader036/viewer/2022081602/5542eb4b497959361e8b90eb/html5/thumbnails/43.jpg)
DTD 43
Soluzione 3
L’elemento fattoria deve avere almeno un elemento fattore, può avere un numero qualsiasi di elementi facoltativi cane o un elemento facoltativo gatto, un numero qualsiasi di elementi facoltativi maiale, un elemento facoltativo capra o mucca e uno o più elementi gallina oppure un numero qualsiasi di elementi facoltativi oca.
<!ELEMENT fattoria (fattore+,(cane* | gatto?), maiale*, ( capra | mucca)?, (gallina+ | oca* ))>