DOCTYPE-Deklaration [XML-Standards]

Die DOCTYPE-Deklaration stellt einen Bereich für ein Dokument bereit, um die Definition des Stammelements und des Dokumenttyps (DTD) anzugeben. Dies erfolgt durch einen Verweis auf eine externe Datei, über direkte Deklarationen oder mithilfe beider Methoden.

In einer DOCTYPE-Deklaration kann Folgendes enthalten sein:

  • Der Name des Dokuments oder des Stammelements.

    Dies ist bei Verwendung der DOCTYPE-Deklaration erforderlich.

  • Systembezeichner und öffentliche Bezeichner für die DTD zum Validieren der Dokumentstruktur.

    Bei Verwendung eines öffentlichen Bezeichners muss auch ein Systembezeichner vorhanden sein.

  • Eine interne Teilmenge von DTD-Deklarationen.

    Die interne Teilmenge wird in eckigen Klammern ([ ]) angezeigt.

Eine DOCTYPE-Deklaration ist erforderlich, wenn das Dokument in einer Validierungsumgebung verarbeitet werden soll. Damit eine DOCTYPE-Deklaration gültig ist, muss sie eine DTD identifizieren, die der Dokumentstruktur des Dokuments entspricht. Nicht validierende Parser nehmen Dokumente ohne DOCTYPE-Deklarationen an.

Mit der einfachsten DOCTYPE-Deklaration wird nur das Stammelement des Dokuments bezeichnet.

<!DOCTYPE rootElement>

Häufig verweisen Dokumente mit der DOCTYPE-Deklaration auf ein externes Dokument, das die Deklarationen enthält, aus denen die DTD besteht. Die externe DTD kann folgendermaßen angegeben werden.

<!DOCTYPE rootElement SYSTEM "URIreference">

URIreference zeigt auf eine Datei, die die Deklarationen enthält.

<!DOCTYPE rootElement PUBLIC "PublicIdentifier" "URIreference">

PublicIdentifier stellt einen separaten Bezeichner bereit, mit dem einige XML-Parser auf die anstelle von URIreference verwendete DTD verweisen können. Dies ist hilfreich, wenn der Parser in einem System ohne Netzwerkverbindung verwendet wird, oder wenn die Verbindung die Verarbeitung deutlich verlangsamen würde.

DOCTYPE-Deklarationen können auch direkt Deklarationen enthalten. Dies wird als interne Teilmenge bezeichnet. Wenn eine DOCTYPE-Deklaration die gesamte DTD direkt enthält, ohne Verweis auf externe Dateien, wird die folgende Syntax verwendet.

<!DOCTYPE rootElement [
declarations
]>

Wenn in der DOCTYPE-Deklaration Deklarationen enthalten sind, die mit externenen Dateien oder der externen Teilmenge kombiniert werden sollen, wird die folgende Syntax verwendet.

<!DOCTYPE rootElement SYSTEM "URIreference"[
declarations
]>

oder

<!DOCTYPE rootElement PUBLIC "PublicIdentifier" "URIreference"[
declarations
]>