| ## Grundgerüst einer HTML-Datei
| Grundgerüst einer HTML-Datei Grundgerüst einer XHTML-Datei Dokumenttyp-Angaben Hinweis für die Praxis

## Grundgerüst einer HTML-Datei

Eine gewöhnliche HTML-Datei besteht grundsätzlich aus folgenden Teilen:

- Dokumenttyp-Angabe (Angabe zur verwendeten HTML-Version)
- Header (Kopfdaten. z.B. Angaben zu Titel u.ä.)
- Body (Körper - anzuzeigender Inhalt, also Text mit Überschriften, Verweisen, Grafikreferenzen usw.)

### Schema:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
           "http://www.w3.org/TR/html4/transitional.dtd">
    <html>
    <head>
    <title>Text des Titels</title>
    </head>
    <body>

    </body>
    </html>

### Erläuterung:

Die erste Zeile sieht für Anfänger zunächst verwirrend aus. Diese etwas komplizierte Angabe ist eine Dokumenttyp-Angabe. Einzelheiten dazu weiter unten bei Dokumenttyp-Angaben.

Der gesamte übrige Inhalt einer HTML-Datei wird in die Tags `<html>` bzw. `</html>` eingeschlossen. Das `html`-Element wird auch als Wurzelelement einer HTML-Datei bezeichnet. Hinter dem einleitenden HTML-Tag folgt das einleitende Tag für den Kopf `<head>`. Zwischen diesem Tag und seinem Gegenstück `</head>` werden Kopfdaten einer HTML-Datei notiert. Die wichtigste dieser Angaben ist der Titel der HTML-Datei, markiert durch `<title>` bzw. `</title>`. Unterhalb davon folgt der Textkörper, markiert durch `<body>` bzw. `</body>`. Dazwischen wird dann der eigentliche Inhalt der Datei notiert, also das, was im Anzeigefenster des WWW-Browsers angezeigt werden soll.

### Beachten Sie:

Wenn Sie Frames (mehrere Bildschirmfenster) einsetzen wollen, sieht das Grundgerüst von Dateien, in denen ein Frameset definiert wird, anders aus. Dies wird im Abschnitt Grundgerüst einer HTML-Datei mit Framesets beschrieben. Befassen Sie sich mit Frames aber erst, wenn Sie mit den Grundlagen von HTML schon etwas vertrauter sind.

## Grundgerüst einer XHTML-Datei

Wenn Sie XHTML-gerechtes HTML schreiben wollen, sieht das Grundgerüst ähnlich aus. Nur am Anfang ist einiges anders.

### Schema:

    <?xml version="1.0"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Text des Titels</title>
    </head>
    <body>

    </body>
    </html>

### Erläuterung:

Noch vor der Dokumenttyp-Angabe sollte bei XHTML-Dateien der Bezug zu XML hergestellt werden. Dazu dient die erste Zeile mit den Fragezeichen hinter der öffnenden spitzen Klammer und der schließenden spitzen Klammer. Notieren Sie diese Zeile so wie im Beispiel angegeben. Es handelt sich um eine so genannte XML-Deklaration.

Bei der Dokumenttyp-Angabe muss ein für XHTML gültiger Dokumenttyp angegeben werden. Einzelheiten dazu weiter unten im Abschnitt Dokumenttyp-Angaben.

Im einleitenden `<html>`-Tag muss der verwendete XML-Namensraum mit einem Attribut namens `xmlns=` angegeben werden. Benutzen Sie die Angabe wie im obigen Beispiel.

Damit ist die Datei als XHTML-Datei deklariert. Der weitere Quelltext ist normales HTML. Allerdings müssen Sie in diesem Fall die Unterschiede zwischen XHTML und HTML beachten. Befassen Sie sich mit diesen Unterschieden aber erst, wenn Sie schon etwas vertrauter mit HTML sind.

## 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.

## Hinweis für die Praxis

Wenn Sie nun entmutigt sind durch das ganze Wirrwarr von HTML und XHTML, HTML-Sprachvarianten, XML-Deklarationen und Dokumenttyp-Anweisungen - lassen Sie sich davon nicht zu sehr beeindrucken. Das Wirrwarr ist dadurch entstanden, dass es viele Entwicklungen gibt auf dem Gebiet der Auszeichnungssprachen, und dass bei dieser Entwicklung auch nur mit Wasser gekocht wird. Vieles war zunächst unausgereift, und heute ist man bemüht, einen Spagat zu machen zwischen den fröhlichen Anfängen von HTML und den wachsenden Anforderungen, die an HTML gestellt werden, wenn es für professionelle Datenverarbeitung verwendet werden soll.

Benutzen Sie für Ihre ersten Schritte in HTML zunächst einfach mal das oben vorgestellte Grundgerüst einer HTML-Datei so wie es dort notiert ist, und lernen Sie den Umgang mit weiteren HTML-Elementen und ihren Attributen, sowie den Umgang mit CSS Stylesheets. Wenn Sie erst einmal vertrauter sind mit diesen Sprachen, werden Sie auch besser verstehen, welchen Sinn und Zweck die Unterschiede zwischen HTML und XHTML und die Unterschiede zwischen Sprachvarianten wie "Strict", "Transitional" und "Frameset" haben.

| Regeln beim Editieren von HTML
| Textauszeichnung

© 2001 selfhtml@teamone.de