Dokumenttyp-Angaben
HTML ist innerhalb der Familie der Auszeichnungssprachen nur eine von vielen, wenn auch die prominenteste.
HTML selbst hat außerdem bereits eine mehrjährige Geschichte und ist in verschiedenen, recht unterschiedlichen Versionen normiert worden. Mit der Dokumenttyp-Angabe bestimmen Sie, welche Auszeichnungssprache in welcher Version Sie verwenden. Eine auslesende Software, etwa ein Web-Browser, kann sich an dieser Angabe orientieren.
Die Regeln für
HTML sind mit Hilfe von SGML formuliert, die Regeln für XHTML mit Hilfe von
XML. Nach den Regeln einer SGML- oder
XML-basierten Auszeichnungssprache ist eine
HTML-Datei oder eine XHTML-Datei erst dann eine gültige (valide) Datei, wenn sie einen bestimmten Dokumenttyp angibt und sich dann innerhalb des restlichen Quelltextes genau an die Regeln hält, die in diesem Dokumenttyp definiert sind. Denn hinter jeder Dokumenttyp-Angabe stecken so genannte Dokumenttyp-Definitionen (DTD). Auch für
HTML gibt es solche Dokumenttyp-Definitionen. Dort ist geregelt, welche Elemente ein Dokument vom Typ
HTML enthalten darf, welche Elemente innerhalb von welchen anderen vorkommen dürfen, welche Attribute zu einem Element gehören, ob die Angabe dieser Attribute Pflicht ist oder freiwillig usw.
Als
HTML-Anfänger mag Ihnen der Aufwand, der da betrieben wird, vielleicht nicht ganz einleuchten. Doch genau diese Dokumenttypen, mit deren Hilfe sich Regeln für Sprachen wie
HTML genau definieren lassen, sind ein riesiger Fortschritt in der EDV. Denn nur so lässt sich das Konzept der software-unabhängigen, aber regelgerechten Dateiformate konsequent durchsetzen. Ohne den Bezug auf die offiziellen Regeln wären Sprachen wie
HTML unverbindliche Konventionen, die schnell in Dialekten verwässern würden. Das ist genauso wie bei natürlichen Sprachen: ohne eine gewisse Regelung der "Rechtschreibung" würde eine Schriftsprache im Laufe der Zeit so stark zersetzt, dass am Ende kaum jemand mehr lesen kann, was der andere mit dem was er geschrieben hat meint. Da Software außerdem noch viel dümmer ist als Menschen und viel genauere Vorgaben benötigt, um zu "verstehen" was man ihr mitteilt, ist das Beziehen auf Regeln dort sogar noch wesentlich wichtiger.
Beispiel einer Dokumenttyp-Angabe:
<!DOCTYPE
HTML PUBLIC "-//
W3C//DTD
HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
Erläuterung:
Notieren Sie die Dokumenttyp-Angabe am Anfang der
HTML-Datei vor dem einleitenden <
html>-Tag. Hinter der startenden spitzen Klammer folgt ein Ausrufezeichen. Dahinter folgt die Angabe DOCTYPE
HTML PUBLIC. Das bedeutet, dass Sie sich auf die öffentlich verfügbare
HTML-DTD beziehen. Die folgende Angabe, die in Anführungszeichen steht, ist wie folgt zu verstehen:
W3C ist der Herausgeber der DTD, also das W3-Konsortium. Eine Angabe wie DTD
HTML 4.01 Transitional bedeutet, dass Sie in der Datei den Dokumenttyp "
HTML" verwenden, und zwar in der Sprachversion 4.01 und deren Variante "Transitional". Das EN ist ein Sprachenkürzel und steht für die Sprache, in diesem Fall Englisch. Die Angabe bezieht sich darauf, in welcher natürlichen Sprache die Element- und Attributnamen der Tagsprache definiert wurden, nicht auf den Inhalt Ihrer Datei. Benutzen Sie also immer EN, da die Namen von
HTML-Elementen und -Attributen auf der englischen Sprache basieren.
Die Schrägstriche notieren Sie so wie im obigen Beispiel.
Ferner enthält die Dokumenttyp-Angabe eine Web-Adresse. Die Angabe dieser Adresse ist nicht zwingend nötig. Eine Angabe wie:
<!DOCTYPE
HTML PUBLIC "-//
W3C//DTD
HTML 4.01 Transitional//EN">
ist also ebenfalls erlaubt.
Über die angegebene Web-Adresse kann eine auslesende Software die Dokumenttyp-Definitionen (DTD) aufrufen und in den darin notierten Regeln "nachgucken". Die meisten heutigen Browser tun das bei
HTML allerdings nicht, weil sie ohnehin bei vielen Web-Seiten mit übelsten Sprachverunstaltungen rechnen müssen und die Fähigkeit, auch nicht regelgerechtes
HTML ordentlich auf den Bildschirm zu bringen, zugunsten der "reinen Lehre" opfern. Das eigentlich gewünschte Verhalten ist allerdings, dass ein Browser dann, wenn eine
HTML-Datei eine Dokumenttyp-Angabe enthält, auch auf der Einhaltung der Regeln dieses Dokumenttyps besteht. Bei
XML-Dokumenten ist es durchaus üblich, dass ein Parser bei einem Regelverstoß abbricht - anstelle der Web-Seite erscheint dann nur eine trockene Fehlermeldung, dass das Dokument nicht gültig (valide) sei.
Zum Redaktionszeitpunkt dieses Dokuments ist die
HTML-Version 4.01 aktuell. Bei dieser
HTML-Version und auch schon bei der glatten Versionsnummer 4.0 gibt es drei Sprachvarianten. Für eine davon müssen Sie sich entscheiden und den entsprechenden Dokumenttyp angeben:
Die Variante "Strict" für
HTML:
<!DOCTYPE
HTML PUBLIC "-//
W3C//DTD
HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
Benutzen Sie dieser Angabe, wenn Sie bestimmte Elemente und Attribute nicht mehr verwenden wollen, die früher mal zum
HTML-Standard gehörten, aber mittlerweile durch andere Möglichkeiten (vor allem durch CSS Stylesheets) ersetzbar sind und deshalb nicht mehr zum "reinen"
HTML gehören. Ferner sind die Verschachtelungsregeln für
HTML-Elemente in der strict-Variante enger und im Sinne strukturierter Inhalte sauberer formuliert. So ist es in dieser Variante beispielsweise nicht erlaubt, zwischen <body> und </body> einfach nur Text zu notieren. Alle Inhalte müssen in so genannten Block-Elementen stehen, z.B. in Überschriften, Textabsätzen, Tabellen usw.
Die Variante "Transitional" für
HTML:
<!DOCTYPE
HTML PUBLIC "-//
W3C//DTD
HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
Benutzen Sie diese Angabe, wenn Sie auch die früher mal erlaubten Elemente und Attribute noch verwenden wollen. Ein Grund, sich für diese Variante zu entscheiden, könnte sein, dass Sie Ihr
HTML so schreiben wollen, dass es auch mit Netscape 3.x und anderen älteren Browsern, die noch kein CSS verstehen, in etwa so aussieht wie Sie es wünschen. Denn in der strict-Variante entfallen praktisch alle Elemente und Attribute, die in
HTML früher für das "optische Aufpeppeln" von Web-Seiten gesorgt haben. Dazu gehören Angaben zur Textausrichtung, zu Hintergrundfarben usw. All das können Sie auch mit CSS definieren, aber ältere Browser verstehen nun mal noch kein CSS. In der Variante "transitional" sind auch die Regeln für die Elementverschachtelung etwas milder. So ist es nach dieser Variante erlaubt, zwischen <body> und <body> "nackten Text" außerhalb eines weiteren Elements zu notieren.
Die Variante "Frameset" für
HTML:
<!DOCTYPE
HTML PUBLIC "-//
W3C//DTD
HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
Diese Angabe ist nur für spezielle
HTML-Dateien gedacht, in denen Framesets definiert werden. Siehe dazu den Abschnitt Framesets und Frames definieren.
Entsprechende Dokumenttyp-Angaben für XHTML:
<!DOCTYPE
html PUBLIC "-//
W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!DOCTYPE
html PUBLIC "-//
W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE
html PUBLIC "-//
W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
Auch für XHTML 1.0 gibt es die drei Varianten "Strict", "Transitional" und "Frameset". Im Mittelteil der Dokumenttyp-Angabe muss jedoch bei Version 1.0 von XHTML XHTML 1.0 notiert werden. Auch die Web-Adressen für den Bezug sind andere als bei
HTML.
Es gibt auch eine Sprachversion 1.1 von XHTML, die intern anders organisiert ist als XHTML 1.0. In XHTML 1.1 gibt es keine Sprachvarianten mehr. XHTML 1.1 entspricht nur noch der Sprachvariante "Strict" von XHTML 1.0.
Dokumenttyp-Angaben für XHTML 1.1:
<!DOCTYPE
html PUBLIC "-//
W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
Ältere Dokumenttyp-Angaben:
In manchen Ausnahmefällen kann es sinnvoll sein, sich auch auf eine ältere
HTML-Version zu beziehen. Tun Sie dies jedoch nur, wenn irgendwelche technischen Gründe es erfordern. Folgende ältere Angaben gibt es:
<!DOCTYPE
HTML PUBLIC "-//
W3C//DTD
HTML 2.0//EN">
Benutzen Sie diese Dokumenttyp-Angabe, wenn Sie sich auf
HTML 2.0 beziehen wollen.
<
HTML PUBLIC "-//
W3C//DTD
HTML 3.2//EN">
Benutzen Sie diese Dokumenttyp-Angabe, wenn Sie sich auf
HTML 3.2 beziehen wollen.
Dokumenttyp-Angaben anderer
HTML-Versionen sind nicht mehr im Gebrauch.