DTD XML
Un documento XML con sintassi corretta è chiamato "Well Formed".
Un documento XML convalidato rispetto a un DTD è sia "ben formato" che "valido".
Che cos'è un DTD?
DTD sta per Document Type Definition.
Un DTD definisce la struttura, gli elementi legali e gli attributi di un documento XML.
Documenti XML validi
Un documento XML "valido" è "ben formato", così come è conforme alle regole di un DTD:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note SYSTEM "Note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
La dichiarazione DOCTYPE sopra contiene un riferimento a un file DTD. Il contenuto del file DTD viene mostrato e spiegato di seguito.
DTD XML
Lo scopo di un DTD è definire la struttura, gli elementi legali e gli attributi di un documento XML:
Nota.dtd:
<!DOCTYPE note
[
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
Il DTD sopra è interpretato in questo modo:
- !DOCTYPE note - Definisce che l'elemento principale del documento è una nota
- !ELEMENT note - Definisce che l'elemento della nota deve contenere gli elementi: "to, from, header, body"
- !ELEMENT to - Definisce l'elemento to di tipo "#PCDATA"
- !ELEMENT from - Definisce l'elemento from di tipo "#PCDATA"
- Intestazione !ELEMENT - Definisce l'elemento di intestazione di tipo "#PCDATA"
- !ELEMENT body - Definisce l'elemento body in modo che sia di tipo "#PCDATA"
Suggerimento: #PCDATA significa dati di caratteri analizzabili.
Utilizzo di DTD per la dichiarazione di entità
Una dichiarazione DOCTYPE può essere utilizzata anche per definire caratteri o stringhe speciali, utilizzati nel documento:
Esempio
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note [
<!ENTITY nbsp
" ">
<!ENTITY writer "Writer: Donald Duck.">
<!ENTITY copyright "Copyright: W3Schools.">
]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
<footer>&writer; ©right;</footer>
</note>
Provate voi stessi "
Suggerimento: un'entità è composta da tre parti: inizia con una e commerciale (&), quindi arriva il nome dell'entità e termina con un punto e virgola (;).
Quando usare un DTD?
Con un DTD, gruppi indipendenti di persone possono accettare di utilizzare un DTD standard per lo scambio di dati.
Con un DTD, puoi verificare che i dati che ricevi dal mondo esterno siano validi.
Puoi anche utilizzare un DTD per verificare i tuoi dati.
Se vuoi studiare DTD, leggi il nostro Tutorial DTD .
Quando NON utilizzare un DTD?
XML non richiede un DTD.
Quando si sperimenta con XML o quando si lavora con piccoli file XML, la creazione di DTD può essere una perdita di tempo.
Se si sviluppano applicazioni, attendere che la specifica sia stabile prima di aggiungere un DTD. In caso contrario, il software potrebbe smettere di funzionare a causa di errori di convalida.