XML::Handler::YAWriter als Basisklasse für Handler

(Auszug aus "Perl & XML" von Erik T. Ray & Jason McIntosh)

Auch das Modul XML::Handler::YAWriter Yet Another Writer«) von Michael Koehne leistet als XML-Ausgabeprogramm gute Dienste. Es ist eine weitere typische Basisklasse zur Durchführung aller möglichen auf SAX basierenden Arbeiten.

Falls Sie schon einmal mit einer der zahlreichen Tie::*-Basisklassen gearbeitet haben: Die Idee ist ganz ähnlich. Man beginnt mit einer Klasse, die die verschiedenen Callbacks bereits definiert hat. Allerdings leisten diese Callbacks nichts besonders Sinnvolles oder sogar gar nichts. Durch ihre Existenz sind aber alle Methoden vorhanden, die ein SAX-Handler braucht. In der eigenen Klasse werden dann nur noch die Methoden implementiert, die irgend etwas Besonderes machen sollen; alle anderen werden ignoriert.

In unserem Fall leistet die Basisklasse allerdings noch etwas sehr Nettes: Sie bietet Zugriff auf ein Array von Strings. Dieses Array ist als Instanzvariable im Handlerobjekt gespeichert und enthält zusammengefaßt die Strings, aus denen die jeweiligen SAX-Events abgeleitet wurden. Das ist nicht so beeindruckend, wenn die Eingabequelle XML war, aber wenn man einen Generator benutzt, um die Events aus einer ganz anderen Datenquelle abzuleiten, dann ist das wundervoll. Das ist eine extrem einfache Methode, um eine Nicht-XML-Datenquelle in XML zu konvertieren und auf der Festplatte zu speichern.

Der Nachteil einer Basisklasse ist, daß man nie vergessen darf, $self->SUPER::[methodenname] in all seinen Handlermethoden aufzurufen. Andernfalls bringt man die Interna der Basisklasse durcheinander und würde im jugendlichen Leichtsinn unter Umständen regelrechte Stücke aus dem XML-Dokument reißen.

  

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema Perl & XML bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © 2003 O'Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "Perl & XML" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

O’Reilly Verlag GmbH & Co. KG, Balthasarstraße 81, 50670 Köln, kommentar(at)oreilly.de