Happy Birthday XML
Im Jahr 1998 wurde XML vom W3C veröffentlicht. Auf der letzten Balisage (Markup-Konferenz) ist dieses Foto entstanden. Zeit für ein kleines persönliches Resümee, da ich beruflich ja sehr intensiv mit XML zu tun habe.
XML als Teilmenge von SGML
Vor XML gab es die SGML, deren Spezifikation sehr umfangreich war und dadurch nicht wirklich praktikabel war. Daher wurde eine starke Vereinfachung (subset) für das Web unter dem Namen XML entwickelt. Meine erste Berührung mit XML kommt auch aus dieser Zeit, ein Arbeitskollege an der TU-Dortmund war Co-Autor des vermutlich ersten deutschsprachigen Buches zu XML. Daher war XML bei uns ein großes Thema.
XML hat immense Verbreitung gefunden, unter anderem durch eine große Auswahl an Technologien, die dazugehören und nicht mehr wegzudenken sind. Unter anderem
- XSLT als Transformationssprache, um ein XML Dokument in ein anderes zu überführen.
- RELAX NG, XML Schema (und DTDs), um die Struktur eines Dokuments zu beschreiben und Vorgaben für die möglichen Werte zu machen.
- Validatoren, um die Wohlgeformtheit (einfacher Syntaxcheck) und stärker die Gültigkeit eines Dokuments (sind die Inhalte im erlaubten Bereich?) zu prüfen.
XML ist überall
Inzwischen ist XML quasi überall zu finden, wo Daten entstehen, ausgetauscht oder gespeichert werden. In jeder Smartwatch, in jedem Auto, Großcomputer und unzähligen anderen Geräten ist XML zu finden. Insbesondere in der Kodierung von Dokumenten ist XML nicht mehr wegzudenken (TEI, JATS und viele andere).
XML für den speedata Publisher
Für mich interessant sind hauptsächlich Katalogdaten. Meine Auftraggeber haben meist schon XML-Daten, die ich direkt verarbeiten kann. Gegebenenfalls müssten die noch etwas umgeformt werden. Kleinere Umformungen löse ich direkt im Publisher, größere meist durch einen speziellen Transformationsprozess, der praktischerweise auch direkt aus dem Publisher aufgerufen werden kann.
In den (inzwischen acht) Jahren meiner Selbständigkeit wurde ich genau einmal nach JSON und einmal nach Filemaker gefragt. Alle anderen Datenformate, mit denen ich zu tun habe sind XML (ca. 95%) und Excel (5%) (strenggenommen ist Excel ja auch XML…).
XML ist nicht gleich XML
Die Daten, die ich bekomme, sind meist sehr unterschiedlich strukturiert. PIM-Systeme machen gerne tief geschachtelte, knotenbasierte Dateien mit vielen Querverweisen, die man erst etwas umständlich in die richtige Struktur transformieren muss.
Mit handgeschriebenen SQL-nach-XML Konvertern habe ich die besten Erfahrungen gemacht. Hier steckt aber auch viel Wissen über die eigentlichen Daten drin, wie die aufgebaut sind und so weiter.
Dann gibt es aber auch immer wieder Datenquellen, wo das XML offensichtlich mit print
erzeugt wurde. Hier stimmen die Tags nicht überein (z.B. <h1>...</h2>
) oder es gibt andere Syntaxfehler.
Ordentliches XML muss immer über ein entsprechendes Modul in der jeweiligen Programmiersprache geschrieben werden, so meine Erfahrung.
Meist nutze ich den Lua-Filter, um die Eingabedaten zu prüfen. Ich erzeuge für viele Datenquellen entweder per Hand oder automatisch ein Schema, um Fehler vor dem Publikationsprozess zu erkennen. Das hat mir schon viele Stunden Fehlersuche erspart.
XML ist nicht ohne Fehler
Es gibt leider viele Dinge, die in XML nicht so schön sind. Nicht alles kommt in der Praxis vor, aber wenn man (so wie ich) XML verarbeitet, dann muss man das beachten.
Dazu gehört z.B.
- Unterstützung für DTDs
- Unterstützung für Entitäten, außerhalb von
<
und co. - Syntax-Sonderheiten wie Leerzeichen zwischen Attributnamen und Werten
a="b"
ist dasselbe wiea = "b"
. - Processing-Instructions
Die nicht immer geliebten Namensräume gehören nicht in diese Liste. Sie machen XML erst mächtig.
Schließen möchte ich mit einem kleinen Dankeschön an Liam Quin, der nach all den Jahren das W3C verlässt. Hier ein schöner Beitrag von ihm zum Thema.