Extensible Markup Language

XML ist eine Möglichkeit Daten zu strukturieren

Hallo liebe Leserin, lieber Leser,

sicher haben Sie schonmal was von XML gehört. Alle möglichen Softwareprodukte werden neuerdings mit besonderen XML-Fähigkeiten beworben. Was bedeutet dies?
Hier werde ich nicht erklären, wie XML "funktioniert", sondern XML aus einer Art Vogelperspektive betrachten. Eine gute Erklärung für XML findet sich in der Wikipedia.

Am Anfang war das Feuer. Mal brannte es, mal war's kalt.
Viel später wurden per Rauchzeichen erste Information ("schönes Wetter heute", "komm Essen") übermittelt. Sehr viel später hat sich daraus die Informatik entwickelt (ja, so wird es wohl gewesen sein).
Grob gesagt ordnet der Homus Informatikus zwei physikalischen Zuständen (z.B. Strom an, Strom aus) die logische Informatin Eins (1) und Null (0) zu. So ein Ding, welches zwei Zustände haben kann wird Bit genannt.
Damit was sinnvolles zustandekommt, wurden die Bits gruppiert und je nach Bedarf etwas hineininterpretiert. Zum Beispiel Zahlen, Musik, Videos, Bilder oder Buchstaben.

Die erste, mehr oder weniger genormte, Interpretation von 8 Bit als Buchstaben nennt sich ASCII.
Für andere Schriftsysteme (z.B. Deutsch mit seinen Umlauten) oder gar chinesisch, russisch, japanisch usw. gibt es andere Umsetztabellen.
Seit einiger Zeit gibt es eine riesengrosse Umsetztabelle, in der einfach alle Zeichen dieser Welt Platz haben. Mit diesem Unicode wird also einer bestimmten Folge von Bits ein bestimmtes Zeichen zugeordnet. Und diese Zuordnung ist für alle Zeichen in allen Sprachen auf allen Computern weltweit die selbe (zumindest in der Theorie).

Hat man erstmal Zeichen auf dem Bildschirm, fällt es leicht, Wörter, Sätze und Romane zu schreiben, sprich eine Folge von Bits als Roman, als Steuererklärung oder sonstiger strukturierter Information aufzufassen .
Versteht nun der Computer einen solchen Roman oder eine Steuererklärung? (Zusatzfrage: Versteht ein Computer überhaupt irgendetwas?). Natürlich nicht. Doch der Anwender will etwas (fachspezifisches) mit diesen Daten anfangen, wie z.B. Steuerbetrüger finden oder ein Drehbuch aus einem Roman erstellen.
Die Speicherung und Darstellung von Zeichen macht nur einen Bruchteil der nötigen Arbeit aus, Information (also z.B. die Steuererklärung) zu verarbeiten. Je besser die Information strukturiert ist, desto einfacher ist es für den "dummen" Computer diese nach den Wünschen des Anwenders zu durchsuchen oder umzuformen.

Bisher war und ist es so, dass die meisten Programme strukturierte Daten in einem eigenen Format abspeichern und verarbeiten. Grad' so, wie es dem Programmierer in den Sinn kam oder wie es halt zur Entstehungszeit des betreffenden Programms gemacht wurde. D.h. zwei unterschiedliche Programme (z.B. zur Verarbeitung von formatierten Texten, wie z.B. Word oder LaTeX) konnten keine Daten untereinander austauschen.
Hierfür musste man wiederum Programme von anderen Herstellern kaufen. Nur so als Rechenbeispiel: 8 unterschiedliche Programme wollen jeweils untereinander Daten austauschen. Wieviele "Übersetzungesprogramme" sind wohl hierzu notwendig?
Diese Aufgabe bleibt dem geneigten Leser überlassen.

Aber leicht vorstellbar ist, dass der Wartungs- und Entwicklungsaufwand für jedes Programm, welches ein eigenes Datenformat nutzt, hoch ist. Hinzu kommen die Anpassungen an die "Übersetzungsprogramme". Sozusagen das Babylon der Informatik.

Ansätze, dieses Problem zu beheben, gab es schon lange. Doch auf breiter Front hat sich bis vor kurzem noch keine Lösung wirklich durchgesetzt.
Mit XML scheint es nun eine akzeptierte Lösung zu geben, denn immer mehr Anwendungen nutzen XML. Zumindest können sie ihre Daten in XML ausgeben. Selbst Microsoft Word oder Excel können mittlerweile XML ausgeben und lesen.
Für unser Problem oben, würde dies bedeuten, jedes Programm (welches kein XML kann) benötigt genau ein Übersetzungsprogramm von dem eigenen Format nach XML und zurück. Dann kann es sich (mehr oder weniger) mit anderen XML-fähigen Programmen verständigen.
Das ist natürlich eine grobe Vereinfachung, denn es verständigen sich nicht die Programme miteinander, sondern die Interpretation von Informations-Bits in beiden Programmen ist deckungsgleich.

Zusammen mit XML gibt es eine ganze Reihe von Werkzeugen, welche die Bearbeitung von XML Dokumenten erleichtern und es den Entwicklern von Software ermöglichen, ohne grossen Aufwand XML Dokumente zu lesen und zu schreiben.
Ebenso gibt es "genormte" Vorgehensweisen, auf Elemente in einem XML-Dokument zuzugreifen (XPATH) oder XML-Dokumente in andere Formen zu überführen (XSLT).
All dies zusammen fördert den "Siegeszug" von XML als einheitliches Format zur Strukturierung von Information.

Für mich ist XML als wesentliche "Neuerung" der Informatik, die Weiterentwicklung von unstrukturiertem Text:

Wenn also nun ein Hersteller mit XML wirbt, bedeutet dies nichts anderes, als dass das beworbene Produkt in XML strukturierte Information lesen und schreiben kann. In einigen Jahren wird dies so selbstverständlich sein, wie heute fast alle Programme ASCII "verstehen". Kein Hersteller würde auf die Idee kommen, ASCII als Feature anzubieten. Immerhin gibt es Produkte, welche das Feature Unicode bewerben.

Zu guter letzt noch ein kleines Beispiel aus meiner Praxis:
Ein Programm, an welchem ich gerade arbeite hat ca. 700 Stellen, an denen (bekannte) Fehler passieren können. Es wäre sehr aufwändig, an jeder Stelle einen eigenen Code zur Fehlerbehandlung zu schreiben. Deshalb habe wurden diese Stellen in einer Excel-Tabelle erfasst und gewichtet (Warnung, schwerer Fehler, mögliche Aktion) und beschrieben.
Diese Excel-Tabelle wird als XML abgespeichert. Mittels einer realativ einfachen XML-Transformation (ca. 2 Tage Arbeit) wird daraus ein Teilprogramm zur Fehlerbehandlung erzeugt, welches einige tausend Zeilen Code umfasst. Ebenso werden die Einträge für das Handbuch und die Klartext-Meldungen generiert.
Ändert sich nun ein Fehler in seiner Beschreibung oder Gewichtung oder kommen neue Fehler hinzu, muss nur die Exceltabelle angepasst werden und der Code erneut generiert werden.
Sollte sich das Verfahren zur Fehlerbehandlung ändern, müssen nur einige Zeilen im Generator (ein XSLT-Dokument) geändert werden.
Der Vorteil ist, dass dank der Generierung und Verwendung von Excel alles (relativ) konsistent ist und bei einer Änderung keine Stelle vergessen wird.

Meiner Ansicht nach ist XML ein Basisbaustein der modernen Informatik und bildet aus Bits, Bytes und Unicode das Grundgerüst der modernen Datenverarbeitung.

Ihnen, die sie bis hier durchgehalten haben, wünsche ich noch einen wunderschönen Tag.

Ihr Florian Greese