Die Sprachen des Web - Markup Languages

netplanet Werbung

Eine der drei Grundsäulen des World Wide Webs ist die Auszeichnungssprache HTML. Die Einfachheit von HTML begründete nicht zuletzt den rasenden Boom des Webs und nicht zuletzt auch des Internet, da mit HTML quasi jeder mit den einfachsten Mitteln eigene Web-Seiten erstellen kann.

Was ist eine Auszeichnungssprache?

Eine Auszeichnungssprache ist eine Sprache, die in einem Text Formatierungen ermöglicht und dabei Inhaltliches von Gestalterischem trennt. Die Formatierungen werden dabei in Form von Auszeichnungsmarkierungen in den Text eingearbeitet, verändern aber nicht den Inhalt, also die Information an sich.

Text mit Textmarker markiertEine solche Art der Formatierung gibt es auch außerhalb der Computerwelt, denken Sie hier beispielsweise an Textmarker. Mit einem Textmarker können Sie Text markieren, ohne dass Sie den Text selbst verändern müssen bzw. können. So wissen Sie (oder jemand anderes, der den Text liest), dass der so markierte Textteil eine bestimmte Wichtigkeit haben muss.

Diese Art der Auszeichnung käme dem Visual Markup nahe, dem visuellen Auszeichnen von Information. Doch nehmen wir an, es würde nur mit einer bestimmten Farbe Text markiert werden. Könnten Sie so beim Überfliegen des Textes Rückschlüsse auf den Inhalt bzw. die Wertigkeit des markierten Textes schließen? Nein, das ginge nur, wenn die Markierungen logisch eingesetzt würden.

So eine logische Markierung wäre zum Beispiel die Nutzung verschiedener Farben, wie im obigen Beispiel. Würde beispielsweise durchgängig ein grüner Textmarker für Wörter namens "richtig" genutzt werden, könnte man beim Überfliegen des Textes die entsprechend markierten Stellen einfach feststellen. Diese Art der logischen Markierung kommt dem Generic Markup, der generischen Markierung nahe. Elemente können so logisch markiert und zentral formatiert werden. In so einem Dokument werden beispielsweise alle Überschriften entsprechend markiert und können dann zentral und einheitlich formatiert werden.

Die Idee des Generic Markup ist verhältnismäßig alt. Der US-Amerikaner William Tunnicliffe schlug 1967 vor, die Information eines Dokuments von der Gestaltung zu trennen, also die Grundlage für das Generic Coding. Kurze Zeit später veröffentlichte Stanley Rice, Buchdesigner in New York, einen Artikel über editorial structure tags, dem Verfahren zur logischen Markierung von Information und der Angabe von typografischen Hinweisen, die dann später im Druck berücksichtigt wurden.

Auf Basis dieser beiden Ideen entwickelten Charles Goldfarb, Edward Mosher und Raymond Lorie, Angestellte bei IBM, die Generalized Markup Language (GML), die erstmals ein einheitliches Protokoll darstellte. Auf den Weg zu einem Standard wurde 1978 am American National Standard Institute (ANSI) ein Komitee gegründet, um einen einheitlichen Standard einer Textbeschreibungssprache auf Basis der GML zu finden. Dieser Standard wurde 1986 in Form der Standard Generalized Markup Language (SGML) vorgestellt und im ISO-Standard 8879 veröffentlicht.

Auszeichnungssprache versus Metasprache

Genau genommen ist SGML an sich gar keine Auszeichnungssprache, sondern eine Metasprache; sie wird genutzt, um Auszeichnungssprachen zu definieren. So eine Definition einer Auszeichnungssprachen wird als Document Type Definition (DTD) bezeichnet. Eine DTD beinhaltet alle Elemente und deren mögliche Attribute, die es in der Auszeichnungssprache geben soll.

Ergo: Für jede Auszeichnungssprache, die in SGML definiert sein will, muss eine DTD existieren. So eine DTD existiert, um im Thema etwas vorzugreifen, für jede HTML-Version, aber beispielsweise auch für XML.

HTML - Hypertext Markup Language

Die "Lingua Franca", sozusagen die Haussprache der World Wide Web Technologie, ist die Web-Sprache Hypertext Markup Language (HTML). HTML ist neben dem Übertragungsprotokoll HTTP und dem URI-Schema die dritte Säule des World Wide Web und wurde von einer Entwicklergruppe um den Informatiker Tim Berners-Lee am europäischen Kernforschungszentrum CERN in Genf im Rahmen des dortigen WWW-Projekts entwickelt.

Bei der Überlegung, wie eine Sprache aussehen könnte, die zur Gestaltung von WWW-Seiten genutzt werden kann, lag der Schwerpunkt darauf, dass diese Sprache software- und betriebssystemunabhängig und einfach anzuwenden sein sollte. Außerdem mussten mit dieser Sprache multimediale Inhalte und das Konzept der Hyperlinks in Dokumente integriert werden können.

Nach einigen internen Beratungen fiel die Wahl recht schnell auf eine Auszeichnungssprache, die in SGML definiert werden sollte. SGML ist zwar für die Definition einer möglichst unkomplexen Auszeichnungssprache nicht unbedingt die beste Wahl, ermöglicht jedoch eben die Entwicklung einer sehr einfachen, Auszeichnungssprache mit einer klaren Syntax, die im Klartext geschrieben wird.

Aufbau von HTML

Der Begriff klartextbasierte Auszeichnungssprache steht für eine Auszeichnungssprache, in der Elemente im normalen Klartext durch so genannte Tags (englisch für "Marke, Auszeichnungselement", ausgesprochen als "Tägs") markiert werden:

Das vorletzte Wort in diesem Satz ist <b>fett</b> ausgezeichnet.

Im obigen Beispiel ist das Wort "fett" mit Tags ausgezeichnet, die in der HTML-Sprache für Fettdruck stehen. Das heißt, dass in dem Klartext ein bestimmter Bereich so durch einen Tag-Container (also ein Bereich mit einem startenden und einen endenden Tag) markiert ist, dass ein Webbrowser diesen Container erkennt und den Inhalt entsprechend so anzeigt, wie er fett zu setzende Bereiche fett setzen würde. Kompliziert erklärt. Einfach erklärt sieht das obige Beispiel (siehe auch den Quelltext dieser Seite) so aus:

Das vorletzte Wort in diesem Satz ist fett ausgezeichnet.

Eine HTML-Seite hat einen grundsätzlichen Aufbau, der sie in drei Bereiche aufteilt: SGML-Deklaration, HTML-Kopf und HTML-Körper:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    Kopfdateien
</head>
<body>
    Seiteninhalt
</body>
</html>

Die SGML-Deklaration ist ein elementarer Bestandteil einer HTML-Seite und gibt an, welche Version von HTML für die entsprechende Seite genutzt wird, sie "sagt" also dem Webbrowser, welche HTML-Version er zu nutzen hat. Diese Zeile ist entsprechend der SGML-Notation formatiert und beginnt deshalb mit einem Ausrufezeichen und muss überdies, anders als HTML selbst, zwingend groß geschrieben werden. Zwar zeigen moderne Webbrowser HTML-Seiten auch ohne SGML-Deklaration an, diese HTML-Seiten sind jedoch nicht standardkonform.

Der HTML-Kopf enthält Metainformationen über die Seite selbst. Zu diesen Metainformationen gehört beispielsweise der Seitentitel, der verwendete Zeichensatz, die Sprache, Informationen für Suchmaschinen und Webbrowser.

Der HTML-Körper enthält den eigentlichen Inhalt der Seite, also die anzuzeigenden Elemente.

Diese verblüffende Einfachheit von HTML ist gleichzeitig ihr stärkster Trumpf; praktisch jeder ist so in der Lage, innerhalb von kürzester Zeit das Grundprinzip von HTML zu erlernen und mit jedem simplen Texteditor umzusetzen.

HTML-Versionen

HTML befand sich seit den ersten Niederschriften in ständiger Entwicklung, ein Umstand, der sich in verschiedene Versionen niederschlug.

HTML-VersionenDie ersten Entwicklungen von HTML wurden später inoffiziell zusammengefasst in HTML 1.0. "Später" deshalb, weil in den ersten Jahren sich niemand so recht um eine vollständige Standardisierung kümmern wollte, wo doch fast jeden Tag Diskussionen um neue Funktionen entbrannten.

Die erste, offizielle HTML-Version wurde im November 1995 im RFC 1866 als HTML 2.0 niedergeschrieben, hinkte aber bereits zu diesem Zeitpunkt den aktuellen Entwicklungen hinterher. Während beim neu gegründeten World Wide Web Consortium (W3C) vor allem Wert auf einheitliche und dokumentierte Standardisierungen gelegt wurde und in der HTML-Entwicklung vor allem der Schwerpunkt auf Elemente für die Textstruktur und für die WWW-spezifischen Funktionen wie Hyperlinks und die Einbindung von grafischen Elementen lag, preschte der damalige Browser-Hersteller Netscape mit eigenen HTML-Erweiterungen vor.

Der Netscape Navigator war zur damaligen Zeit zweifellos der Marktführer unter den Webbrowser mit einem Marktanteil von weit über 80 %. Die Entwickler des Netscape Navigator fanden sich nicht mit dem eher faden Elementsatz ab, der vom W3C offiziell empfohlen wurde, sondern ergänzten diese um einige neue Konzepte, darunter Tabellen, die berühmt-berüchtigten HTML-Frames, die Möglichkeit der Integration von multimedialen Objekten und die Plug-In-Steuerung. Diese Erweiterungen wurden landläufig bekannt als die Netscape-Erweiterungen, die auch deshalb eine besondere Berühmtheit erreichten, weil sie nur sehr dürftig dokumentiert wurden und schon gar nicht in offiziellen RFC (dies wurde erst später durch W3C-Mitglieder getan).

Der nächsten HTML-Version, an der das W3C arbeitete, erging es deshalb nicht sonderlich besser. Die Arbeiten wurden zunächst unter dem Projekt HTML 3.0 begonnen, jedoch nie mit einer fertigen Version beendet, da sich während der Entwicklung das W3C und Webbrowser-Hersteller, allen voran Netscape, nicht auf einen einheitlichen Standard einigen konnten. Während das W3C nämlich eher konservativ gegenüber neuen HTML-Elementen verhielt, wollten die Webbrowser-Hersteller weitere neue HTML-Elemente integrieren.

Das Ergebnis war HTML 3.2, das im Januar 1997 zum neuen offiziellen HTML-Standard erhoben wurde. HTML 3.2 war eine schwere Geburt, da sich beide Parteien einander nur halbherzig annäherten. Zwar wurde beispielsweise das Konzept der Tabellen in den Standard integriert, nicht aber die HTML-Frames, die zu diesem Zeitpunkt im WWW bereits ein Quasi-Standard waren. Bedenklich war darüber hinaus auch die Entwicklung, dass HTML 3.2 sich gehörig von der Idee der Auszeichnungssprache entfernt hatte und viele Elemente enthielt, die nur zur physischen Textauszeichnung gut waren (und in späteren HTML-Versionen auch nicht mehr berücksichtigt werden).

Eine neue HTML-Version ließ deshalb nicht lange auf sich warten und wurde vom W3C im Februar 1998 mit HTML 4.0 vorgestellt (das noch mehrmals geringfügig modifiziert wurde und später als HTML 4.01 endgültig veröffentlicht wurde). Tatsächlich war HTML 4.01 wieder ein Schritt in die richtige Richtung: Mit der Einbindung der Idee der Formatvorlagen (Cascading Style Sheets) und Befehlen zur Einbindung von Script-Sprachen wurden hauptsächlich wieder konzeptionelle und "auszeichnende" HTML-Elemente integriert.

Um möglichst alle Wünsche abzudecken, ging das W3C bei HTML 4.01 einen anderen Schritt; es wurde nicht eine DTD zu HTML 4.01 veröffentlicht, sondern gleich drei: "HTML 4.01 Strict", "HTML 4.01 Transitional", "HTML 4.01 Frameset". Während die "Strict"-Variante die empfohlene Variante ist, ist die "Transitional"-Variante ein Kompromiss, in dem auch HTML-Elemente definiert werden, die in HTML 4.01 offiziell "missbilligt" werden, also eigentlich nicht mehr verwendet werden sollten. Augenscheinlich war also die Transitional-Variante ein Entgegenkommen der "Theoretiker" gegenüber den "Praktikern". Die Frameset-Variante wiederum ist speziell für HTML-Seiten ausgerichtet, die ein Frameset definieren.

Werden unterschiedliche HTML-Versionen überhaupt benötigt?

Wenn Sie sich gelegentlich einmal die Quelltexte von Webseiten angeschaut haben, werden Sie sicherlich einwenden wollen, dass es genügend HTML-Seiten gibt, die entweder gar keine oder eine falsche SGML-Deklaration aufweisen. Oft findet man auch einfach irgendwelche SGML-Deklarationen und teilweise dann auch noch HTML-Elemente, die in der deklarierten HTML-Version gar nicht vorkommen.

Zugegebenerweise: Hier prallen Welten aufeinander. Einerseits die Welt der "Theoretiker", die das Prinzip der Textauszeichnung hochhalten und argumentieren, dass korrekte Textauszeichnung nur funktionieren kann, wenn sie absolut korrekt vorgenommen wird und Standards beachtet werden. Andererseits die Welt der "Praktiker", die HTML nutzen und sich darauf verlassen, dass moderne Webbrowser fehlertolerante Mechanismen besitzen und auch falsch deklarierte HTML-Seiten weitgehend so anzeigen, wie der Programmierer es beabsichtigt.

Auch wenn Fehlertoleranz sicherlich eine gute Sache ist, kann sie doch kein Freibrief sein. Die klassische Textauszeichnung ist traditionell ein Handwerk, bei der es korrekt zugehen muss. Immerhin geht es um Texte, die, wenn sie einmal erfasst und gedruckt sind, sich nicht mehr ändern lassen. Ein fertig gedrucktes Buch kann man nicht eben so mal schnell korrigieren.

Das World Wide Web ist zwar in der Hinsicht unkritischer, da sich hier die Information auch nach der Veröffentlichung noch ändern lässt, dennoch muss einer Information auch die Information mitgegeben werden, wie sie eigentlich ausgezeichnet wurde, was beispielsweise die Überschrift ist, was eine Fußnote, was ein zitierter Absatz et cetera. Und damit diese Auszeichnungen auch in Jahren noch lesbar bleiben können, ist es wichtig, dass zum einen genau definiert ist, mit welcher Auszeichnungssprache die Auszeichnungen vorgenommen sind und dass diese Auszeichnungen auch korrekt angewendet werden.

Die Zukunft von HTML

Die Zukunft von HTML ist in Wirklichkeit bereits fast schon ein alter Hut und nennt sich XHTML. Das "X" deutet hier schon an, was es sich mit XHTML auf sich hat, denn XHTML ist nicht mehr wie HTML in SGML definiert, sondern in einer Metasprache namens XML.

Da das Thema XML (in dem auch XHTML eingebettet ist) den thematischen Rahmen an dieser Stelle sprengen würde, ist es in einem eigenen Artikel in dieser Rubrik ausgegliedert: XML - Extensible Markup Language

Weiterführende Literatur

Buchempfehlungen zum Thema World Wide Web

In Partnerschaft mit Amazon.de

Weiterführende Links

SelfHTML - HTML-Dateien selbst erstellen
http://selfhtml.teamone.de/

WERBUNG
Zum Beginn dieser Seite