Introduzione a DTD

La definizione di tipo di documento (DTD) può definire i moduli costruttivi validi di un documento XML. Utilizza una serie di elementi validi per definire la struttura del documento.

Il DTD può essere dichiarato in modo lineare all'interno del documento XML o come riferimento esterno.

Dichiarazione DOCTYPE interna

Se il DTD è incluso nel tuo file sorgente XML, dovrebbe essere avvolto nella dichiarazione DOCTYPE come segue:

!DOCTYPE elemento radice [dichiarazioni degli elementi]

Esempio di documento XML con DTD (apri con IE5 o versione successiva e seleziona Visualizza codice sorgente):

<?xml version="1.0"?>
!DOCTYPE note [
  <!ELEMENT note (to,from,heading,body)>
  !ELEMENT to      (#PCDATA)
  !ELEMENT from    (#PCDATA)
  <!ELEMENT heading (#PCDATA)>
  !ELEMENT body    (#PCDATA)
]>
<note>
  <to>George</to>
  <from>John</from>
  <heading>Ricorda</heading>
  <body>Non dimenticare l'incontro!</body>
</note>

Apri questo file XML nel tuo browser e seleziona il comando "Visualizza codice sorgente".

L'elenco seguente spiega il DTD:

!DOCTYPE note [ (riga seconda) Definire questo documento come note documento di tipo.

!ELEMENT note (riga terza) Definizione note L'elemento ha quattro elementi: "to, from, heading, body"

!ELEMENT to (riga quarta) Definizione to L'elemento è di tipo "#PCDATA"

!ELEMENT from (riga quinta) Definizione from L'elemento è di tipo "#PCDATA"

!ELEMENT heading (riga sesta) Definizione heading L'elemento è di tipo "#PCDATA"

!ELEMENT body (riga settima) Definizione body L'elemento è di tipo "#PCDATA"

Dichiarazione del documento esterno

Se il DTD si trova al di fuori del file sorgente XML, dovrebbe essere avvolto nella definizione DOCTYPE come segue:

<!DOCTYPE radice SYSTEM "nomefile">

Questo documento XML è lo stesso dell'XML sopra ma ha un DTD esterno: (Apri in IE5e seleziona il comando "Visualizza codice sorgente".)

<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading>Ricorda</heading>
<body>Non dimenticare l'incontro!</body>
</note>

Questo è il file "note.dtd" che contiene DTD:

<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>

Perché utilizzare DTD?

Tramite DTD, ogni file XML può portare una descrizione del proprio formato.

Tramite DTD, gruppi indipendenti possono utilizzare un DTD standard per scambiare dati in modo coerente.

E la tua applicazione può anche utilizzare un DTD standard per verificare i dati ricevuti dall'esterno.

Puoi anche utilizzare DTD per verificare i tuoi dati.