Was ist das DTD-Dateiformat?
DTD steht für Document Type Definition. Eine .dtd-Datei ist eine reine Textdatei, welche die zulässigen Elemente, Attribute und die Struktur eines XML-, XHTML-, HTML- oder SGML-Dokuments definiert.
Die in einer DTD-Datei gespeicherten Daten beschreiben die Struktur des zugehörigen Dokuments - einschließlich der erlaubten Verschachtelung und Reihenfolge der Elemente. DTD-Dateien gewährleisten die Konsistenz beim Datenaustausch zwischen Systemen; ein validierender XML-Parser kann zudem die Gültigkeit eines bestimmten Dokuments gegen seine DTD prüfen. Deklarationen verwenden drei Haupttypen: <!ELEMENT> (Kindelemente), <!ATTLIST> (Attribute) und <!ENTITY> (wiederverwendbare Textmakros).
DTDs stammen ursprünglich aus dem SGML-Standard (ISO 8879, 1986) und wurden 1998 in die W3C XML 1.0-Spezifikation übernommen. Bekannte öffentliche DTDs decken XHTML, DocBook, SVG und MathML ab. Da DTDs die Unterstützung von XML-Namensräumen und komplexen Datentypen vermissen lassen, sind XSD (W3C XML Schema) und RELAX NG heute die bevorzugten Alternativen. HTML5 verwendet eine minimale <!DOCTYPE html>-Deklaration, die nicht auf eine tatsächliche DTD-Datei verweist.
Sicherheit
RISIKO: LOWKlartextdatei; kein ausführbarer Inhalt. DTD-Deklarationen für externe Entitäten (<!ENTITY % name SYSTEM 'url'>) können XML External Entity (XXE)-Angriffe verursachen, wenn sie von XML-Parsern im Anwendungscode verarbeitet werden - dies ist kein Risiko beim Öffnen der DTD-Datei selbst, sondern ein Risiko, wenn die DTD in einer Anwendung verwendet wird, die nicht vertrauenswürdiges XML mit aktivierter DTD-Verarbeitung parst. Sicher in einem Texteditor zu öffnen.
Formatdetails
kurz gefasstProgramme zum Öffnen von DTD-Dateien
Technische Details
technische Spezifikation| Dateityp | Klartext-Schema/Deklarationsdatei |
| MIME-Typ | application/xml-dtd; text/plain (alternativ) |
| Magic Bytes | Keine - Klartext (kann mit einem XML-Kommentar oder direkt mit einer <!ELEMENT-Deklaration beginnen) |
| Kodierung | UTF-8 oder US-ASCII; Kodierung wird in optionaler vorangestellter XML-Verarbeitungsanweisung deklariert |
| Kompression | Keine - unkomprimierter Klartext |
| Typische Größe | 1 KB - 500 KB (einfache DTDs sind klein; komplexe Standards wie DITA- oder DocBook-DTDs können über 100 KB groß sein mit modularen .mod/.ent-Dateien) |
| Deklarationstypen | <!ELEMENT> (Kindelemente und Inhaltsmodell), <!ATTLIST> (Attribute und Standardwerte), <!ENTITY> (Textmakros), <!NOTATION> (Notationstypen) |
| Standard-Ursprung | SGML ISO 8879 (Oktober 1986); übernommen durch W3C XML 1.0 Recommendation (Februar 1998) |
| Namensraum-Unterstützung | Keine - die DTD-Syntax ist älter als XML-Namensräume, eine wesentliche Einschränkung gegenüber XSD |
| Datentyp-Unterstützung | Begrenzt auf ID, IDREF, CDATA, NMTOKEN und einige andere - keine komplexen Typen wie Datum oder Integer |
| Validierung | XML-Parser können ein Dokument gegen seine DTD unter Verwendung von ELEMENT- und ATTLIST-Beschränkungen validieren |
| HTML5 DOCTYPE | <!DOCTYPE html> ist ein minimaler Platzhalter; referenziert oder benötigt keine tatsächliche DTD-Datei |
| Bekannte öffentliche DTDs | XHTML 1.0, DocBook, DITA, SVG 1.1, MathML 2.0 - referenziert durch PUBLIC/SYSTEM-Identifikatoren in Dokumenten |
| Abgelöst durch | W3C XML Schema (.xsd, 2001) und RELAX NG (.rnc/.rng, 2003) für namensraum-bewusste und typisierte Validierung |
| Veröffentlicht | 1986 (SGML, ISO 8879); 1998 for XML DTD (W3C XML 1.0 Recommendation, February 1998) |
| Neueste Version | XML 1.0 Fifth Edition (November 2008); XML 1.1 Second Edition (August 2006) - DTD syntax unchanged since 1998; W3C XML Schema (XSD) and RELAX NG are modern replacements |
| Offener Standard | Ja · lizenzgebührenfrei |
| Spezifikation | www.w3.org |
DTD-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu DTD-Dateien.