Kurse für Kenner

XML-Kurs: SGML und XML
SGML

Geschichte
Im Jahre 1969 entwickelte Charles Goldfarb zusammen mit Edward Mosher und Raymond Lorie die allgemeine Auszeichnungssprache GML (General Markup Langugae) im Auftrag von IBM. Sie ist der Grundstein der heutigen Metasprache Standard Generalized Markup Language (SGML). Das Ziel war eine einfache Möglichkeit zur Formatierung, Bearbeitung sowie ein automatisierter Austausch von Texten zwischen verschiedenen Programmen.

Goldfarb setzte 1978 seine Arbeit am ANSI (American National Standards Institute) fort. Das heutige SGML wurde von der ISO (International Standardization Organisation) unter dem Namen ISO 8879 Standard Generalized Markup Language am 15. Oktober 1986 veröffentlicht. Die Standardisierung war ein wesentliches Ziel von SGML im Vergleich zum Vorgänger GML. Während GML nur von wenigen Großunternehmen, allen voran natürlich IBM, eingesetzt wurde, sollte SGML endlich eine breite Akzeptanz finden. Nur eine internationale Standardisierung ermöglicht einen reibungslosen und sinnvollen Austausch von Dokumenten zwischen verschiedenen Programmen, die möglicherweise auf unterschiedlichen Plattformen laufen.

Aufbau und Darstellung
SGML ist eine allgemeine Metasprache, mit der verschiedene Auszeichnungssprachen beschrieben werden können. Als prominenteste Anwendung ist hier HTML (HyperText Markup Language), die Auszeichnungssprache für das World Wide Web zu nennen.

Dokumententypen können mittels einer DTD (Document Type Definition) beschrieben und anhand dieser auch überprüft werden, was Validierung genannt wird. Diese Überprüfung ist wichtig, um sicherstellen zu können, daß ein Dokument korrekt nach einer Sprache verfasst wurde. Nur wenn die Fehlerfreiheit des Dokuments feststeht, kann eine sinnvolle Weiterverarbeitung erfolgen. Die DTD enthält Informationen über erlaubte Elemente, deren Attribute sowie deren Anordnung.

DTD-Beispiel Die nebenstehende Abbildung zeigt einen Auszug aus einer DTD, welches ein Dokument wie in Abbildung 5 beschreibt. Definiert wird ein Wurzel-Element, welches wiederum zwei Elemente beinhalten muß. Diese können beliebigen Text enthalten, wobei das zweite ein optionales Attribut besitzt. Hierbei kann eine DTD ganze Klassen von Dokumenten beschreiben, wie im Beispiel von HTML. Jedes Dokument enthält einen Verweis auf die verwendete DTD beziehungsweise dessen öffentlichen Bezeichner.

Um die anfangs genannte Trennung zwischen Daten und tatsächlicher Präsentation zu erreichen wird in einem Style Sheet das Layout der Daten definiert. Als Sprache wird im Falle von SGML DSSSL (Document Style Semantics and Specification Language) verwendet, welches von der ISO 1996 standardisiert wurde. Erst anhand einer solchen Layoutdefinition kann ein SGML-Dokument für Menschen sinnvoll dargestellt werden. Das Ausgabemedium ist hierbei beliebig und vom eigentlichen Dokument und dessen Daten unabhängig.

Beispiel
Kommen wir wieder zurück auf das anfängliche Beispiel. Der Verlag entwirft mittels SGML eine eigene Dokumentendefinition für die Artikel. Anhand dieser DTD ist nun festgelegt, wie die Redakteure beispielsweise ihre Überschriften zu markieren haben.

Zusätzlich wurden drei Style Sheets entworfen: Für die Formatierung auf Papier, im Netz und für die CD-ROM. Ein Programm kann nun ein Dokument entgegennehmen, anhand der DTD verifizieren und mit Hilfe der Informationen aus den Style Sheets die entsprechenden Ausgaben erstellen.

Unser Verlag hätte mit SGML also das Mittel der Wahl gefunden, um eine Struktur, wie in der Abbildung zu Beginn dieser Erläueterung gewünscht, zu erzielen.

Probleme
Mit SGML existiert zwar eine sehr mächtige, aber auch ebenso komplexe Sprache um Auszeichnungssprachen zu definieren. Einerseits ist es somit sehr aufwendig Software zu entwerfen, die SGML bearbeiten kann und andererseits werden in der Praxis selten alle Möglichkeiten von SGML ausgeschöpft.

Zudem gibt es Probleme bei der Nutzung von Sonderzeichen innerhalb von SGML, da internationale Zeichensätze wie Unicode nicht unterstützt werden. SGML wird daher oft nur in speziellen Anwendungen großer Industrien, wie im Flugzeugbau wirklich genutzt.


XML

Geschichte
Das W3-Consoritum (World Wide Web Consortium) entwickelte aus oben genannten Gründen eine einfache und erweiterbare Metasprache, die eine Untermenge von SGML darstellte. XML, der Extensible Markup Language wurde im Februar 1998 herausgegeben und fand schnell Akzeptanz sowie eine hohe Verbreitung. In den Medien wurde es gar als Revolution der Datenverarbeitung gefeiert. Heute spielt XML nicht nur im Netz eine wichtige Rolle; auch modere Office- und Grafikprogramme speichern ihre Daten im XML-Format ab.

Es wurde eine Meta-Sprache geschaffen, mit der auf einfache Weise Sprachen für eine plattformunabhängige Datenverarbeitung definiert werden können.

Beschreibung
Als Untermenge von SGML werden mittels XML Auszeichnungssprachen definiert. Dies kann entweder mit einer DTD wie bei SGML geschehen oder mit XML Schema. XML Schemata sind selbst XML-Dokumente und bieten durch die Verwendung regulärer Ausdrücke ein mächtigeres Mittel zur Sprachbeschreibung. Ein weiterer Vorteil von XML Schema ist, daß keine zusätzliche Sprache wie bei DTD benötigt wird.

Darstellung und Transformation

Beispiel
XML und die Weiterverarbeitung Die folgende Abbildung zeigt beispielhaft ein XML-Dokument. Der grundlegende Aufbau von XML-Dokumenten ist hier ersichtlich. Zunächst wird im Dateikopf XML-Version und Kodierung angegeben. Hiernach würde der Dokumententyp durch Verweis auf eine DTD oder XML Schema angegeben werden. Im Beispiel verzichten wir darauf.

XML und die Weiterverarbeitung

Ähnlich wie bei SGML würde man hier eine DTD definieren, die zum Beispiel beschreibt, daß es ein autor-Element gibt, welches wiederum Elemente für Name und Vorname enthält. Ein Programm kann nun anhand eines Style Sheets die Ausgabe erzeugen, aber auch die logische Dokumentenstruktur nutzen um weitere Informationen zu erhalten. Das Programm, daß beispielsweise mehrere solcher Dokumente erhält könnte aufgrund der Titel und Überschriften ein Inhaltsverzeichnis erzeugen oder auch einfach ermitteln, welcher Redakteur welche und wieviele Artikel verfasst hat.



Finden Sie diese Webseite gut? Dann empfehlen Sie uns doch einem Freund oder Bekannten.

XML-Kurs:
Übersicht
Auszeichnungssprachen
SGML / XML
Auszeichnungssprachen und das WWW

Links: