DTD: Document Type Definition
Un DTD definisce una grammatica per mezzo di dichiarazioni.
Può essere un file .DTD richiamato con la direttiva
<?xml version="1.0">
<!DOCTYPE articolo SYSTEM "articolo.dtd">
o può essere inserito all'interno del file .XML:
<?xml version="1.0">
<!DOCTYPE articolo[
... definizioni ...
]>
<!ELEMENT>
definisce gli elementi e la struttura del documento.
<!ELEMENT articolo(paragrafo+)> indica che l'elemento <articolo> ha come sottoelemento uno o pi� elementi <paragrafo>.
(+ significa una o più volte, * significa zero o più volte, ? ignifica zero o una volta)
<!ELEMENT immagine EMPTY>> indica un elemento vuoto.
<!ELEMENT testo (#PCDATA)> indica un elemento di testo.
<!ELEMENT ignoto ANY> indica un elemento che può essere vuoto o no.
<!ATTLIST>
definisce gli attributi.
<!ATTLIST elemento attributo valore> indica che l'elemento possiede un attributo.
Gli atttributi possono essere:
#CDATA,
#REQUIRED,
#IMPLIED,
#FIXED valore
Esempio:
<!ELEMENT articolo(paragrafo+)>
<!ELEMENT paragrafo (immagine*, testo+, codice*)>
<!ELEMENT immagine EMPTY>
<!ELEMENT testo (#PCDATA)>
<!ELEMENT codice (#PCDATA)>
<!ATTLIST articolo titolo CDATA #REQUIRED>
<!ATTLIST paragrafo
titolo CDATA #IMPLIED
tipo (abstract|bibliografia|note) #IMPLIED>
<!ATTLIST immagine file CDATA #REQUIRED>
I DTD hanno limiti (per esempio non consentono di specificare i tipi di dato, i numeri minimo o massimo di occorrenze, ecc.), ma soprattutto non sono scritti in XML.
È meglio usare gli
XML Schema.