Kurzanleitung zu XML2DB
Inhaltsverzeichnis 1. Einleitung...3 2. Entwicklungsumgebung...3 3. Betriebsanleitung...3 3.1 Einrichten der Java Umgebung...3 3.2 Allgemeines zu java und javac...4 3.2.1 Allgemeines zum Übersetzen...4 3.2.2 Allgemeines zur Ausführung...4 3.3 Übersetzung mit dem Tool ant...5 3.4 Programmaufruf...6-2 -
1. Einleitung In dieser Anleitung soll ein Kurzüberblick zu dem XML2DB-Tool gegeben werden, welches im Rahmen des Projektthemas verbesserte Datenbankanbindung der htdig Suchmaschine entwickelt wurde. Es wird sowohl die Funktionalität als auch die Bedienung des Programms und dessen Features kurz erklärt, damit ein reibungsloses Arbeiten möglich wird. Der Schwerpunkt des Programms liegt bei dem dynamischen Aufbau einer relationalen Datenbankstruktur anhand eines DTD (Document Type Definition). Hierbei liegt das Problem bei der Transformation eines Dokumentenbaums in eine relationale Tabellenstruktur. Unter Zuhilfenahme des Java XMLDBMS-Frameworks von Ronald Bourret ist es möglich die oben beschriebene Transformation durchzuführen. Als besonders komfortabel erweißt sich somit der automatische Import eines XML- Dokuments in eine relationale Datenbank. 2. Entwicklungsumgebung Die Entwicklung wurde auf einem SuSE Linux System Version 8.2 durchgeführt. Hier wurde ebenfalls wie bei dem statischen Datenbank-Import die MySQL Datenbank Version 3.23.55 verwendet. Auf ein Entwicklungs-Framework wie JBuilder wurde verzichtet. Stattdessen wurde mit Java Version1.4.1 das Tool programmiert und übersetzt. Allerdings wurden keine speziellen Features der Version 1.4.1 implementiert und somit lässt sich das Projekt problemlos mit einer anderen installierten Java Version übersetzen. Für die Mapping Funktionalität wurde, wie oben schon erwähnt, das Framework XMLDBMS von Ronald Bourret verwendet. Als XML-Parser wurde der Parser des Apache-Projekts Xerxces eingesetzt. Der JDBC-Treiber für die MySQL Datenbank wurde von dem MySQL Projekt eingebunden. Damit die einzelnen Dateien des Projektes nicht einzeln übersetzt werden müssen, bietet sich das Tool ant des Apache-Projekts an. 3. Betriebsanleitung 3.1 Einrichten der Java Umgebung Die Einrichtung der Java Umgebung wird hier für ein Linux-System angegeben. Auf das Betriebssystem Windows und die dortige Einrichtung der Java Umgebung wird nicht näher - 3 -
eingegangen. Anhand des Ausschnitts der bashrc-datei des verwendeten Betriebssystems kann man sehen, dass man den Pfad, den Java Installationspfad und den Classpath angeben muss. In dem Classpath gibt man das Verzeichnis an, wo die übersetzten Programme zu finden sind. Hier werden auch noch die eingebundenen Bibliotheken eingetragen. Ausschnitt aus der.bashrc... #Java Variablen setzen export PATH=$PATH:/bin:/usr/lib/SunJava2-1.4.1/bin export JAVA_HOME=/usr/lib/SunJava2-1.4.1 export CLASSPATH=$HOME/java/classes:$HOME/java/classes/xmldbms.jar:$HOME/java/classes/mysq l-connector-java-3.0.7-stablebin.jar:$home/java/classes/xmlparserapis.jar:$home/java/classes/xercesimpl.jar... 3.2 Allgemeines zu java und javac Um eine bessere Trennung zwischen Quellcode und übersetztem Programm zu erreichen, gibt man mittels package-angabe im Java Quellcode das Paket an. Dies hat den Vorteil, dass bei Übersetzung des Programms der übersetzte Teil im angegebenen Verzeichnis des Classpath zu finden ist. Um nun den übersetzten Code getrennt zu speichern, sollte man ein Verzeichnis java/classes anlegen und in der bashrc -Datei eintragen. 3.2.1 Allgemeines zum Übersetzen Möchte man die Java Dateien übersetzen, kann man dies mit folgendem Aufruf bewerkstelligen: javac -d classes projektx/*.java Eine kurze Erklärung zu den angegebenen Parametern: der Parameter -d classes gibt an, dass die übersetzten Dateien als neues Paket in das Classpath-Verzeichnis geschrieben werden. Nun kann man den übersetzten Code unter $CLASSPATH/projektX/*.class finden. - 4 -
3.2.2 Allgemeines zur Ausführung Nachdem das Projekt richtig übersetzt worden ist, kann man die Datei von jedem Verzeichnis aus mit dem nachfolgenden Aufruf starten: java projektx.datei 3.3 Übersetzung mit dem Tool ant Da das Projekt aus mehreren Dateien besteht, welche alle übersetzt werden müssen, bietet sich ein C oder C++ Makefile an. Besser, beziehungsweise einfacher lässt sich dies mit dem Tool ant realisieren. Ant hat den Vorteil, dass nur ein XML-Dokument erstellt werden muss, wo ähnlich wie bei einem Makefile die programmspezifischen Angaben gemacht werden. Um einige Beispiele zu nennen: Definition von Pfaden, Archivierung, Übersetzung, Dokumentation und weitere Möglichkeiten. Möchte man das Programm übersetzen, so muss zuerst die build.xml Datei im Übersetzungsverzeichnis erzeugt werden. Danach kann man das Projekt mit folgendem Befehl kompilieren. daniel@linux:~/cvsroot/htdig/xml2db> ant Buildfile: build.xml init: compile: [javac] Compiling 4 source files to / home/daniel/cvsroot/htdig/xml2db/classes [javac] Note: Some input files use or override a deprecated API. [javac] Note: Recompile with -deprecation for details. build: [mkdir] Created dir: / home/daniel/cvsroot/htdig/xml2db/dist/lib [jar] Building jar: / home/daniel/cvsroot/htdig/xml2db/dist/lib/xml2db- 20030709.jar BUILD SUCCESSFUL Total time: 6 seconds Die erstellten Dateien sind nun in den Verzeichnissen zu finden, welche in dem build.xml Dokument eingetragen sind. Desweiteren bietet ant noch die Möglichkeit der Erstellung der Dokumentation (javadoc) und das Aufräumen der Projekt Umgebung. daniel@linux:~/cvsroot/htdig/xml2db> ant doc Buildfile: build.xml - 5 -
doc: [echo] Building documentation in directory ${docs} [mkdir] Created dir: / home/daniel/cvsroot/htdig/xml2db/doc [javadoc] Generating Javadoc [javadoc] Javadoc execution home/daniel/cvsroot/htdig/xml2db/convert_dtd2sql.ja va... home/daniel/cvsroot/htdig/xml2db/xml2db.java... home/daniel/cvsroot/htdig/xml2db/importmap2db.java... home/daniel/cvsroot/htdig/xml2db/sql_util.java... [javadoc] Constructing Javadoc information... [javadoc] Standard Doclet version 1.4.1 [javadoc] Building tree for all the packages and classes... [javadoc] Building index for all the packages and classes... [javadoc] Building index for all classes... BUILD SUCCESSFUL Total time: 7 seconds daniel@linux:~/cvsroot/htdig/xml2db> ant clean Buildfile: build.xml clean: [delete] Deleting directory / home/daniel/cvsroot/htdig/xml2db/dist [delete] Deleting 4 files from / home/daniel/cvsroot/htdig/xml2db/classes [delete] Deleting directory / home/daniel/cvsroot/htdig/xml2db/classes/xml2db [delete] Deleting directory / home/daniel/cvsroot/htdig/xml2db/doc BUILD SUCCESSFUL Total time: 3 seconds 3.4 Programmaufruf Wurde die Java Entwicklungsumgebung richtig eingerichtet und das Programm übersetzt, lässt es sich mit folgendem Aufruf ausführen: java XML2DB.XML2DB <DTDinput.dtd> <XMLinput.xml> Die richtige Parameter Reihenfolge der XML- und DTD-Datei ist für das Programm notwendig. Es bleibt noch anzumerken, dass die Datei xmldbms.dtd sich im Verzeichnis des XML- Dokuments befinden muss, da ansonsten XML2DB kein Mapping und Import erstellen kann. - 6 -