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 guten Gründen großer Beliebtheit. XML setzt sich nach einem eher langsamen Start nun offenbar doch in immer mehr Anwendungen als universelles, frei definierbares Dateiformat durch. Daher liegt eine Kombination von Python und XML nahe, wenn es darum geht, zum Beispiel Websites zu implementieren, deren Daten ganz oder teilweise in XML vorliegen.
Das vorliegende Buch setzt (bis auf einige beiläufige Erklärungen) eine grundlegende Kenntnis von Python voraus. Wer eine Einführung in diese Sprache sucht, sei daher auf andere Werke verwiesen, wie sie zum Beispiel auch in der gleichen Serie verfügbar sind. Dagegen wird eine kurze Einführung in XML geboten, die durchaus ausreicht, wenn man nicht gerade auf der Suche nach ausgefallenen Spezialitäten ist. Aber auch für diesen Fall werden genug Hinweise geboten, vor allem natürlich auf die online verfügbare Dokumentation.
In der Folge werden die XML-APIs Simple API for XML (SAX) und Document Object Model (DOM) vorgestellt und jeweils an Beispielen illustriert, die gleichermaßen kompakt und informativ sind. Auch wer vorher nicht viel Kontakt mit Python hatte, aber zumindest eine andere (am besten objektorientierte) Programmiersprache gut beherrscht, versteht wohl das Meiste und lernt ganz nebenbei eine Menge über Python.
Aber auch Python-„Veteranen“ werden sicher immer wieder etwas Interessantes entdecken, denn der gebotene Programmcode wurde recht abwechslungsreich aus unterschiedlichen Perspektiven und auf der Basis unterschiedlicher Philosophien erstellt. Man bekommt manchmal auch alternative Lösungen für ein und dasselbe Problem zu sehen, was ziemlich instruktiv sein kann. Und schließlich ist der Code auch noch sorgfältig formatiert und kommentiert, sodass man dem Ablauf eigentlich immer gut folgen 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 Geschmackssache, ob man sich von einem Fachbuch diesen jugendlich-„cool“ angehauchten Plauderton erwartet.
Das nächste Kapitel im Reigen der Abkürzungen bildet XSLT, die Extensible Stylesheet Transformation Language, mit deren Hilfe zum Beispiel XML nach HTML transformiert werden kann. Aber auch die Umsetzung von XML nach XML wird behandelt, wie sie zum Beispiel beim Austausch von Geschäftsdokumenten zwischen unterschiedlichen XML-Dialekten benötigt wird.
Kapitel 7 beschäftigt sich mit XML-Validierung und XML-Dialekten. Aus einem Programm in diesem Kapitel stammt auch das folgende Zitat: „Klicken Sie auf den unteren Button, um die flache Datei an den Server zu schicken.“ — Wer das nicht verstanden hat (was kein Wunder ist!), möge sich vergegenwärtigen, dass der Text aus dem Englischen übersetzt wurde.
Es handelt sich nicht um einen Datenträger, der einer Straßenwalze zum Opfer gefallen ist, sondern in der Originalsprache ist ein „flat (text) file“ einfach eine unformatierte Textdatei. Das wahre Opfer ist also der Text, der unter der hinkenden Übersetzung leidet. Unglücklicherweise handelt es sich nicht nur um die einzige Stelle, an der man das Gefühl hat, dass etwas allzu wörtlich genommen wurde. Manche der Anglizismen sind ja (unfreiwillig) lustig, aber einige sind einfach störend.
Das letzte Drittel des Buches beschäftigt sich mit den Python-Internet-APIs, mit der Implementierung von Web Services und SOAP, sowie besonders 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 anderem auch das detaillierte Inhaltsverzeichnis, der Index und sogar ein Probekapitel (das erste) aus der englischen 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 angesichts der stellenweise seltsamen Übersetzung vielleicht doch lieber die Anschaffung des englischen Originals ins Auge fassen. Die gleichen Elefantenspitzmäuse auf dem Titelblatt, übrigens in Kombination mit diesem Thema sogar ein Warenzeichen des Verlags, machen das Auffinden im Buchgeschäft ganz einfach.
(Martin Schönhacker)