Publicatie:Document Type Definition (DTD)

Uit Meemoo Kennisbank
Naar navigatie springen Naar zoeken springen

Document Type Definition (DTD) is de oudste standaard die gebruikt wordt voor het uitlijnen van de grammatica van XML-documenten. De DTD van een XML-document definieert de elementen waaruit het document kan bestaan, op welke plaats ze voorkomen en aan welke kenmerken ze moeten voldoen.

DTD’s zijn opgebouwd volgens een heel eigen syntaxis. Bekijk het XML-document van de vorige pagina's even opnieuw. Links zie je het XML-document, rechts de DTD van dat document:

Het XML-document: De DTD:
XML ORIGINAL.jpg XML DTD.jpg

DTD’s bestaan uit de volgende elementen:

  • een DOCTYPE-verklaring: een DOCTYPE-verklaring bepaalt de naam van het root element van het XML-document. De bovenstaande DTD bepaalt allereerst dat het bijhorende XML-document een catalogus is (DOCTYPE catalogus).
  • een elementenlijst: een elementenlijst bepaalt de naam en de formele structuur van alle elementen uit het XML-document. In het voorbeeld hierboven geeft de elementenlijst aan dat de catalogus uit één of meerdere boeken bestaat (boek+), dat van elk boek de titel, de auteur, het jaar en de prijs wordt weergegeven en dat de inhoud van alle titel-, auteur-, jaar- en prijselementen uit gewone karakters bestaat (#PCDATA).
  • een optionele attributenlijst: een attributenlijst doet hetzelfde als een elementenlijst, maar voor de attributen. In het voorbeeld hierboven lezen we dat het element <boek> steeds voorzien wordt van het attribuut categorie.

Interne en externe DTD's

XML-bestanden kunnen gebruik maken van een interne of een externe DTD. Bekijk de twee volgende voorbeelden:

interne DTD externe DTD
XML INTERNE DTD.jpg XML EXTERNE DTD.jpg

Interne DTD’s maken deel uit van het eigenlijke XML-document en vinden we volledig terug net onder de XML-verklaring. In het geval van een externe DTD is er een apart DTD-bestand, waarnaar vanuit het XML-bestand wordt gelinkt. In het XML-bestand wordt dan net onder de XML-verklaring de DOCTYPE-verklaring opgenomen met een link naar het externe DTD-bestand. Dat externe DTD-bestand gaat dus meteen van start met de elementenlijst. In de DOCTYPE-verklaring vinden we in dat geval steeds de locatie van het DTD-bestand terug.

Als het externe DTD-bestand zich op hetzelfde systeem bevindt, linken we het met behulp van de vermelding SYSTEM, gevolgd door de naam van het bestand tussen aanhalingstekens:

<!DOCTYPE catalogus SYSTEM "catalogus.dtd">

Als het externe DTD-bestand zich ergens op het web bevindt, linken we het op gelijkaardige wijze met behulp van de vermelding PUBLIC, gevolgd door een standaardindicator die aangeeft dat het om een extern DTD-bestand gaat en de naam van de URL, allebei tussen aanhalingstekens:

<!DOCTYPE catalogus PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.projectcest.be/catalogus.dtd">

DTD’s zijn een vrij eenvoudige manier om de inhoud en de structuur van XML-documenten vast te leggen. Toch wordt deze standaard steeds minder vaak gebruikt. Wanneer je complexere documenten, zoals bijvoorbeeld archiefinventarissen met complexe hiërarchische beschrijvingen wil weergeven in XML, zal je al gauw op de beperkingen van een DTD stoten. Om die beperkingen te verhelpen, zijn XML Schema's in het leven geroepen. Meer daarover lees je op de volgende pagina.