Weitere aktuelle Java-Titel finden Sie bei dpunkt.
 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index


20.11

Austausch der Parser-Implementierung


Es ist oft erforderlich, den mit dem J2SDK mitgelieferten XML-Parser durch eine andere Implementierung zu ersetzen. Das ist beispielsweise dann der Fall, wenn Features benötigt werden, die entweder über den Standardumfang von DOM und SAX hinausgehen oder zwar vom Standard abgedeckt, aber nicht vom J2SDK-Parser implementiert sind.

So sind die für den Zugriff mit DOM nützlichen Unterpakete ranges und traversal zwar Teil von DOM-Level 2, allerdings unterstützt der im J2SDK 1.4 enthaltene Parser diese DOM-Version nur im Kern-Teil des DOM-API. Die beiden genannten Pakete sind bei diesem Parser dagegen nicht implementiert. Sollen diese Pakete benutzt werden, muss die Parser-Implementierung ausgetauscht werden, beispielsweise gegen Xerces vom Apache-Projekt. Auch eines der im Abschnitt 20.12.3 gezeigten Beispiele verwendet das Paket traversal, so dass zum Ausprobieren die nachfolgenden Schritte durchzuführen sind.

Meist stellen die Parser-Implementierungen auch zusätzliche Features zur Verfügung, die nicht Teil von DOM oder SAX sind. Hierzu zählt zum Beispiel der Zugriff auf Definitionen in der DTD. Solche »proprietären« Schnittstellen werden bei Xerces auch »Native Interface« genannt. Der Name ist etwas verwirrend, da diese APIs nicht etwa mit nativem Code, sondern in Java implementiert sind. Der Name wurde lediglich gewählt, um anzudeuten, dass es sich um Xerces-spezifische APIs handelt.

Für die Installation eines alternativen Parsers sind drei Schritte durchzuführen: Nachfolgend werden diese Schritte für Xerces gezeigt. Zunächst muss die Archivdatei extrahiert werden, zum Beispiel nach C:\. Die Dateien befinden sich dann im Unterverzeichnis C:\xerces-2_x_x.

Anschließend müssen die beiden Dateien xercesImpl.jar und xmlParserAPIs.jar in den CLASSPATH aufgenommen werden. Dies erfolgt unter Windows mit:
  >set CLASSPATH=%CLASSPATH%;C:\xerces-2_x_x\xercesImpl.jar;
  C:\xerces-2_x_x\xmlParserAPIs.jar;
Unter Unix in einer sh (wobei /usr/local durch den Installationspfad zu ersetzen ist):
  >export CLASSPATH=$CLASSPATH:/usr/local/xerces-2_x_x/xercesImpl.jar:
  /usr/local/xerces-2_x_x/xmlParserAPIs.jar;
Abschließend müssen die neuen Factory-Klassen registriert werden. Dies erfolgt über die System-Properties: Diese Properties müssen auf die Namen der zu verwendenden Factory-Klassen gesetzt werden. Im Fall von Xerces lauten die entsprechenden Werte: Diese Properties können entweder auf der Kommandozeile des Interpreters mit der Option -D gesetzt oder in der Datei jaxp.properties dauerhaft eingestellt werden. Diese Datei muss im Unterverzeichnis lib des JRE-Installationsverzeichnisses abgelegt werden (Wenn das J2SDK unter C:\J2SDK installiert wurde, also unter C:\J2SDK\jre\lib).

Für SAX wäre auf der Kommandozeile folgende Option anzugeben:
  >java -Djavax.xml.parsers.SAXParserFactory=\
  org.apache.xerces.jaxp.SAXParserFactoryImpl MySAXApp
Der Übersicht wegen wurde die Zeile hier mit einem Backslash umbrochen. Der entsprechende Eintrag für jaxp.properties wäre:
  javax.xml.parsers.SAXParserFactory= \
    org.apache.xerces.jaxp.SAXParserFactoryImpl
Mit diesen Zuweisungen ist die Parser-Implementierung aktiv.


 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index

Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.