Hauptseite   Liste aller Namensbereiche   Klassenhierarchie   Alphabetische Liste   Übersicht   Auflistung der Dateien   Elemente eines Namensbereiches   Datenstruktur-Elemente   Datei-Elemente  

SfleX: Das System zur flexiblen XML-Verarbeitung.

0.1

Einleitung

Wer sich als Geisteswissenschaftler auf XML einläßt und eine eigene Dokumentenstruktur erstellt, steht vor dem Problem der Visualisierung seiner Daten. Eine mögliche Lösung besteht darin die XML-Dateien, durch XSLT-Formatvorlagen in ein geeignetes Ausgabeformat umzuwandeln. Für dieses Szenario existieren schon mehrere gängige Programmpakete. In der Regel legen diese Pakete meist in der XML-Datei fest, welche XSLT-Datei zur Verwendung kommt. Doch für den geisteswissenschaftlichen Gebrauch bedeutet dies ein Verlust von Flexibilität. Denn hier ist es oft nötig, auf eine XML-Datei, eine Vielzahl von Formatvorlagen anzuwenden. Jede dieser Formatvorlage kann eine spezielle Sicht auf die Daten liefern; als mögliches Szenario sei hier nur stichwortartig auf die Unterstützung verschiedener Benutzergruppen (vom interessierten Laien bis hin zum Experten) hingewiesen. Es wird also ein System gesucht, daß einen einfach zu bedienende Schnittstelle liefert und XML- mit XSLT-Dateien zu verknüpfen und genau dies ist der Anspruch von dem System zur flexiblen XML-Verarbeitung (SfleX). In der hier vorgestellten Version ist die Schnittstelle an das Common Gateway Interface (CGI) gekoppelt. Damit sind auch schon die grundlegenden Systemvoraussetzungen definiert: ein Webserver und ein WWW-Browser.

Das SfleX ist modular aufgebaut. Jedes Modul ist spezialisiert auf eine Grundanforderung, die sich bei der Verknüpfung ergeben. So bietet das Modul "Einzel" z.B. die Schnittstelle, um genau eine XML-Datei mit genau einer Formatvorlage zu verbinden. Neben diesem Modul ist bis jetzt nur noch ein weiteres Modul implementiert, nämlich "Apparat". Das Apparat-Modul kümmert sich um die Darstellung der Lesarten in der Düsseldorfer Heine Ausgabe (DHA) und ist technisch gesehen, nur ein Einzel-Modul mit einer einer etwas abgewandelten Schnittstelle. Weitere Module sind geplant. Möglich wäre beispielsweise ein Modul, das mehrere XML-Dateien mit einer Formatvorlage verknüpft, oder ein Modul, das sich um die Generierung von Listen oder Registern kümmert.

Konfigurationsdatei

Um das System zu konfigurieren wird eine spezielle Datei benötigt. Für das Verständnis ist die Klärung des Begriffes "Pool" nötig. In diesem System bedeutet ein Pool die Gesamtheit aus den XML-Dateien und der dazu gehörenden Formatvorlagen. Das System unterstützt bis jetzt nur einige wenige Parameter, die im folgenden anhand eines Beispiels näher erläutert werden.

# Konfig

[sflex]
pdflatex = /usr/bin/pdflatex
temp_dir = /tmp

[heine]
root    = /home/sflex/data/heine
praefix = Heine_
suffix  = .xml
das Kommentarzeichen ist die Raute #
der Name eines Pools steht in eckigen Klammern []
in dem Pool sflex werden grundlegende Systemparameter eingestellt
bei einem Eintrag , der mehrmals definiert wird, gilt das letzte Vorkommen
pdflatex: der Pfad zu pdflatex, siehe SflexPdfWithPdflatex
temp_dir: ein Verzeichnis, in dem temporäre Dateien angelegt werden können.
root: das Wurzelverzeichnis eines Pools
praefix: das gleichbleibende Praefix der Namen der XML-Dateien
suffix: das gleichbleibende Suffix der Namen der XML-Dateien

Für das Verständnis von praefix und suffix, siehe sflexhelper::getXmlFilename und sflexhelper::getXslFilename.

PATH_INFO Schnittstelle

Über die PATH_INFO Variable, wird das System gesteuert. Der grundlegende Aufbau ist /modul/parameter_des_moduls...Content-Type. Da die Parameter vom Modul abhängig sind (siehe SflexModuleEinzel und SflexModuleApparat), kann hier nicht allgemeiner darauf eingegangen werden.

Der Weg einer Anfrage durch das System

Um den Einstieg in die technischen Einzelheiten des System leichter zu gestalten, sei hier nun der Weg einer Anfrage durch das System exemplarisch dargestellt.
Dabei wird von folgender Anfrage ausgegangen (PATH_INFO):
/einzel/heine/Lass_ab/index.html
In der Hauptroutine (main) werden die CGI-Daten (PATH_INFO, SCRIPT_NAME, sonstige Daten) eingesammelt und an den Vermittler zwischen dem System und Anwender (Sflex) übergeben. Sflex nimmt die Daten entgegen und besorgt sich das Konfigurationsobjekt (SflexConfig) und stößt die Verarbeitung der variablen Daten (Konfigurationsdatei, Umgebungsvariablen usw.) an, so daß diese nun dem ganzen System zur Verfügung stehen. Dann (Sflex::makeResult) wird das geforderte Modul in der Fabrik (SflexWorkerFactory::makeModule) gebaut. Das Modul (hier SflexModuleEinzel) nimmt seine Parameter entgegen (SflexModuleEinzel::work) und entscheidet daraufhin, welcher Content-Type generiert werden soll. Wiederum von der Fabrik erhält das Modul das dazu passende Ausgabeobjekt (SflexWorkerFactory::makeXslOutput). Von diesem Ausgabeobjekt erhält das Modul, dann das transformierte Ergebnis, welches die Hauptroutine vom Vermittler anfordert und es ausgeliefert werden kann.


Erzeugt am Fri Apr 12 10:54:41 2002 für SfleX von doxygen1.2.14 geschrieben von Dimitri van Heesch, © 1997-2002