Zukunft XML

09.08.2000 von Holger Reibold
Die eXtensible Markup Language, kurz XML, schreitet als Datenaustauschformat der Zukunft voran. Die erweiterbare Auszeichnungssprache ermöglicht, im Gegensatz zu HTML, die Trennung von Inhalt, Struktur und Erscheinungsbild von Internetseiten.

XML und der eigene Kontostand haben bei näherer Betrachtung einiges miteinander gemeinsam. Auf dem Kontoauszug erscheint unter der Überschrift "Kontostand" eine positiv oder negativ relevante Zahl. Menschen können in der Regel klar den Inhalt (die entsprechende Zahl) von der strukturellen Unterteilung des Kontoauszugs trennen (die Überschrift "Kontostand"). Das Erscheinungsbild des Kontoauszuges verdeutlicht oft in besonders fett gedruckter Schrift ein Plus oder Minus vor der Zahl.

Computer hingegen besitzen diese "Auffassungsgabe" nicht. Ihnen muss explizit vorgegeben werden, um welche Inhalte es sich handelt und wie sie verarbeitet werden. Genau das ist eine der zentralen Aufgaben von XML: die Beschreibung von Informationen. Man bezeichnet XML daher auch als Meta-Sprache, die anwendungsbezogen die inhaltliche Struktur und Daten beliebiger Natur beschreibt.

Flexibler Datenaustausch

XML liefert flexible Mechanismen für den Datenaustausch und die Aufbereitung von Inhalten für die unterschiedlichsten Zielmedien. Realisiert wird dies über die Trennung von Inhalt, Struktur und Erscheinungsbild. Klassisches Beispiel: Ein zu druckender Artikel wird in einem DTP-Programm gesetzt, während derselbe Artikel nochmals in HTML fürs Web neu aufbereitet werden muss. XML wird auf Dauer dieses grundlegende Problem beseitigen. Egal, ob für den Druck, fürs Internet oder für andere Anwendungen - idealerweise greift man in Zukunft auf einmal in XML aufbereitete Inhalte zurück.

Kein Wunder also, dass die Einführung von XML euphorisch gefeiert wurde. Neben der Vereinfachung des Datenaustauschs unterschiedlichster Formate soll XML zudem für mehr Performance sorgen.

Inzwischen gibt es eine Vielzahl an XML-basierten Protokollen und Formaten. Die Bandbreite reicht von Standards für die Zusammenarbeit an Web-Dokumenten oder den Datenabgleich über das Internet bis hin zur Kommunikation von Softwareobjekten über das Netz. Selbst Messaging-Funktionen sind inzwischen auf XML-Basis realisierbar. Einer der wichtigste Anwendungsbereiche ist schon heute das Contentmanagement.

SGML - HTML - XML

XML ist ein SGML-Ableger (Standard Generalized Markup Language), der speziell auf die Anforderungen der Webtechnologie zugeschnitten wurde. SGML stellt eine Architektur zur Verfügung, mit der sich Dokumente für beliebige Medien aufbereiten lassen. Die komplexe Syntax von SGML schreckt jedoch viele Programmierer ab. Und während sich SGML oft als zu vielschichtig zeigt, erweist sich HTML als zu einfach. So war es denn nur folgerichtig, dass mit XML eine abgespeckte SGML-Version entwickelt wurde. Zwischen HTML und XML gibt es mehrere fundamentale Unterschiede.

HTML

HTML ist eine SGML-Anwendung. In seiner jetzigen Form ist es ein starres Gebilde, das fixe Auszeichnungsmöglichkeiten wie Überschriften, fette Schrift und ähnliches kennt. Eine der zentralen Einschränkungen ist die an HTML gebundene Dokumententyp-Definition (Document Type Definition, DTD ).

Mit der Einführung von XHTML versucht man inzwischen, HTML in eine erweiterbare Form zu bringen. Die Akzeptanz ist bislang mäßig. Auch weil niemand so richtig nachvollziehen kann, warum man sich heute mit der "Zwischenlösung" XHTML befassen soll, wenn doch absehbar ist, dass XML die Zukunft gehört.

XML

XML macht sich die Vorzüge von SGML zu Nutze und verzichtet auf die Nachteile von HTML. XML ist eine Subset, also eine Teilmenge von SGML, und dabei so konzipiert, dass es sich prinzipiell beliebig erweitern lässt. Es führt das Konzept des strukturierten Mark-ups fort, verzichtet jedoch auf unnötigen Schnickschnack. Komplexe und selten verwendete Eigenschaften wurden einfach über Bord geworfen. XML besitzt ebenso wie SGML keine festgelegte DTD, sondern stellt, im Gegensatz zu HTML, lediglich die Vorschriften bereit. Während also HTML Methoden für die Darstellung von Dokumenten definiert, liefert XML Methoden für das Arbeiten mit Daten und Komponenten. Einer der interessantesten Vorzüge von XML: Es lassen sich eigene Sprachelemente erzeugen, die beispielsweise Produktkategorien, Preise und Lieferzeiten berücksichtigen.

Neue Begriffswelt

Neue Technologien ziehen in der Regel neue Begriffe nach sich. Die wichtigsten Begriffe bei XML sind Wohlgeformtheit, Instanz, DTD, Parser und Namespaces.

XML-Dokumente lassen sich mit zwei Eigenschaften beschreiben: wohl geformt oder gültig. Unter Wohlgeformtheit versteht man, dass sich XML-Dokumente exakt an die Regeln des Standards halten müssen. Das gilt beispielsweise für die korrekte Schachtelung: Wo ein Anfangs-Tag ist, muss auch immer ein End-Tag sein. HTML ist im Vergleich zu XML dabei weit weniger restriktiv.

In diesem Zusammenhang taucht immer wieder der Begriff Gültigkeit auf. Ein wohl geformtes XML-Dokument wird als gültig bezeichnet, wenn es den Regeln einer DTD folgt. Ein Dokument kann also wohl geformt und nicht gültig sein, aber niemals gültig und nicht wohl geformt.

DTD

Fast schon abschreckende Wirkung hat der Begriff Document Type Definition, kurz DTD. DTDs sind formale Spezifikationen aller in einem Dokumenttyp erlaubten Strukturen. Man spricht auch von einer formalen Grammatik, in der die Bezeichnungen der in Dokumenteninstanzen zulässigen Tags und deren Verschachtelung definiert sind. Unter Instanzen wiederum versteht man Dokumente, deren Inhalte mit den Tags einer bestimmten DTD ausgezeichnet sind.

Die in der DTD definierten Tags bestehen aus den Klammern Start- und End-Tag. Aus dieser Schachtelung von Elementen ergibt sich eine Baumstruktur, dessen innere Knoten die Struktur ausdrücken, die äußeren den eigentlichen Inhalt und Elemente enthalten. Unabhängig von der Baumstruktur eines Dokuments kann es in beliebig viele physikalischen Einheiten zerlegt werden, die so genannten Entitäten.

Namespaces und Parser

Ein weiterer Begriff taucht in XML immer wieder auf: Namespaces (Namensräume). In XML-Dokumenten lassen sich mehrere externe DTDs einbinden. Namensräume definieren für jede Anwendung einen eigenen Gültigkeitsbereich von Bezeichnern. Bezeichner sind bei XML entsprechende Element- und Attributnamen. Nur innerhalb eines Bereiches müssen die Bezeichner eindeutig sein.

Wie HTML-Dokumente müssen auch XML-Dokumente verarbeitet werden. Das ist Aufgabe der so genannten Parser. Parser sind Programme, die syntaktische Strukturen erkennen und nach definierten Regeln weiterverarbeiten. Im Zusammenhang mit XML unterscheidet man zwischen einfachen und validierenden Parsern. Ein einfacher Parser überprüft lediglich die korrekte XML-Syntax und verarbeitet die Strukturen, validierende Parser prüfen Dokumente immer in Bezug auf eine DTD.

Ein einfacher Parser muss die Wohlgeformtheit überprüfen, ein validierender die Gültigkeit. Ein Parser überführt XML-Dokumente entweder in eine andere Struktur oder aber bereitet sie für den Anwender optisch auf. Bekannt ist zum Beispiel der XML-Parser von IBM. Eine Übersicht findet man bei XML-Software .

Grundstruktur von XML-Dokumenten

Entsprechend der Vorgaben der XML-Spezifiaktion lässt sich leicht ein wohl geformtes Dokument erstellen: In der Praxis genügen wenige Angaben, um ein funktionsfähiges XML-Dokument zu erstellen. Das folgende Beispiel zeigt auf, wie sich Inhalte mittels frei definierbarer Tags in XML kennzeichnen lassen. Bei der Einführung in eine (Programmier-)Sprache übernimmt man dabei in der Regel das einfachste aller Beispiele, das sich auf die Ausgabe von "Hallo Welt!" beschränkt.

<?xml version="1.0" standalone="yes"?>
<GRUSS>
Hallo Welt!
</GRUSS>

In der ersten Zeile befindet sich die XML-Deklaration. Es handelt sich um eine Verarbeitungsanweisung (processing instruction), die die Versionsnummer der zu Grunde liegenden Version und das Stand-alone-Attribut verwendet. Im vorliegenden Beispiel wird über den Wert yes festgelegt, dass keine weiteren Daten für die Verarbeitung des Dokuments erforderlich sind. Es handelt sich somit um ein eigenständiges Dokument.

Als Ergebnis erhält man die simple Ausgabe von "Hallo Welt!" über das eingeführte Tag GRUSS. Zwingend ist der Einschluss zwischen Anfangs- und End-Tag.

XSL: Formatierung und Transformation

Die schnöde baumförmige Darstellung von XML-Dokumenten ist für den Endanwender kaum zu gebrauchen. Vielmehr muss Inhalten ein passables Layout verpasst werden. Für diese Anforderung ist XML gerüstet: Über Stylesheets lässt sich die Darstellung von XML-Dokumenten definieren. Diese Angaben bestimmen das Aussehen und das Verhalten der XML-Elemente. An dieser Stelle wird einmal mehr der Unterschied zu HTML deutlich: Bei HTML sind die Tag-Elemente mit grundlegenden Style-Informationen bereits im Browser implementiert, XML-Dokumente hingegen besitzen keinerlei Informationen über ihre Darstellung.

Prinzipiell kann der Autor Cascading Style Sheets (CSS) oder die Extensible Stylesheet Language (XSL) für das Layout verwenden. CSS lassen sich einfach mit folgender Anweisung einem XML-Dokument zuweisen:

<?xml-stylesheet href="Beispiel.css" type="text/css"?>

Die Hauptrolle spielt allerdings XSL. XSL wiederum deckt nicht nur die Formatierung von XML-Dokumenten ab, sondern kann insbesondere für die Transformation von XML nach HTML verwendet werden. XSL orientiert sich dabei an der XML-Syntax. Ein einfaches Beispiel für ein XSL-Stylesheet:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl>

(-- hier folgen die XSL-Templates --)

</xsl:stylesheet>

XML und CSS

Das Beispiel "Hallo Welt" lässt sich mittels eines in XML eingebundenen CSS in eine "lesbare" Form bringen. Das dazu erstellte CSS-Dokument gruss.css definiert den Gruss-Tag:

GRUSS {color: red; font-size: 36pt; font-weight: bold;}

Im XML-Dokument muss noch die Referenzierung auf das Stylesheet erfolgen. Der Quellcode sieht dann folgendermaßen aus:

<?xml version="1.0" standalone="yes" ?>
<?xml-stylesheet type="text/css" href="gruss.css" ?>
<GRUSS>
Hallo Welt!
</GRUSS>

Linking

Natürlich dürfen beim Hypermedium der nächsten Generation Verknüpfungsmöglichkeiten zwischen XML-Dokumenten nicht fehlen. Für beides ist in XML gesorgt. Im Unterschied zu HTML ist man allerdings weit flexibler. SGML bietet diese Funktionalität übrigens nicht. Die XML Working Group hat Verknüpfungen in zwei Spezifikationen definiert: XML Linking Language, kurz XLink, und XML Pointer Language, kurz XPointer.

Grundsätzlich unterscheidet man bei Links zwischen einfachen, erweiterten und so genannten XPointern. XPointer sind Links, die einzelne Elemente eines XML-Dokuments ansprechen. Einfache Links sind den Verknüpfungen, wie man sie von HTML kennt, sehr ähnlich. Sie verweisen von einem Element auf ein zweites. Die Link-Syntax sieht wie folgt aus:

<a xml : link="simple" href="https://www.tecchannel.de">tecChannel</a>.

Erweiterte Links

Erweiterte Links bieten eine interessante Funktionalität. Sie können auf mehr als eine Ressource verweisen. Außerdem besteht die Möglichkeit, Links von und zu Daten zu setzen, die von sich aus keine Verknüpfung unterstützen. Die gelinkte Ressource wird über einen Locator spezifiziert. Dieser Locator besitzt das xml:link-Attribut "locator". Ein Beispiel:

<!-Erweitertes Linking -->
<a xml:link="extended">
<loc xml:link="locator" href="https://www.tecchannel.de"/>
<loc xml:link="locator" href="http://www.idg.com"/>
<loc xml:link="locator" href="http://www.reibold.de/>
</a>

Wie Xlink in der Praxis realisiert wird, ist in der Spezifikation nicht definiert. Denkbar sind beispielsweise Auswahlmenüs. Ein aussagekräftiges Beispiel findet man bei Simon St. Laurent .

Die Imagemap stellt verschiedene Verweise abhängig von der Mauszeigerposition zur Verfügung. Das Beispiel ist als JavaApplet realisiert.

XML-Anwendungen

XML ist eine Meta-Sprache, die insbesondere der Entwicklung von spezifischen Markierungssprachen dient. Inzwischen gibt es an die fünfzig XML-Ableger. Man bezeichnet sie auch als XML-Anwendungen - nicht mit XML-Tools zu verwechseln, die beispielsweise der Entwicklung von XML-Dokumenten dienen. Nachfolgend finden Sie eine Zusammenstellung wichtiger XML-Anwendungen. Einen umfassenden Überblick über die vielfältigen XML-Ableger und Initiativen bietet die XML-Site von Robin Cover .

XML-Anwendungen

CDF

Channel Definition Format: eines der ersten XML-basierten Formate, das von Microsoft für das "Webcasting" entwickelt wurde.

cXML

commerce XML: viel Versprechender Ansatz für die Standardisierung von Finanztransaktionen. Insbesondere der Business-to-Business-Markt soll von dieser Technik profitieren.

IMPP

Instant Messaging and Presence Protocol: Format für Instant Messaging. Standardisiert den einfachen Nachrichtenaustausch.

SOAP

Simple Object Access Protocol: ein von Microsoft, DevelopMentor und Userland eingeführtes Format, das die Kommunikation von Anwendungen über internetbasierte Netze erlaubt.

SWAP

Simple Workflow Access Protocol: SWAP definiert eine einheitliche Schnittstelle, über die Workflow-Systeme kommunizieren.

SMIL

Synchronized Multimedia Integration Language: Markierungssprache, die für die Entwicklung synchronisierter Multimedia-Inhalte verwendet wird.

SVG

Scalable Vector Graphics: SVG dient der Entwicklung von zweidimensionalen Grafikobjekten, die in XML beschrieben werden.

SyncML

Synchronization Markup Language: Mit SyncML lässt sich der Abgleich von Daten zwischen unterschiedlichen Gerätetypen über beliebige Netze realisieren.

VoiceXML

Voice Extensible Markup Language: erlaubt die Entwicklung von interaktiven Sprachdiensten wie man sie von Telefonzentralen, Hotlines oder der Reiseauskunft kennt.

WebDAV

World Wide Web Distributed Authoring and Versioning: ermöglicht asynchrones Authoring im Team über das Web. Unterstützt insbesondere Schreibschutz, Versionsmanagement und Zugriffskontrolle.

WML

Wireless Markup Language: Auszeichnungssprache für WAP-Inhalte.

XHTML

eXtensible HyperText Markup Language: Der HTML-Nachfolger erlaubt die Einführung von Erweiterungen.

Fazit

XML ist die wohl wichtigste Neuentwicklung seit der Einführung der Webtechnologie. Endlich lassen sich Inhalte flexibel austauschen, eigene Erweiterungen einführen und Inhalte vergleichsweise einfach für die unterschiedlichsten Zielmedien aufbereiten. Durch seine einfachen Konstrukte ist XML zudem leicht erlernbar.

Im professionellen Umfeld führt kein Weg an XML vorbei. Für den privaten Homepage-Bastler, der ein Dutzend Seiten im Web veröffentlicht, bringt XML indes kaum Vorteile. Erst dann, wenn Inhalte ausgetauscht und für Medien beliebiger Natur aufbereitet werden müssen, spielt XML seine Stärken aus.

Fast noch interessanter als der bisheriger Erfolg von XML sind die vielen Erweiterungen, die aktuell in der Mache sind. Man denke nur an die XML Query Language, die für das Durchforsten von XML-basierten Daten eingeführt wurde. Oder an XML Schemas, die die bisherigen DTDs ablösen werden. Weiterführende Anwendungen sind XML Signatures, die beispielsweise Datenintegrität und Authentifizierung ermöglichen. Über die weitere Entwicklung von XML sowie den Einsatz von XSL oder DTDs lesen Sie in demnächst erscheinenden Artikeln rund um das Thema XML.sda)

Hilfreiche Links

Quickinfo

Info

Link

Die XML-Homepage des W3-Konsortiums. Hier findet man alle XML-Spezifikationen.

XML-Homepage des W3C

Informationssammlung mit jede Menge Links und aktuellen Informationen. Auf den Schwester-Sites XML-Software und XSL-Info findet man XML-Produkte und einführende XSL-Informationen.

XML Info

Erste Adresse für XML-Interessierte. Jede Menge Artikel und Links zu allen wichtigen Softwareentwicklern.

XML.COM

Umfangreiche XML-Site mit unzähligen technischen Artikeln, XML-Tools von IBM, Tutorials und vielem mehr.

IBM developersWorks

Mega-Informationssammlung mit über 2000 Verweisen zu XML-relevanten Sites, Artikeln und Softwareentwicklern

The XML Cover Pages

Alles Wichtige über den Einsatz von XML und EDI.

XML/EDI Group