DTD
È l'acronimo di "Document Type Definition". Una DTD definisce la struttura, gli elementi e gli attributi di un documento XML. Fornisce un insieme di regole che i file XML devono seguire, garantendo coerenza e validità tra documenti simili.
Una DTD specifica:
- Quali elementi (tag) sono consentiti
- L'ordine e l'annidamento degli elementi
- Quali attributi possono avere gli elementi
- I tipi di valori che tali attributi possono contenere
Di seguito è riportato un esempio di DTD per salvare dati sulle automobili in formato XML:
<!DOCTYPE automobile [
<!ENTITY header "Car Details">
<!ELEMENT make (#PCDATA)>
<!ELEMENT model (#PCDATA)>
<!ATTLIST model doors (two | four) #REQUIRED>
<!ELEMENT year (#PCDATA)>
<!ELEMENT engine (#PCDATA)>
<!ATTLIST engine transmission (manual | automatic) #REQUIRED>
]>
Nella DTD precedente:
- Viene definita un'entità denominata header con il valore "Car Details".
- Elementi come <make>, <model>, <year> e <engine> sono dichiarati in modo da contenere dati di carattere analizzati (#PCDATA), ovvero accettano testo.
- Gli elenchi di attributi (ATTLIST) definiscono i valori validi degli attributi. Ad esempio, l'elemento model deve specificare "two" o "four" per l'attributo doors, mentre l'elemento engine deve includere un attributo transmission impostato su "manual" o "automatic".
Questo esempio automobilistico è una Document Type Definition relativamente semplice. Le DTD utilizzate nelle applicazioni reali, soprattutto quelle che supportano grandi insiemi di dati XML, possono essere lunghe centinaia o migliaia di righe. Le DTD piccole sono spesso incluse nei documenti XML, mentre quelle grandi vengono salvate come file separati (con estensione .DTD) e richiamate tramite un URL. Sebbene i linguaggi schema più recenti, come XML Schema (XSD), offrano opzioni di convalida più flessibili, le DTD restano il modo standard per definire la struttura dei documenti XML.
NOTE: HTML dalla versione 2 alla 4.01 (1995-1999) utilizzava le DTD per definire i tag e gli attributi consentiti di un file HTML. HTML5 ha abbandonato i riferimenti a DTD esterne e inizia ogni documento HTML con <DOCTYPE html>.
Metti alla prova le tue conoscenze