Welche Erneuerungen, Überraschungen oder gar Umwälzungen bringt das Jahr 2007 für XML? Auch der Autor weiß das nicht, doch ein Blick auf die Vorankündigungen des vergangenen Jahres lässt bereits einige Trends vermuten.
Offene Pakete
Mit Office 2007 und der damit verbundenen Einführung der Office-Open-XML-Formate tritt Microsoft zumindest im Windows-Lager eine neue
Entwicklung los. Der Trend geht nicht nur bei Microsoft Office in Richtung
offener XML-basierter Dateiformate. Auch die
XML Paper Specification -
Microsofts Antwort auf Adobes PDF - basiert auf den
Open Packaging Conventions.
Die beschreiben, wie sich mittels XML-Schemata und ZIP-Komprimierung
erweiterbare Dokumentenformate erstellen lassen, die mit jeder
Programmiersprache und auf jeder Plattform sowohl gelesen als auch geschrieben
werden können.
Die Unterstützung durch eine umfangreiche Programmierschnittstelle im .NET Framework 3.0, das Angebot an zahlreichen kostenlosen Entwicklungswerkzeugen und die freie Verfügbarkeit der Spezifikation selbst werden dazu führen, dass im Jahr 2007 weitere Anwendungen ihr Dokumentenformat auf XML umstellen beziehungsweise neue Anwendungen von Anfang auf XML setzen werden. Der Vorteil der neuen Formate liegt in ihrer Modularität begründet, die die Dokumente zum einen robuster gegenüber beispielsweise Übertragungsfehlern und zum anderen erweiterbar für fremde Anwendungen macht.
Bürger erster Klasse
Lange Zeit galt XML als Bürger zweiter Klasse. So unterstützen große Frameworks
wie .NET zwar XML durch entsprechende Programmierschnittstellen, doch die
Programmiersprachen selbst verweigerten sich bisher dem vermeintlichen Konkurrenten.
Dass XML keineswegs als Alternative zu Java, C# & Co. zu verstehen ist, dürfte
mittlerweile klar sein. XML eignet sich zwar sehr gut, um Daten zu formatieren,
nicht aber um Programmlogik zu beschreiben. Wer einmal ein umfangreiches XSLT-Stylesheet oder Ant-Buildskript gesehen hat, weiß
das.
Doch in jedem Programm finden sich auch Daten und immer öfter liegen diese im XML-Format vor. Mit LINQ for XML (ehemals XLinq) macht Microsoft XML in Visual Basic und C# daher zum "first-citizen object". Als Bürger erster Klasse dürfen XML-Daten im Programmcode auch außerhalb der Anführungszeichen stehen und direkt einer Variablen zugewiesen werden. Die Entwicklungsumgebung bedankt sich mit Syntaxhighlightening und der Compiler mit einer Validierung der Daten bei der Kompilierung. Der Variableninhalt lässt sich außerdem mit der Language Integrated Query (LINQ) durchsuchen, filtern und sortieren - ganz ähnlich wie bei XQuery oder SQL, doch ohne Umweg über eine Programmierschnittstelle, sondern direkt über entsprechende Sprachkonstrukte (FLOWR-Ausdrücke). Geht es nach dem Terminplan von Microsoft, wird LINQ noch im Jahr 2007 die Herzen der Programmierer erobern - als Komponente des .NET Frameworks 3.5, das wiederum mit Visual Studio 2007 veröffentlicht werden soll.
Sprechen Sie XML?
Apropos XQuery: Dieses Jahr ist es endlich soweit. Nach über einem halben
Jahrzehnt Entwicklungszeit verabschiedet das W3C die Spezifikation
"XQuery 1.0" als finale
Empfehlung ("recommendation"). Derzeit steht der Zeiger noch auf "proposed
recommendation". Die Hersteller von XQuery-Prozessoren sind da schon weiter. Sie
haben bereits vor langer Zeit ihre Editoren, Datenbanken und
Software-Bibliotheken XQuery-tauglich gemacht. XQuery-konform (zum endgültigen
Standard) werden aber nicht alle sein. Der Ärger für den Entwickler ist
somit vorprogrammiert.
Ähnlich wird es auch jenen ergehen, die bereits XSLT 2.0 im Einsatz haben. War XSLT 1.0 ohne herstellerspezifische Erweiterungen nicht mehr als ein nettes Spielzeug für Programmierer, wird XSLT 2.0 eine mächtige Programmiersprache für Entwickler sein. Noch gilt auch für XSLT 2.0 der Status "proposed recommendation", doch das Jahr 2007 wird das Jahr von XPath 2.0, XSLT 2.0 und XQuery 1.0 werden.
Pull it!
Die Konjunktur machte es 2006 vor. Sie zog an. In Java hieß es dagegen stets:
"push it!". Gemeint ist
SAX - das Simple API for XML, das alles andere als
einfach ist. Mit Java 6 wird alles anders. Aus SAX wird
StAX und
statt "push it" heißt es nunmehr "pull it". Die Konkurrenz hat es vorgemacht:
Die XML-Daten aus einem XML-Parser herausziehen, ist meist einfacher zu
implementieren, als sie sich von einem XML-Parser zuschieben zu lassen. Denn
Letzteres bedeutet: die Kontrolle aufzugeben, und das mögen die wenigsten. Um
nicht ganz den Überblick darüber zu verlieren, was das Programm macht, machten
die Programmierer Folgendes: sie führten Variablen ein, die den Status des
XML-Parsers protokollierten, also den Kontext festhielten. Da wurde es dann meist kompliziert.
Einfacher soll es mit StAX werden - dem Streaming API for XML. Das betrachtet die XML-Daten als Strom von Knoten und bietet sowohl eine Nur-Lesen- als auch eine Nur-Schreiben-Schnittstelle an. Ein Strom kann stets nur in eine Richtung gelesen beziehungsweise geschrieben werden und ein Knoten ist ein Element, ein Attribut, ein zusammenhängender Text oder was sonst noch in einem XML-Dokument stehen kann. StAX ist einfacher als das SAX und effizienter als das DOM (bezogen auf die Verarbeitungsgeschwindigkeit und den Speicherverbrauch) und damit in 2007 die erste Wahl für jeden Java-XML-Programmierer.
Und der ganze Rest
Habe ich etwas vergessen? Natürlich habe ich das! Denn dies werden nicht die
einzigen Themen sein, die uns in 2007 beschäftigen werden. Um nur einige weitere
CTLAs ("cryptic four letter acronyms") zu nennen: AJAX, XAML und - ja, Sie lesen
richtig - HTML werden 2007 für Furore sorgen. Seien Sie deshalb auch in vierzehn
Tagen wieder dabei, zur nächsten Folge von Naked XML.
Ihr Martin Szugat
Martin Szugat hat den Jahreswechsel (ohne XML, dafür mit C2H5OH) gut überstanden. Auch im neuen Jahr widmet er sich dem Thema XML in der XML Corner des dot.net magazins, der Kolumne Naked XML auf entwickler.de und in seinem Blog unter www.aboutxml.de. Fragen, Anregungen und Kritik nimmt er per E-Mail oder im Entwickler-Forum entgegen.


