Der Dokumententyp

Allgemeines

Wie bereits erwähnt basiert HTML auf der Metasprache SGML, genauer, mit SGML werden Regeln (z.B. der HTML Wortschatz oder Syntaxregeln) für HTML formuliert. Nach den Regeln einer SGML-basierten Auszeichnungssprache ist eine HTML-Datei erst dann eine gültige Datei, wenn sie einen bestimmten Dokumenttyp angibt und sich dann der restliche Quelltext genau an die Regeln hält, die für diesen Dokumenttyp definiert sind. Hinter jeder Dokumenttyp-Deklaration stecken so genannte Dokumenttyp-Definitionen (DTD), worin geregelt ist, welche Elemente ein HTML Dokument enthalten darf, welche Attribute ein Element besitzt, oder welche Elemente man verschachteln darf. Eine vollständige Übersicht aller Dokumenttypen finden Sie auf der Webseite des W3C.

HTML Dokumenttypen

Vom Aktuellen HTML 4.01 Standard gibt es drei Varianten:

Die Variante 'Strict'

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

Diese Variante wird benutzt, wenn bestimmte Elemente und Attribute aus früheren HTML Versionen, welche sich mittlerweile z.b. über Stylesheets lösen lassen, nicht verwendet werden. Zudem sind die Verschachtelungsregeln strenger. Reiner (unformatierter) Text zwischen <body> und </body> ist beispielsweise nicht erlaubt.

Die Variante 'Transitional'

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

Diese Variante wird benutzt, wenn auch die in der 'Strict' Variante verbotenen Elemente und Attribute verwendet werden sollen. Zudem sind hier die Verschachtelungsregeln etwas lockerer und 'nackter' (unformatierter) Text zwischen <body> und </body> ist erlaubt.

Die Variante 'Frameset'

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

Diese Variante ist nur für HTML-Dateien gedacht, in denen Framesets definiert werden

Ältere HTML Standards

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">

Benutzen Sie diese Variante, wenn Sie sich auf den HTML 2.0 bzw. 3.2 Standard beziehen wollen.

Der Schritt zu XHTML

Die Funktionsweise von XHTML ist HTML sehr ähnlich und auch der Code selbst unterscheidet sich kaum. Allerdings ist XHTML eine korrekt und vollständig per XML definierte Sprache. Das W3C empfiehlt inzwischen den Einsatz von XHTML anstelle von HTML. Die Spezifikationen zu XHTML 1.0 finden Sie auf der Webseite des W3C unter http://www.w3.org/TR/xhtml1/.

Die wesentlichen Unterschiede zu HTML


1. Angabe von Dokumenttyp und Namensraum
Während bei HTML die Angabe eines Dokumententyps aufgrund der Fehlertoleranz der handelsüblichen Browser ohne Schaden weggelassen werden konnte, ist diese Angabe bei XHTML unverzichtbar. Die exakte Formulierung des Dokumententyps hat dabei großen Einfluss auf die Darstellung des Dokumentes, da viele Browser die doctype-Angabe benutzen, um unterschiedliche Layout-Modi anzusteuern. Des weiteren ist die Angabe des Namensraumes unmittelbar nach dem Dokumententyp erforderlich.
Diese Angabe sieht wie folgt aus:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

bzw. für ein deutschsprachiges Dokument
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">

Außerdem ist ein sogenannter XML-Prolog vorgesehen, der Aufschluss auf die verwendete XML-Version und den Zeichensatz gibt.
Hier ein Beispiel:
<?xml version="1.0" encoding="utf-8"?>

2. Tags und Attribute müssen kleingeschrieben werden
Während es in HTML egal war, ob Tags groß, klein, oder auch gemischt geschrieben wurden, ist in XHTML nur noch Kleinschreibung erlaubt.

3. Attribute müssen in Anführungszeichen stehen
XHTML verlangt, dass alle Attribute in Anführungszeichen stehen. border=1 als Attribut einer Tabelle ist somit nur noch zulässig, wenn sie die 1 in Anführungszeichen setzen.

4. Attribute dürfen nicht alleine stehen
Jedes Attribut muss einen Wert besitzen. Falls kein Wert vorgesehen ist, wird der Name des Attributes als Wert benutzt. Ein Beispiel:
Aus: <td nowrap>
wird: <td nowrap="nowrap">

5. Alle Tags müssen geschlossen werden
Während man in HTML in vielen Fällen auf das Schließen von Tags verzichten konnte, schreibt XHTML vor, dass zu jedem öffnenden Tag auch ein schliessender vorhanden sein muss. Selbst einzeln tehende Tags, wie <br>, müssen formal beendet werden. Dazu wird am ende des Tags ein / angefügt. Aus <br> wird somit <br />. Es wird empfohlen, ein Leerzeichen zwischen dem letzten Zeichen des Tagnamens und dem / zu lassen, um eine korrekte Darstellung in älteren Browsern sicherzustellen.

6. Skripte und Styles müssen maskiert werden
XHTML erwartet, dass Scripte und Styles als CDATD-Bereich (charakter data) gekennzeichnet werden. Dies sieht folgendermasen aus:
<script type="text/javascript">
    // <![CDATA[
    ...
    // ]]>
</script>

Um sicherzustellen, dass die XHTML Tags vor sehr alten Browsern verborgen werden, können Sie diese auch noch auskommentieren.
<script type="text/javascript">
    <!--
    // <![CDATA[
    ...
    // ]]>
    -->
</script>

7. Externe Scripte
Generell wird in XHTML empfohlen, Scripte in externe Dateien auszulagern.

8. Das ID Attribut
Das Attribut id löst das Attribut name zur Benennung von Ankern ab. Auch das Target Attribut ist in der strict-Variante von XHTML nichtmehr erlaubt.

XHTML Dokumenttypen

XHTML 1.0
Auch hier werden drei Varianten unterschieden:

Die Variante 'Strict'

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Diese Variante wird benutzt, wenn Sie jegliche 'Styles' des Dokumentes per CSS Lösen, oder eine reine XHTML Präsentation, ohne visuelle Effekte erstellen möchten.

Die Variante 'Transitional'

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Nutzen Sie diese Variante, wenn Sie (beispielsweise um die Kompatibilität zu Browsern, die keine Stylesheets interpretieren können zu wahren) die in XHTML implementierten Möglichkeiten zum Formatieren des Dokumentes nutzen wollen.

Die Variante 'Frameset'

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

Diese Variante ist nur für XHTML-Dateien gedacht, in denen Framesets definiert werden

XHTML 1.1
Für XHTML 1.1 gibt es nur noch einen möglichen Dokumententyp. Dieser entspricht der strict-Variante.

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

Dieses Dokument entspricht den aktuellen HTML / CSS Standards.   Valid HTML 4.01!   Valid CSS!

Verwandte Themen


Stoppt die Vorratsdatenspeicherung! Jetzt klicken &handeln!