DTD
Staat voor "Document Type Definition." Een DTD definieert de structuur, elementen en attributen van een XML-document. Het biedt een reeks regels waaraan XML-bestanden moeten voldoen, zodat vergelijkbare documenten consistent en geldig zijn.
Een DTD specificeert:
- Welke elementen (tags) zijn toegestaan
- De volgorde en nesting van elementen
- Welke attributen elementen kunnen hebben
- De typen waarden die deze attributen mogen bevatten
Hieronder staat een voorbeeld van een DTD voor het opslaan van gegevens over auto's als 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>
]>
In de bovenstaande DTD:
- Er wordt een entiteit met de naam header gedefinieerd met de waarde "Car Details."
- Elementen zoals <make>, <model>, <year> en <engine> worden gedeclareerd met geparseerde karaktergegevens (#PCDATA) als inhoud, wat betekent dat ze tekst accepteren.
- Attributenlijsten (ATTLIST) definiëren geldige attribuutwaarden. Het element model moet bijvoorbeeld voor het attribuut doors "two" of "four" opgeven, en het element engine moet een transmission-attribuut bevatten met de waarde "manual" of "automatic."
Dit automobielvoorbeeld is een relatief eenvoudige Document Type Definition. DTD's die in echte toepassingen worden gebruikt — vooral toepassingen die grote XML-gegevensverzamelingen ondersteunen — kunnen honderden of duizenden regels bevatten. Kleine DTD's worden vaak opgenomen in XML-documenten, terwijl grote DTD's als afzonderlijke bestanden worden opgeslagen (met de extensie .DTD) en via een URL worden verwezen. Hoewel nieuwere schemata-talen zoals XML Schema (XSD) flexibelere validatieopties bieden, blijven DTD's de standaardmanier om de structuur van XML-documenten te definiëren.
NOTE: HTML 2 tot en met 4.01 (1995-1999) gebruikte DTD's om de toegestane tags en attributen van een HTML-bestand te definiëren. HTML5 liet externe DTD-verwijzingen vallen en begint elk HTML-document met <DOCTYPE html>.
Test je kennis