Proactive XMLeadership for Bussiness Success
Oder: Hey, du, willst du ein U, äh, X kaufen?

Wenn man den Werbeaussagen glauben würde, die die Ankündigung von XML begeleitet haben, müsste man meinen, dass (mal wieder) die endgültige Lösung aller noch offenen Probleme der Datenverarbeitung kurz vor der Tür steht. Viele Leute sind dann maßlos enttäuscht, wenn sie feststellen, dass auch XML nichts dazu beitragen wird, Microsoft in eine Wohltätigkeitsorganisation zu verwandeln. Darum ist es gut, sich noch einmal ins Gedächtnis zu rufen, was XML ist: XML ist ein Werkzeug, das Menschen, die über den Austausch textähnlicher Daten miteinander kommunizieren wollen, dies zu tun. Wenn man eine dieser Voraussetzungen übersieht, hilft es einem auch nicht, XML zu benutzen.

XML ist ein Werkzeug

Ein Werkzeug zu besitzen, kann bei der Lösung eines Problems hilfreich sein. In den seltensten Fällen ist aber ein Werkzeug allein schon die vollständige Lösung. Es muss für das zu lösende Problem angemessen sein, und man muss es zu verwenden verstehen.

XML ist ein Werkzeug mit einem sehr begrenzten Verwendungsumfang: es erlaubt, die Struktur eines Dokuments zu beschreiben, mehr nicht. Da XML zur Beschreibung dieser Struktur Tags benutzt, deren Namen (meist) aus natürlichen Sprachen stammen und die für einen Anwender eine Bedeutung haben, scheint ein XML-Dokument darüber hinaus auch noch eine reiche Semantik zu transportieren. Dies ist aber eine Täuschung: Was an Semantik da ist, ist nicht Teil des XML-Dokuments, sondern entsteht in Kopf des Benutzers, oder wird durch die Anwendung implementiert, die das Dokument verarbeiten.

Es gibt auch Versuche, XML zu benutzen, um semantische Beziehungen zwischen Ressourcen auszudrücken, wie das [Ext. Link]Resource Description Framework RDF. Aber auch da liegt die Bedeutung nicht in dem XML selbst, sondern wird durch Werte von Attributen und Namen von Elementen ausgedrückt, die außerhalb von XML definiert werden. [Ext. Link]Es ist gesagt worden, dass der wesentliche Fortschritt von RDF gegenüber früheren Ansätzen der Wissensrepräsentation der sei, dass die Klammern spitzer sind als bei Lisp.

Bevor man beginnt, für ein Projekt XML zu benutzen, sollte man sich [Ext. Link]überlegen, ob es tatsächlich das Werkzeug der Wahl ist. Es hat einige unbestreitbare Vorzüge: Es ist standardisiert, plattformunabhängig, wird von keinem Hersteller kontrolliert und es gibt für viele Systeme Werkzeuge und Bibliotheken, die die Entwicklung von Anwendungen, die auf XML basieren, unterstützen. Zwei Dinge kann XML aber nicht garantieren: XML muss nicht das besste und effektivste Datenformat für die gegebene Anwendung sein, und da die Semantik nicht in der XML-Datei, sondern im Anwendungsprogramm residiert, stellt XML allein nicht die Interoperabilität zwischen verschiedenen Anwendungen sicher.

XML ist für textähnliche Daten

XML ist dann das angemessenen Format, wenn die zu verarbeitenden Daten eine gewisse Ähnlickeit mit Texten haben, vor allem wenn die Texte einigermaßen strukturiert sind und mit gewissen anderen Informationen angereichert werden sollen. Das ist natürlich wenig überraschend, schließlich ist es eines der Ziele von XML, eine flexiblere Alternative zu HTML sein, und HTML-Seiten sind gerade strukturierte Texte mit Zusatzinformationen wie Hyperlinks. Das bedeutet natürlich nicht, dass es unmöglich ist, andere Arten von Daten in XML zu kodieren. Nichts hindert mich daran, eine Pixmap Markup Language zu definieren und ein zwei mal zwei Pixel großes Bild mit einer Datei wie

<?xml version="1.0"?>
<pixmap>
 <head>
  <width>2</width>
  <height>2</height>
  <maxval>255</maxval>
 </head>
 <image>
  <row>
   <pixel><red>83</red><green>111</green><blue>39</blue></pixel>
   <pixel><red>110</red><green>32</green><blue>81</blue></pixel>
  </row>
  <row>
   <pixel><red>117</red><green>97</green><blue>116</blue></pixel>
   <pixel><red>115</red><green>99</green><blue>104</blue></pixel>
  </row>
 </image>
</pixmap>

zu beschreiben. Der Nachteil dieses Ansatzes ist, dass diese Datei fast zwanzig mal so groß ist wie das gleiche Bild als gepackte ppm-Datei

P6
2 2
255
So'n Quatsch

und es gibt auch heute noch vereinzelte Anwendungsfelder, wo ein Faktor 20 bei der benötigten Bandbreite über die Durchführbarkeit eines Projektes entscheiden kann.

XML setzt den Willen zur Kommunikation voraus

Die vielleicht gefährlichste (oder aus der Sicht der Werbung verlockenste) Illusion im Umfeld von XML ist die der automatischen Interoperabilität. Wenn alle Leute in ihren Anwendungen XML als internes Datenformat benutzen, sollten dann nicht Probleme mit Datenformaten, die zwischen verschiedenen Versionen des gleichen Programms und zwischen ähnlichen Programmen verschiedener Hersteller inkompatible Unterschiede aufweisen, endgültig der Vergangenheit angehören? Die relativ große Flexibilität von XML schließt aber auch die Möglichkeit ein, für außenstehende völlig unverständliche Auszeichnungssprachen zu definieren. Es ist kein Problem, als Datenformat einer Anwendung gültiges XML zu benutzen, und trotzdem völlig unstrukturierte Dateien zu produzieren. Mit einer DTD wie

<!ELEMENT document (#PCDATA | data)*>
<!ELEMENT data     EMPTY>
<!ATTLIST data     format   CDATA   #IMPLIED>

könnte man alle wichtigen Strukturinfomationen über das Dokument verschlüsselt in den format-Attributen der data-Elemente unterbringen. Damit schlägt man zwei Fliegen mit einer Klappe: Man macht es der Software von Konkurrenten unmöglich, die Dateien vernünftig zu lesen, und man kann groß "Jetzt mit XML-Technologie!" in die Werbung schreiben.

XML kann Interoperabilität nicht garantieren, wenn sie nicht gewollt wird. Wird sie aber gewollt, so stellt XML Mechanismen bereit, die ihre Realisierung unterstützen. Es gibt bereits ein breites Spektrum von Anwendungen, die dieses Ziel anstreben.

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