giovedì 26 giugno 2014

[XML] DTD - Document Type Definition





Il DTD, Document Type Definition, è un documento che definisce la grammatica per i documenti XML dove la sintassi è costituita da due dichiarazioni: <!ELEMENT> (struttura del documento ed elementi utilizzabili all'interno del documento stesso) e <!ATTLIST> (lista di attributi di ogni elemento). Vengono inoltre espressi dei caratteri speciali per indicare il numero di occorrenze di un elemento:

* indica che l'elemento è presente zero o più volte
? indica che l'elemento è presente zero o una volta
+ indica che l'elemento è presente una o più volte

Per esempio, la dichiarazione

<!ELEMENT paragrafo (testo+, immagine*) >

sta ad indicare che l'elemento paragrafo contiene la sequenza testo che è presente almeno una volta e immagine che è presente zero o più volte. 

La dichiarazione <!ATTLIST> la useremo, come detto sopra, per definire gli attributi di ogni elemento con i valori

#REQUIRED (indica l'obbligatorietà della presenza dell'attributo)
#IMPLIED (indica l'opzionalità della presenza dell'attributo)
#FIXED (indica la fissità del valore dell'attributo)

La combinazione di caratteri sarà espressa con CDATA.

Per esempio, nella dichiarazione

<!ATTLIST articolo titolo CDATA #REQUIRED>

è presente un elemento articolo che prevede un titolo (attributo obbligatorio espresso da #REQUIRED), con una qualsiasi combinazione di caratteri (CDATA)

Se il contenuto non è stabilito in partenza, cioè se gli elementi sono vuoti, useremo ANY  nella dichiarazione che ha la facoltà di non creare vincoli:

<!ELEMENT elemento ANY>

Nel caso in cui un tag risulti vuoto, come ad esempio nel tag <immagine>, lo definiremo con EMPTY

<!ELEMENT immagine EMPTY>

Per gli elementi che contengono solo testo useremo (#PCDATA)

<!ELEMENT testo (#PCDATA)>


L'uso dei DTD per definire la grammatica per i documenti XML, risulta tuttavia incompleto, dato che la sintassi non sempre segue le regole dell'XML, e non sempre vengono specificati gli attributi e il numero di occorrenze di un elemento. Queste limitazioni hanno fatto sì che nascessero nuovi approcci come l'XML Schema

0 commenti:

Posta un commento