Weitere aktuelle Java-Titel finden Sie bei dpunkt.
 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index


20.4.1

Die Entwicklung von SGML zu XML



Dieser Abschnitt beschreibt ausgehend von der Konzeption der Standard Generalized Markup Language (SGML), dem »Urvater« von XML, was die Hintergründe für die Entwicklung von XML waren.

Standard Generalized Markup Language (SGML)

Bei SGML handelt es sich um eine Metasprache zur Definition von Dokumentensprachen. Ihre Wurzeln liegen mittlerweile dreißig Jahre zurück. Bereits 1969 entwickelte Charles Goldfarb, der den SGML-Standard bis heute wesentlich geprägt hat, in den IBM-Labors in Almaden den ersten Vorläufer von SGML. Die Spezifikation von SGML wurde im Oktober 1986 als ISO-Standard 8879 veröffentlicht (mit einer Überarbeitung im Januar 1990).

Heute gilt SGML als ein sehr flexibles und leistungsfähiges Mittel, um textuelle Informationen strukturiert zu kodieren. Die Praxistauglichkeit hat sich in zahlreichen und z. T. sehr großen Projekten erwiesen.

Das Grundprinzip von SGML hat Goldfarb mit den Worten »all form and no meaning« beschrieben. Damit meint er, dass ein SGML-Dokument zunächst nichts als eine reine Struktur ist, die Textdaten enthält. Eine Semantik erhalten diese Strukturen erst in den Applikationen bei der Weiterverarbeitung des Dokuments (siehe hierzu auch Abschnitt 20.8). Insbesondere gibt es keine Vermischung der Strukturen des Dokuments mit ihrer Präsentation (Layout).

Die Definition einer Dokumentenstruktur erfolgt in der Document Type Definition (DTD). In der DTD werden die benötigten Strukturbestandteile (z. B. Kapitel, Abschnitt, Unterabschnitt, Absatz) des zu modellierenden Dokumententyps (z. B. Buch) und deren Schachtelung definiert (z. B. ein Kapitel ist nur als Bestandteil eines Buchs erlaubt, nicht aber als Teil eines Absatzes). Insgesamt entsteht durch die DTD eine Grammatik für eine anwenderdefinierte Dokumentensprache, weswegen SGML (und XML) auch als Metasprachen bezeichnet werden.

Heute gibt es eine Reihe frei verfügbarer vorgefertigter DTDs, die eine recht hohe Verbreitung erfahren haben. Eine davon ist die Docbook-DTD zur Strukturierung und Auszeichnung von technischer Dokumentation und Fachbüchern. Die Thematik der DTDs wird in den Abschnitten 20.5 und 20.8 noch einmal aufgegriffen. Zusammenfassend haben SGML-Dokumente zwei wesentliche Eigenschaften:

Hypertext Markup Language (HTML)

Auch der Hypertext Markup Language (HTML) liegt eine fest definierte Grammatik in Form einer SGML-DTD zugrunde. Dies ist vielen HTML-Benutzern nicht bekannt und liegt wohl daran, dass die heutigen Browser bezüglich der DTD-Konformität sehr »fehlertolerant« sind, um die Akzeptanz von HTML zu erhöhen. Was bei Programmiersprachen selbstverständlich ist - die Überprüfung der grammatikalischen Korrektheit eines Programms mit einem Compiler - ist bei HTML auch möglich (nur dass hier kein Compiler, sondern ein SGML-Parser zum Einsatz kommt). Sie wird aber allenfalls in professionellen Kreisen oder von guten HTML-Editoren durchgeführt. Nicht streng DTD-konforme Dokumente haben den Nachteil, dass die Browser mit eingebauten Heuristiken »schätzen« müssen, was der Benutzer haben will. Weil die verschiedenen Browser hierbei unterschiedlich vorgehen, kann es passieren, dass ein Dokument unterschiedlich und möglicherweise auch mit unerwünschten Effekten angezeigt wird. Umgekehrt kann man aber davon ausgehen, dass DTD-konforme HTML-Dokumente mit hoher Wahrscheinlichkeit in den meisten Browsern akzeptabel dargestellt werden.

Die HTML-DTD wird vom W3-Konsortium gepflegt und wurde bis zur HTML4 in SGML erstellt. Diese DTD ist unter der folgenden Adresse zu finden: http://www.w3.org/TR/html401/sgml/dtd.html Seit 1998 wurde die HTML-DTD in Form von modularisierten XML-DTDs neu erstellt, so dass HTML heute durch einen Satz einzelner DTDs beschrieben wird. Dieser Satz von XML-DTDs wird auch XHTML genannt. Eine einzelne DTD von XHTML beschreibt einen bestimmten Bestandteil von XHTML, beispielsweise für Tabellen.

Die Anfänge von HTML liegen nicht so weit zurück wie die von SGML, mittlerweile aber auch zehn Jahre. Tim Berners-Lee entwickelte HTML ursprünglich im Rahmen eines Forschungsprojekts am Kernforschungszentrum CERN in Genf. 1993 gilt als das Jahr des Durchbruchs für HTML und das World Wide Web, da von dort an die Zahl der verfügbaren Web-Server rapide zunahm. Erst nach einer vergleichsweise langen Zeit von zwei Jahren wurde 1995 die HTML-Version 2.0 freigegeben.

Entsprechend der Philosophie von SGML hatten die Elemente der ersten HTML-Versionen überwiegend strukturelle Bedeutung. Man spricht hier auch von generischem Markup. Generisches Markup gibt lediglich die Strukturen des Dokuments vor (z. B. Absätze, Aufzählungen, Tabellen) im Gegensatz zum visuellen Markup, das gezielte Vorgaben über die Darstellung macht (z. B. »für diesen Absatz die Schrift X in fett und 12pt«).

Insbesondere durch die kommerzielle Nutzung des World Wide Web entstand das Bedürfnis, entsprechend den Möglichkeiten bei der Gestaltung gedruckten Werbematerials stärkeren Einfluss auf die tatsächliche Bildschirmdarstellung zu nehmen (z. B. für Unternehmenspräsentationen, Umsetzung von Corporate Design in Webseiten). Der Begriff des Web-Designs wurde geprägt. Da unter anderem Firmen wie Microsoft und Netscape im W3C vertreten sind, fanden diese Forderungen auch Eingang in die offizielle HTML-DTD vom W3C, insbesondere seit HTML3.

Durch die zunehmende Kommerzialisierung des Internets gab es also in Bezug auf die verfügbaren Elemente von HTML zwei miteinander unvereinbare, konträre Standpunkte: einerseits die Web-Designer mit der Forderung, alle Bestandteile der Seite pixelgenau platzieren zu können, andererseits die Puristen, die zur Wahrung optimaler »Portabilität« zwischen Plattformen und Browsern so wenig visuelle Auszeichung wie möglich wollten.

Da sich die Entwicklung und Verabschiedung neuer HTML-Versionen nicht zuletzt aufgrund dieses Konflikts in die Länge zog, integrierten Netscape und Microsoft proprietäre Erweiterungen (meist »Verbesserungen« genannt) zu HTML mit starkem Anteil an visuellem Markup in ihre Browser. Ein Beispiel für eine solche Erweiterung ist das <MARQUEE>-Tag im Internet Explorer, mit dem eine Laufschrift dargestellt werden kann. Ein weiteres Motiv hierfür war der Gewinn von Anteilen im Browser-Markt, da der optische Effekt, der durch die Verwendung einer proprietären Erweiterung erreicht werden soll, nur dann zur Geltung kommt, wenn der Betrachter auch den entsprechenden Browser benutzt. Bald waren auf vielen Webseiten Logos mit der Aufschrift »Best viewed with ...« zu sehen, um den Betrachter dazu zu bewegen, den genannten Browser zu benutzen.

Die verschiedenen Erweiterungen und die zahlreichen subtilen, aber folgenschweren Unterschiede in der Anzeige visueller Elemente hatte zur Folge, dass sich Web-Designer bis heute mit Inkompatibilitäten der beiden »großen« Browser herumschlagen müssen.

Heute ist der Anteil layoutbezogener Tags in HTML recht hoch, und die wenigen reinen Strukturelemente, die es gibt, haben ein ziemlich hohes Abstraktionsniveau (z. B. »unordered list«). Da die HTML-DTD fest steht und vor allem auch fest im Browser implementiert ist, können keine benutzerdefinierten Erweiterungen für HTML festgelegt werden. Komplexere anwendungsspezifische Strukturen können in HTML daher nur über Layout-Konventionen ausgedrückt werden, die einem Strukturelement eine ganz bestimmte Darstellung zuordnen.

So lang es nur um die Darstellung im Browser geht, mag dieser Nachteil noch tragbar sein, äußerst problematisch wird dies aber, wenn HTML als Datenaustausch-/Import-Format eingesetzt werden soll, da die umgekehrte Zuordnung von HTML-Tag-Kombinationen zu Strukturen sehr problematisch ist. Schließlich kann nicht definitiv sichergestellt werden, dass eine bestimmte Tag-Kombination auch in einem ganz anderen Kontext eingesetzt wird, als in der zugeordneten Struktur. Absolut konsistenter Datenimport ist daher auf der Grundlage von HTML kaum möglich.

Das folgende Beispiel soll dieses Problem anhand einer Bibliographie verdeutlichen. Eine Liste von URLs in einer Bibliographie könnte in einer HTML-Seite etwa folgendermaßen ausgezeichnet werden:
  <HTML>
    <HEAD>
      <TITLE>Bibliographie</TITLE>
    </HEAD>
    <BODY BGCOLOR=white>
      <H2>Bibliographie</H2>
      <UL>
        <LI>Titel: <I>XML Standard Version 1.0</I><BR>
            Autor: <I>W3 Konsortium</I><BR>
            Jahr: <I>1998</I><BR>
            URL: <I>http://www.w3.org/TR/REC-xml</I>
        <LI>Titel: <I>XML, Java and the Future of the Web</I><BR>
            Autor: <I>Jon Bosak</I><BR>
            Jahr: <I>1997</I><BR>
            URL: <I>http://www.xml.com/xml/pub/w3j/s3.bosak.html</I>
      </UL>
    </BODY>
  </HTML>
Im Browser sieht dieses HTML-Dokument so aus:

Abbildung 20.3: Ein einfaches HTML-Dokument
Abbildung 20.3

Obwohl diese Seite recht trivial aufgebaut ist, kann man anhand ihres Quelltexts bereits die größten Nachteile von HTML aufzeigen: Die Auszeichnungselemente <I> für »italics« (kursiv) und <BR> für »break« (Zeilenumbruch) machen hier lediglich Vorgaben zur Darstellung des Datensatzes im Browser. Es ist klar zu erkennen, dass es keine feste Zuordnung von Auszeichnungselementen zu Strukturelementen gibt. So wird das Element <I> zur Einleitung aller vier Bestandteile des Datensatzes (Titel, Autor, Jahr und URL) verwendet, obwohl sie eine völlig unterschiedliche Semantik haben.

In XML dagegen könnte die Liste wie folgt ausgezeichnet werden:
  <BIBLIOGRAPHY>
    <BIBURL>
      <TITLE>XML Standard Version 1.0</BIBTITLE>
      <AUTHOR>W3 Konsortium</AUTHOR>
      <YEAR>1998</YEAR>
      <URL>http://www.w3.org/TR/REC-xml</URL>
    </BIBURL>
    <BIBURL>
      <TITLE>XML, Java and the Future of the Web</BIBTITLE>
      <AUTHOR>Jon Bosak</AUTHOR>
      <YEAR>1997</YEAR>
      <URL>http://www.xml.com/xml/pub/w3j/s3.bosak.html</URL>
    </BIBURL>
  </BIBLIOGRAPHY>
Hier spiegelt sich die Struktur der Daten viel besser im Markup wieder. Layout-Information ist im Markup nicht enthalten. Die Struktur der Daten und die Layout-Information zu deren Darstellung sind also strikt entkoppelt.


 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index

Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.