WikiDer > Dokumenttypdefinition

Document type definition

DTD (Englisch: Dokumenttypdefinition) mit anderen Worten Dokumenttypdefinition ist eine Schema-Technologie ursprünglich von SGML verwendet wurde, und später auch in SGML-abgeleiteten formalen Sprachen oder Anwendungen von SGML wie XML, HTML und XHTML.

In einer DTD kann man formale Spezifikationen von Dokumenten machen, gegen die sie validiert werden können, beispielsweise durch XML-Validatoren. Dazu gibt eine DTD unter anderem an, was die Elemente eines XML-Dokuments sind, wo sie vorkommen, welche Eigenschaften sie erfüllen müssen und so weiter. Ganz einfach ausgedrückt kann eine DTD unter anderem angeben, welche Art von Tags in einem XML-Dokument vorkommen dürfen.

Ein XML-Dokument kann gegen den oder einen gängigen XML-Standard korrekt sein, aber dennoch nicht gegen ein bestimmtes DTD-Schema gültig sein.

DTD ist starrer und kryptischer als die später entwickelte XML-Schema, die für den gleichen Zweck verwendet wird. Ein Nachteil von DTD gegenüber XML-Schema besteht außerdem darin, dass ersteres nicht in XML dargestellt wird, letzteres jedoch. Da DTD schon lange verwendet wird und in der Praxis viele formale Sprachen damit beschrieben wurden, die die XML-Spezifikationen erfüllen, ist es nicht so, dass DTD in absehbarer Zeit komplett durch XML Schema ersetzt wird.

Wegen des

Beispiele

Beispiel 1

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

Ein XML-Dokument, das dieser DTD entspricht, wäre beispielsweise:

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

Beispiel 2

Ein XML-Dokument mit interner DTD:

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

Externe Links