Document type definition

(Doorverwezen vanaf Document Type Definition)

DTD (Engels: document type definition) oftewel documenttype-definitie is een schema-technologie die oorspronkelijk bij SGML gebruikt werd, en later ook bij van SGML afgeleide formele talen of toepassingen van SGML zoals XML, HTML en XHTML.

In een DTD kan men formele specificaties maken van documenten op grond waarvan zij kunnen worden gevalideerd, bijvoorbeeld door XML-validators. Een DTD geeft hiervoor onder meer aan, wat de elementen zijn van een XML-document, waar zij voorkomen, wat de kenmerken zijn waaraan ze moeten voldoen, enzovoorts. Zeer simplistisch uitgedrukt kan een DTD onder meer aangeven, wat voor soort tags in een XML-document mogen voorkomen.

Een XML-document kan correct zijn ten aanzien van de of een algemene XML-standaard, maar desondanks niet valide ten aanzien van een gegeven DTD-schema.

DTD is meer rigide en cryptisch dan het later ontwikkelde XML-schema, dat voor hetzelfde doel wordt gebruikt. Verder is een nadeel van DTD ten opzichte van XML Schema, dat het eerste niet in XML wordt weergegeven, en het laatste wel. Doordat DTD al lang gebruikt wordt, en in de praktijk veel formele talen die aan de XML-specificaties voldoen ermee beschreven zijn, is het echter niet zo dat DTD snel totaal door XML Schema zal worden vervangen.

Vanwege het <!DOCTYPE dat boven XML pagina's staat die aan een DTD refereren, wordt bij een DTD ook wel kortweg gesproken van een DOCTYPE.

Voorbeelden bewerken

Voorbeeld 1 bewerken

<!ELEMENT wikiartikel (art)>
<!ELEMENT art (redirect, doorverwijspagina?, artikel?)>
<!ATTLIST art type CDATA #REQUIRED>
<!ELEMENT redirect (#PCDATA)>
<!ELEMENT doorverwijspagina (#PCDATA)>
<!ELEMENT artikel (#PCDATA)>

Een XML-document dat aan deze DTD voldoet, zou bijvoorbeeld zijn:

<?xml version="1.0"?>
<!DOCTYPE wikiartikel SYSTEM "wikiartikel.dtd">
<wikiartikel>
  <art type="doorverwijspagina">
    <redirect>#REDIRECT[[kanarie]]</redirect>
  </art>
</wikiartikel>

Voorbeeld 2 bewerken

Een XML-document met interne DTD:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE ELEMENT1[
 <!ELEMENT ELEMENT1(ELEMENT2)>
 <!ELEMENT ELEMENT (#PCDATA)>
]>
<ELEMENT1>
  <ELEMENT2>
  data
  </ELEMENT2>
</ELEMENT1>


Externe links bewerken