Python & XML

Christopher A. Jones & Fred L. Drake, Jr.; O’Reilly; ISBN 3‑89721‑175‑0; 394 Seiten; Euro 43,55
englische Version: ISBN 0‑596‑00128‑2


Bei der Entwicklung von interaktiven Web-Anwendungen erfreut sich die Programmiersprache Python aus gu­ten Gründen großer Beliebtheit. XML setzt sich nach einem eher langsa­men Start nun offenbar doch in im­mer mehr Anwendungen als univer­selles, frei definierbares Dateifor­mat durch. Daher liegt eine Kom­bination von Python und XML nahe, wenn es da­rum geht, zum Beispiel Websites zu implementieren, deren Daten ganz oder teilweise in XML vorliegen.

Das vorliegende Buch setzt (bis auf ei­nige beiläufige Erklärungen) eine grundlegende Kennt­nis von Python voraus. Wer eine Einführung in diese Sprache sucht, sei daher auf andere Werke verwiesen, wie sie zum Bei­spiel auch in der gleichen Serie ver­fügbar sind. Dagegen wird eine kurze Einführung in XML geboten, die durchaus ausreicht, wenn man nicht gerade auf der Suche nach ausge­fal­le­nen Spe­zialitäten ist. Aber auch für diesen Fall werden genug Hinweise geboten, vor allem natürlich auf die online ver­fügbare Dokumentation.

In der Folge werden die XML-APIs Simple API for XML (SAX) und Document Object Model (DOM) vor­gestellt und jeweils an Beispielen il­lustriert, die gleichermaßen kompakt und informativ sind. Auch wer vorher nicht viel Kontakt mit Python hatte, aber zumindest eine andere (am bes­ten objektori­entierte) Program­mier­sprache gut beherrscht, versteht wohl das Meiste und lernt ganz ne­benbei eine Menge über Python.

Aber auch Python-„Veteranen“ wer­den si­cher immer wieder etwas Interessan­tes entdecken, denn der ge­botene Pro­grammcode wurde recht ab­wechs­lungsreich aus unterschied­li­chen Per­spektiven und auf der Basis unter­schiedlicher Philosophien er­stellt. Man bekommt manchmal auch alternative Lösungen für ein und das­selbe Problem zu sehen, was ziemlich instruktiv sein kann. Und schließlich ist der Code auch noch sorgfältig for­matiert und kommentiert, sodass man dem Ablauf eigentlich immer gut fol­gen kann.

Weiter geht es mit der Abfrage von XML mit XPath, der XML Path Language. An dieser Stelle sei ein Beispiel für den stellenweise fast schon etwas zu lockeren Schreibstil zitiert, der sich durch das Buch zieht: „Einen Lokalisierungspfad kann man sich ähnlich zu einem Dateipfad auf einer Festplatte vorstellen, aber viel abgefahrener.“ — Es ist Geschmacks­sache, ob man sich von einem Fach­buch diesen jugendlich-„cool“ ange­hauchten Plauderton erwartet.

Das nächste Kapitel im Reigen der Ab­kürzungen bildet XSLT, die Exten­sible Stylesheet Transformation Lan­guage, mit deren Hilfe zum Beispiel XML nach HTML transformiert wer­den kann. Aber auch die Umsetzung von XML nach XML wird behandelt, wie sie zum Beispiel beim Austausch von Geschäftsdokumenten zwischen unterschiedlichen XML-Dialekten be­nötigt wird.

Kapitel 7 beschäftigt sich mit XML-Va­lidierung und XML-Dialekten. Aus einem Programm in diesem Ka­pitel stammt auch das folgende Zitat: „Klicken Sie auf den unteren Button, um die flache Datei an den Server zu schicken.“ — Wer das nicht ver­stan­den hat (was kein Wunder ist!), möge sich vergegenwärtigen, dass der Text aus dem Englischen übersetzt wurde.

Es handelt sich nicht um einen Daten­träger, der einer Straßenwalze zum Opfer gefallen ist, sondern in der Ori­ginalsprache ist ein „flat (text) file“ einfach eine unformatierte Text­datei. Das wahre Opfer ist also der Text, der unter der hinkenden Übersetzung lei­det. Unglücklicherweise handelt es sich nicht nur um die ein­zige Stelle, an der man das Ge­fühl hat, dass etwas allzu wörtlich genommen wurde. Manche der Anglizis­men sind ja (un­freiwillig) lustig, aber eini­ge sind ein­fach störend.

Das letzte Drittel des Buches beschäf­tigt sich mit den Python-Internet-APIs, mit der Implementierung von Web Services und SOAP, sowie be­sonders ausführlich mit dem Entwurf verteilter Systeme unter Verwendung von Python. Das Buch wird ergänzt durch sechs Anhänge. Außerdem sind alle Beispieldateien auf der Website des Verlags online verfügbar. Unter http://www.oreilly.de/catalog/pythonxml/ finden sich unter an­derem auch das detaillierte Inhalts­verzeichnis, der In­dex und sogar ein Probekapitel (das erste) aus der engli­schen Version des Buches.

Wer Python kennt und XML lernen will, ist mit diesem Buch ganz sicher gut beraten. Wer allerdings nicht nur Python, sondern auch die englische Sprache gut genug beherrscht, sollte ange­sichts der stellenweise seltsamen Übersetzung vielleicht doch lieber die Anschaffung des englischen Originals ins Auge fassen. Die gleichen Ele­fan­tenspitz­mäuse auf dem Titelblatt, üb­rigens in Kombination mit diesem Thema sogar ein Warenzeichen des Verlags, machen das Auffinden im Buchgeschäft ganz einfach.

(Martin Schönhacker)