Damit Browser wissen, mit welcher Art von Dokument sie es zu tun haben, hat das W3C zusammen mit jeder neuen Entwicklung von HTML, XHTML oder XML die so genannten DTD veröffentlicht. Die DTDs – Document Type Definitions – sind fester Bestandteil von HTML, XHTML und XML und basieren auf den strengen Vorgaben der übergeordneten Sprache SGML.

Um dem Browser mitzuteilen

  • mit welcher Sprache und welchem Typ von Dokument er es zu tun, also ob HTML, XHTML oder XML,
  • welche Befehle, Attribute und Einschränkungen für die entsprechende Sprache gelten,
  • was der Browser anzeigen soll,
  • wie er CSS darstellen soll, bzw. wie er sich bei der Anzeige von CSS formatierten Dokumenten verhalten soll,

wird die Doctype Deklaration verwendet. Die DTD ist genormtes Dokument, auf welches neueren Browser bei der Anzeige des der DTD folgenden Inhaltes zugreifen.

Woraus besteht eine Doctype Deklaration?

Eine Doctype Deklaration besteht immer aus mehreren Informationen und ist immer nach dem selben Schema aufgebaut:

1
<!Schluesselwort Argument Parameter>

Mögliche zugelassenen Schlüsselwörter sind:

  • DOCTYPE
  • ELEMENT
  • ATTLIST
  • ENTITY
  • NOTATION
  • SHORTREF
  • USEMAP

Dieser Artikel wird sich aber nur mit dem Doctype Schlüsselwort beschäftigen. Da dieses Schlüsselwort für die Erstellung von Seiten im Internet in den Sprachen HTML und XHTML von Bedeutung ist.

Wie sieht nun eine korrekte Doctype Deklaration aus?

1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

Der erste Teil, also <!DOCTYPE HTML PUBLIC, sagt dem Browser, dass nun ein Dokument folgt, das Systemübergreifenden Code vom Typ HTML verwendet.

Unmittelbar danach wird in der DTD der Herausgeber des entsprechenden Doctypes angegeben, inklusive dem Hinweis, ob dieser Herausgeber ISO zertifiziert ist, oder nicht. "-// Das Minuszeichen am Anfang dieser Zeile besagt, dass der Herausgeber dieser DTD nicht ISO zertifiziert ist. Wäre er zertifiziert, so würde an dieser Stelle "+// stehen. Als nächstes folgt nun der Herausgeber, in diesem Fall also wird mit "W3C// das W3C genannt. Außer dem W3C haben auch Andere ihre eigenen Doctypes herausgegeben (z.B. IBM, Adobe, Microsoft, u.v.m), die für die verschiedensten Anwendungen einsetzbar sind. Dieser Artikel befasst sich aber nur mit Doctypes, die vom W3C herausgegeben wurden.

Der nachfolgende Ausdruck DTD HTML 4.01 Transitional weist den Browser darauf hin, mit welcher Sprache, also z.B. HTML oder XHTML, er es zu tun hat, bzw. welche Ausführung dieser Sprache. Bis zum XHTML 1.0 Standard existieren mehrere verschiedene DTD-Versionen, wie später erklärt wird. Ab XHTML 1.1 gibt es nur noch eine Ausführung.

Ganz am Ende der Deklaration befindet sich //EN"> Hier wird auf die Sprache der DTD verwiesen. Im Bereich des Webdesigns wir hier immer englisch angegeben. Dieser Parameter hat nichts mit der auf der Webseite verwendeten Sprache zu tun.

Zusätzlich zu dieser im Grunde genommen für den Browser ausreichenden Information besteht optional die Möglichkeit die Deklaration noch um eine URI zu erweitern. Die erweiterte Deklaration sieht dann wie folgt aus:

1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Zusätzlich zur oben aufgeführten Deklaration, ist nun noch "http://www.w3.org/TR/html4/loose.dtd"> eingefügt worden. Hier wird noch mal der direkte auf das zu verwendende Doctype genannt. Sollte der Browser ein Doctype nicht kennen, weil es z.B. erst nach seiner Erscheinung veröffentlich wurde, kann er unter der oben aufgeführten Adresse immer auf diese DTD zurückgreifen und ist somit immer auf dem aktuellen Stand.

Die ausführliche Doctype Deklaration ist nicht zwingend vorgegeben. Wie aber später noch klar werden wird, ist diese maßgeblich von Bedeutung, wenn es um die Darstellung in den einzelnen Browsern geht.

Welche DTDs gibt es

Wie bereits in der Einleitung angesprochen, hat das W3C für jede Sprache eigene Doctypes definiert. Auf Sprachen vor HTML 4.01 wird hier nicht näher eingegangen, da sie eigentlich schon lange nicht mehr verwendet werden sollten, da bereits neuere Versionen erhältlich sind.

HTML 4.01

Die HTML 4.01 Spezifikation kennt 3 verschiedene Doctypes, die jedoch nicht zwingend notwendig sind und somit nicht verwendet werden müssen.

  • Die HTML 4.01 Strict DTD ist eine verschärfte Version des Transitional DTDs. Viele Elemente und Attribute, die der Visualisierung dienen z.B. Font, U, Center Elemente, usw. (siehe Transitional DTD), sind in dieser DTD nicht mehr gestattet. Formatierungen sollen nicht mehr via HTML Tags erzielt werden, sondern nur noch via CSS. Demnach wurden alle für die Formatierung vorgesehene Tags entfernt. Man könnte es als Vorläufer der XHTML DTD bezeichnen. Die entsprechenden Anweisung für den Kopf eines solchen Dokumentes sieht wie folgt aus :

    1
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  • Die HTML 4.01 Transitional DTD beinhaltet alle Elemente des HTML Strict 4.01 DTD, sowie alle in der Strict DTD nicht mehr gültigen Elemente. Ein Dokument, welches nach diesen Richtlinien dargestellt werden sollte, muss immer mit dieser Zeile beginnen :
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  • HTML 4.01 Frameset DTD Wie der Name bereits vermuten lässt, ist für Frame-Dokumente diese DTD zuständig. Sie beinhaltet die gesamte Transitional DTD. Ein solches Dokument sollte immer mit dieser Zeile eingeleitet werden.
    1
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

Wird bei einem Dokument keine Doctype Deklaration angegeben, sollte sich ein Browser bei der Darstellung eines HTML Dokumentes eigentlich an die Strict DTD halten und nachfolgende Dokumente gemäß dieser Vorgabe anzeigen. Jedoch hat sich die Transitional DTD durchgesetzt, da sie „fehlertoleranter“ ist und mehr Attribute zulässt, auch wenn dieses nicht im eigentlichen Sinne des W3Cs ist.

XHTML 1.0

Mit der neuen Sprache XHTML 1.0 versuchte das W3C von der “unstrukturierten” Sprache einen Weg zu “strukturiertem” XML zu ebnen. Das Ergebnis war XHTML. Noch immer abwärtskompatibel zu älteren Browsern und dennoch eine kleine Innovation. Wie schon die HTML 4.01 Richtlinien kennt auch die XHTML 1.0 Spezifikation 3 verschiedene DTDs. Im Gegensatz zu HTML 4.01, ist es aber absolut notwendig, dass jedes Dokument mit einer Doctype Deklaration eingeleitet wird.

  • XHTML 1.0 Strict – Diese DTD ist die Schärfste innerhalb von XHTML 1.0 und gestattet keine Elemente und Attribute mehr, die für die Formatierung von Inhalten zuständig sind. Der hier verwendete Code ist extrem Strukturiert und die nachfolgenden Informationen enthalten nur noch die Daten, jedoch keine Formatierungen mehr, was den Einsatz von CSS zwingend notwendig macht. Die dafür vorgesehene Doctype Definition sieht wie folgt aus:

    1
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  • XHTML 1.0 Transitional – Um auch ältere Browser bei der Darstellung von XHTML Dokumenten nicht auszuschließen, wurde seitens des W3C erneut das Transitional DTD veröffentlicht. Es vereint die Möglichkeit auf die XHTML Sprache zurückzugreifen und gleichzeitig alte Browser, die noch immer Darstellungsproblem mit CSS haben, nicht auszuschließen. Dazu gehört z.B. das bgcolor Attribut innerhalb des Body Elementes. Ein solches XHTML konformes Dokument muss zwingend mit dieser Zeile beginnen:
    1
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  • XHTML 1.0 Frameset – Im Gegensatz zum HTML 4.01 DTD beinhaltet dieses DTD nur noch Informationen über Frames und nicht mehr die Informationen, die auch im Transitional DTD enthalten sind. Seiten die innerhalb eines solchen Framesets dargestellt werden sollen, müssen ein eigenes XHTML 1.0 Strict oder Transitional DTD enthalten. Die gültige und zulässige Deklaration sieht wie folgt aus:
    1
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

XHTML 1.1

Der Sprung von XHTML 1.0 zu XHTML 1.1 ist wesentlich größer, als es die Versionsbezeichnung vermuten lässt. XHTML 1.1 ist im Vergleich zu seinem Vorgänger eine modulare Sprache. Dennoch wird noch immer auf eine Abwärtskompatibilität geachtet, auch ältere Browser sollen Dokumente dieses Typs noch darstellen können. Vermutlich der eigentliche Grund, weshalb diese Sprache nur eine Version 1.1 wurde und nicht 2.0. Benötigte Module können bei Bedarf der Sprache hinzugefügt werden, so dass man diese Sprache nach seinen eigenen Bedürfnissen erweitern kann. MathML 2.0 zum Beispiel ist ein solches Modul. Im Gegensatz zu seinem unmittelbaren Vorgänger kennt XHTML 1.1 nur noch eine DTD. Jedes Dokument muss mit dieser DTD beginnen:

  • XHTML 1.1 DTD

    1
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

XHTML 2.0

Am 27.05.2005 veröffentlichte das W3C den mittlerweile 7ten Entwurf zu XHTML 2.0
Auf diese Sprache werde ich hier nicht weiter eingehen, da sie sich noch immer im Entwicklungsstadium befindet und ständig weiterentwickelt wird. Wann genau der letzte Entwurf, bzw die endgültige Fassung dieser Sprache herauskommen soll, steht noch nicht fest. Fest steht aber, dass man fieberhaft an dieser Sprache arbeitet. Sie sollte nur der Vollständigkeit halber erwähnt werden, da sie langsam Formen annimmt und im Laufe der nächsten Jahre weiter an Bedeutung gewinnen wird. Zum momentanen Zeitpunkt ist es noch nicht einmal sicher, wie die einzelnen Module in die Doctype Deklaration eingebunden werden sollen.

Pages: 1 2 3