Websites mit dem richtigen HTML DOCTYPE versehen

Die Dokumenttyp-Deklaration oder DOCTYPE ist eine Anweisung, die ein bestimmtes SGML- oder XML-Dokument wie zum Beispiel eine Webseite mit einer Dokumenttyp-Definition (DTD) verknüpft. In der serialisierten Form des Dokuments manifestiert es sich als eine kurze Markierung, die einer bestimmten Syntax entspricht.

Der DOCTYPE ist ein Überbleibsel eines theoretischen Konzepts, welches heutzutage in der Praxisanwendung nicht mehr zum gewünschten Ergebnis führt und höchstens noch zum Validieren von Webseiten Bedeutung hat.

Da Webbrowser anstelle von DTD-basierten Parsern mit speziellen HTML-Parsern versehen sind, verwenden sie keine DTDs und werden niemals darauf zugreifen, auch wenn eine URL bereitgestellt wird.

Der DOCTYPE wird in HTML5 als nutzloser, aber erforderlicher Header beibehalten, einfach um den “Standardmodus” in gängigen Browsern auszulösen.

DTDs

Syntax

Die allgemeine Syntax für eine Dokumenttypdeklaration lautet:

<! DOCTYPE Root-Element PUBLIC "FPI" ["URI"] [
<! - interne Untermengendeklarationen ->
]>

oder
<! DOCTYPE Root-Element SYSTEM "URI" [
<! - interne Untermengendeklarationen ->
]>

In XML ist das Root-Element, welches das Dokument repräsentiert, das erste Element im Dokument. Zum Beispiel ist in XHTML <html> das Root-Element, welches als erste Element geöffnet (gemäss Doctype-Deklaration) und als letztes Element geschlossen wird.

Die Schlüsselwörter SYSTEM und PUBLIC bestimmen die Art der Document Type Definition (DTD). Wenn das PUBLIC-Schlüsselwort gewählt wird, folgt auf dieses Keyword ein eingeschränktes Formular “public identifier” mit dem Namen Formal Public Identifier (FPI), das in doppelten Anführungszeichen eingeschlossen ist. Danach wird unbedingt auch ein “Systemkennzeichen” in doppelten Anführungszeichen versehen. Zum Beispiel ist das FPI für XHTML 1.1 “- // W3C // DTD XHTML 1.1 // DE” und es gibt 3 mögliche Systemkennungen für XHTML 1.1 je nach Bedarf, einer davon ist die URI-Referenz ” http: //www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd “.

Wenn stattdessen das SYSTEM-Schlüsselwort gewählt wird, muss nur eine Systemkennung angegeben werden. Dies bedeutet, dass der XML-Parser die DTD systemspezifisch lokalisieren muss, in diesem Fall mittels einer URI-Referenz der DTD, die in doppelten Anführungszeichen eingeschlossen ist. Der letzte Part, umgeben von eckigen Klammern ([]), wird als interne Untermenge bezeichnet, die zum Hinzufügen sowie Bearbeiten von Entitäten oder zum Hinzufügen/Bearbeiten von PUBLIC-Keyword-Verhaltensweisen verwendet werden kann. Diese interne Teilmenge ist immer optional.

Auf der anderen Seite unterscheiden sich die Dokumenttyp-Deklarationen in SGML-basierten Dokumenten wie HTML, wobei die öffentliche Kennung mit der Systemkennung verknüpft werden kann. Diese Assoziation kann z. B. mittels einer Katalogdatei durchgeführt werden, die das FPI auf eine Systemkennung auflöst.

Beispiel

Die erste Zeile vieler World Wide Web Seiten lautet wie folgt:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//DE" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="de" dir="ltr" xmlns="http://www.w3.org/1999/xhtml">

Diese Dokumenttyp-Deklaration für XHTML enthält durch Verweis eine DTD mit der öffentlichen Kennung -//W3C//DTD XHTML 1.0 Transitional//DE und der Systemkennung http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd

Ein Entity-Resolver kann entweder eine Kennung für die Lokalisierung der referenzierten externen Entität verwenden. In diesem Beispiel wurde keine interne Untermenge angegeben oder die nächsten. Das Wurzel-Element wird als html deklariert und daher ist es das erste Tag, das nach dem Ende der Doctype-Deklaration in diesem Beispiel und den nächsten auch geöffnet werden soll. Das html-Tag ist nicht Teil der Doctype-Deklaration, sondern wurde in die Beispiele für Orientierungszwecke aufgenommen.

HTML 4.01 DTDs

Strict DTD erlaubt keine “präsentierende” Markup mit der Begründung, dass stattdessen Cascading Style Sheets verwendet werden sollten. So sieht Strict DTD aus:

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

Übergangs-DTD erlaubt einige ältere PUBLIC und Attribute, die abgelehnt wurden:

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

Wenn Frames verwendet werden, muss stattdessen die Frameset DTD verwendet werden:

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

XHTML 1.0 DTDs

Bei XHTML sind die DTDs ebenfalls entweder Strict, Transitional oder Frameset.

XHTML Strict DTD. Es werden keine veralteten Tags unterstützt und der Code muss entsprechend der XML-Spezifikation korrekt geschrieben werden.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//DE" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de" >

XHTML Transitional DTD ist wie die XHTML Strict DTD, aber veraltete Tags sind erlaubt.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//DE" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">

XHTML Frameset DTD ist die einzige XHTML DTD, die Frameset unterstützt. Die DTD ist unten.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//DE" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">

XHTML 1.1 DTD

XHTML 1.1 ist die aktuellste finalisierte Revision von XHTML, die Unterstützung für XHTML Modularisierung . XHTML 1.1 hat die Stringenz von XHTML 1.0 Strict.

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

XHTML Basic DTDs

XHTML Basic 1.0

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//DE" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">

XHTML Basic 1.1

<! DOCTYPE html PUBLIC "- // W3C // DTD XHTML Basic 1.1 // DE" "Http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">

HTML5 DTD-weniger DOCTYPE

HTML5 verwendet eine DOCTYPE Deklaration, die aufgrund ihres fehlenden Verweises auf eine DTD in Form einer URL oder eines FPI sehr kurz ist. Die Definition enthält einzig den Tag-Namen des Root-Elements des Dokuments – nämlich HTML:

<!DOCTYPE html>

Sowohl in HTML4 als auch in HTML5 ist die formale Syntax in Großbuchstaben definiert, auch wenn sowohl Kleinbuchstaben als auch Mischungen von Großbuchstaben auch als gültig behandelt werden.

In XHTML5 muss das DOCTYPE eine Groß- / Kleinschreibung beachten, die mit der Zeichenfolge “<!DOCTYPE html>” übereinstimmt. Dies liegt daran, dass bei der XHTML-Syntax alle HTML-Elementnamen in Kleinbuchstaben erforderlich sind, einschließlich des Root-Elements, auf das im HTML5 DOCTYPE verwiesen wird.

Der DOCTYPE ist optional in XHTML5 und kann einfach weggelassen werden. Wenn jedoch das Markup als XML und HTML verarbeitet werden soll, sollte ein DOCTYPE verwendet werden.

Leave a Reply

Your email address will not be published. Required fields are marked *