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:
- Physikalischer Zustand : Interpretation als Bit
- Gruppierung von Bits : Interpretation als Zeichen (Unicode)
- Gruppierung von Zeichen: Interpretation als Text
- Strukturierung von Text mit XML
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