XML-Anwenungen

Unter einer Anwendung von XML versteht man nicht ein konkretes Programm, sonder ein XML-Vokubular für einen bestimmten Anwendungsbereich, das zum Beispiel durch eine DTD oder ein Schema definiert sein kann. Es gibt Anwendungen in jeder Komplexitätsstufe und für fast jedes Gebiet.
Nach der Veröffentlichung der XML-Spezifikation wurde eine wahre Flut von XML-Anwendungen vorgeschlagen, und es ist noch kein Ende abzusehen. Eine Übersicht über diese Anwendungen kann unterschiedlich strukturiert werden. Bei [Ext. Link]Schema.Net und auf dem vom [Ext. Link]OASIS betriebenen "[Ext. Link]XML Industry Portal" sind sie zum Beispiel nach [Ext. Link]Anwendungsgebiet bzw. Branche sortiert, während ich auf den [Ext. Link]Seiten von Robin Cover keine spezielle Ordnung erkennen konnte. Beide Listen scheinen aber so etwas wie Vollständigkeit anzustreben. Dagegen möchte ich hier nur einige prägnante Beispiele für verschiedene wichtige Typen von Anwendungen vorstellen.

Kleine Anwendungen für's Web

Eine Anwendung, die dem Ziel XML, ein einfaches, portables Fomat für verteilte Anwendungen im Web zur Verfügung zu stellen, sehr gut entspricht, ist die [Ext. Link]Rich Site Summary (oder neuerdings RDF Site Summary) RSS. Ursprünglich von Netscape für das Portal MyNetscape eingeführt, erlaubt RSS es Anbietern von webbasierten Nachrichtendiensten, einen Überblick über ihre aktuellen Schlagzeilen zu Verfügung zu stellen, die dann von Protalen und anderen Nachrichtensites übernommen werden können.

Eine andere XML-Anwendung, die auf das Umfeld des Web zielt, ist die Wireless Markup Languge WML, die sich wie das zugehörige Übertragungprotokoll WAP euphorischer Unterstützung durch viele wichtige Leute erfreut:

Learned about WAP. It sucks. The more I play with WML the more sure I am that WAP will die out rapidly once phones doing HTML exist. ([Ext. Link]Alan Cox)
WAP: Wrong Approach to Portability
[...]
Cellphones as currently known must die. ([Ext. Link]Jacob Nielsen)
The Wireless Application Protocol (WAP) is a disaster waiting to happen. ([Ext. Link]FreeProtocols.org)

XML in XML in XML in XML

Eine andere interessante Entwicklung, die wir schon bei der Diskussion über XML Schema und Schematron gesehen haben, ist die, dass zunehmend Erweiterungen und Ergänzungen von XML selbst als XML-Anwendungen definiert werden.

Ein weiteres, sehr wichtiges Beispiel ist die Extensible Stylesheet Language XSL. Diese zerfällte in zwei Teile: Ein XML-Vokabular, dass Fomatierungsobjekte beschreibt ("Dies hier ist ein Absatz in Tiro Works 1530 Garamont, 10/13 pt, zwei em Einzug in der ersten Zeile") und eine relativ allgemeine Spezifikation von [Ext. Link]XSL Transformationen XSLT, die beschreiben, wie ein XML-Dokument in ein anderes übersetzt werden kann, zum Beispiel eines, das aus lauter Formatierungsobjekten besteht. XSLT ist aber nicht darauf beschränkt, es kann für die Transformation zwischen beliebigen XML-Anwendungen benutzt werden.

Portierte SGML-Anwendungen

Für viele sehr start textzentrierte Anwendungen, die bisher SGML benutzt haben, kann XML eine sinnvolle Alternative sein. Mit einem mäßigen Aufwand für den Schritt von SGML zu XML können diese Anwendungen möglicherweise von der besseren Unterstützung durch Tools und der größeren Verbreitung von XML profitieren. Die Umwandlung von SGML-Dokumenten in wohlgeformte XML-Dokumente ist trivial, schwieriger ist es, SGML-DTDs in XML-DTDs zu übersetzen, die in etwa die gleiche Aussagekraft haben. Ein wesentliches Problem ist das der geringeren Ausdruckskraft von XML bei gemischten Inhaltsmodellen, was gewisse Anpassungen erfordert.

Fast schon selbstverständlich ist, das das [Ext. Link]W3C HTML selbst als eine XML-Anwendung neu definiert hat. Das Ergebnis davon ist die Empfehlung für [Ext. Link]XHTML Version 1.0, die mittelfristig die bisher benutzte HTML-Definition als SGML-Anwendung mit ihren bekannten Problemen ersetzen soll.

Auch für das ursprünglich unter starker Beteiligung von O'Reilly entwicklete und heute von [Ext. Link]OASIS betreute Format Docbook, das vor allem für technische Dokumentationen gedacht ist, gibt es inzwischen eine [Ext. Link]Dokbook XML DTD.

Ein großer Teil der Texterfassung für wissenschaftliche Zwecke (Geschichte, Literaturwissenschaft, Linguistik) benutzt Varianten des von der [Ext. Link]Text Encoding Initiative TEI entwickelten Standard, von dem es ebenfalls XML-Versionen gibt.

Anwendungen für Präsentationen

Eine der Hauptaufgaben von [Ext. Link]Mozilla ist es, HTML- und XML-Seiten, die oft mit dynamischen Elementen angereichert sind, formatiert auf dem Bildschirm anzuzeigen. Da dafür fast alle üblichen Elementen einer Benutzeroberfläche vorhanden sein müssen, lag es nahe, auch die Benutzeroberfläche des Browsers selbst mit Hilfe der gleichen Funktionen zu realisieren. Die dafür entwickelte [Ext. Link]XML-based UI Language XUL erlaubt es, die Oberfläche des Browsers genauso flexibel zu gestalten, wie man eine HTML-Seite mit Stylesheets und Javascript gestalten kann. XUL lieg auch der interessanten Idee des graphischen Komandozeileninterface [Ext. Link]XMLterm zu Grunde. XMLTerm funktioniert im Prinzip wie ein Xterm, nur dass die Eingaben des Benutzers und die Ausgaben der Shell und der Programme als Inhalt eines XML-Dokuments betrachtet werden. So lange die Programme nichts machen als Text auszugeben, merkt man keinen Unterschied, aber eine angepasste Variante von ls kann zum Beispiel die angezeigten Verzeichnisse mit Hyperlinks verbinden, die in das Verzeichnis wechseln, oder Bilder inline anzeigen.

SVG http://www.w3.org/Graphics/SVG/

Kommunikation zwischen Computern

Verschiedene Anwendungen dienen direkt der Kommunikation zwischen Computern ohne dass irgendwann ein Mensch auch nur im Prinzip den Datenaustausch sehen soll. Ein Beispiel ist zum Beispiel das von Microsoft dem [Ext. Link]W3C vorgeschlagene [Ext. Link]Simple Object Access Protocol (SOAP) 1.1, das eine transparenten Zugriff auf und Kommunikation mit entfernten Objekten erlauben soll. Auch verschiedene Anwendungen aus dem Bussiness to Business Bereich gehören in diese Kategorie.

Florian Hars <florian@hars.de>, 2007-10-15 (orig: 2000-06-13)