Technische Dokumentation xdomea
Transcription
Technische Dokumentation xdomea
Technische Dokumentation xdomea-Viewer Version Version 1.3 , 31.12.2010 Sächsischen Staatsministerium der Justiz und für Europa Hospitalstraße 7 01097 Dresden 31. Dezember 2010 Seite 2/27 Dokumentenhistorie Version Datum Autor Kommentar 0.9 27.11.2009 Dominique Lopes Initiale Erstellung 1.0 03.12.2009 Dominique Lopes Überarbeitung nach Anmerkungen vom Auftraggeber 1.1 22.12.2009 Dominique Lopes 1.2 13.12.2010 Dominique Lopes 1.3 31.12.2010 Dominique Lopes Abschnitt „3.2 Einrichtung der Entwicklungsumgebung“ überarbeitet, neue Abschnitte „1 Vorwort“ und „3.5 Zusammenstellen der Gesamtanwendung“ hinzugefügt Überarbeitung der Abschnitte „3.2 Einrichtung der Entwicklungsumgebung“, „3.3 Weiterentwicklung des ViewerFrameworks“ und „3.4 Weiterentwicklung der XSLTemplates“ nach Änderungen an der Anwendung Überarbeitung der Abschnitte „3.3 Einrichtung der Entwicklungsumgebung“ und „3.6 Zusammenstellung der Gesamtanwendung“, Abschnitt „3.2 Beschreibung der Projektstruktur“ hinzugefügt 31. Dezember 2010 Seite 3/27 Inhaltsverzeichnis 1 Vorwort 5 2 Funktionsbeschreibung 6 2.1 Anwendungsfälle 6 2.2 Prozesse 8 3 technische Umsetzung 10 3.1 Voraussetzungen zum Entwickeln 10 3.2 Beschreibung der Projektstruktur 11 3.3 3.3.1 3.3.2 3.3.3 3.3.4 Einrichtung der Entwicklungsumgebung Einstellungen für Maven Einrichtung der Target-Plattform Zusammenstellung der benötigten Maven-Artefakte Einrichtung der Eclipse-IDE 13 13 14 15 15 3.4 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 Weiterentwicklung des Suite-Frameworks technische Basis Modularisierung Beschreibung des Projekts: de.xoev.xdomea.suite.core Beschreibung des Projekts: de.xoev.xdomea.viewer.plugin Erweiterungsmöglichkeiten 15 15 16 16 22 23 3.5 3.5.1 Weiterentwicklung der XSL-Templates Einsatz von JavaScript 23 25 3.6 Zusammenstellen der Gesamtanwendung 26 4 Lizenzierung 27 31. Dezember 2010 Seite 4/27 Abbildungsverzeichnis Abbildung Abbildung Abbildung Abbildung Abbildung Abbildung Abbildung Abbildung Abbildung Abbildung Abbildung Abbildung 1: Anwendungsfalldiagramm für den xdomea-Viewer ....................... 6 2: Aktivitätsdiagramm des xdomea-Viewers .................................... 8 3: Aufteilung des xdomea-Viewers in Module ................................ 10 4: Ornderstruktur des Gesamtprojektes ........................................ 11 5: Einordnung und Abhängigkeiten zwischen den Eclipse-Projekten .. 13 6: Klassendiagramm Paket de.xoev.xdomea.suite.configuration ....... 17 7: Schema der Konfigurationsdatei .............................................. 19 8: Klassendiagramm Paket de.xoev.xdomea.suite.modules .............. 20 9: Klassendiagramm Paket de.xoev.xdomea.suite.modules.validation 21 10: Aufteilung der HTML-Darstellung (optisch) ............................... 24 11: Aufteilung der HTML-Darstellung in Frames .............................. 24 12: barrierefreie Darstellung einer xdomea-Nachricht .................... 26 31. Dezember 2010 Seite 5/27 1 Vorwort Dieses Dokument beschreibt die Funktionsweise, technische Umsetzung und Lizensierung des xdomea-Viewers. Es richtet sich an Programmierer, die den xdomea-Viewer anpassen oder zu dessen weiteren Entwicklung beitragen möchten. Um mit diesem Dokument arbeiten zu können werden Kenntnisse in der XSLT- und Java-Entwicklung, mit der Eclipse RCP Plattform und Maven vorausgesetzt. Die Beschreibungen zur technischen Umsetzung und insbesondere zur Einrichtung der Entwicklungsumgebung und des Exports der Anwendung gehen daher nur bedingt auf die Verwendung dieser Software-Komponenten und damit in Zusammenhang stehenden QuellcodeBestandteilen ein. Sofern neue oder vorhandene XSL-Templates (weiter)entwickelt werden, sind ebenfalls Kenntnisse der jeweiligen xdomea-Spezifikation notwendig. 31. Dezember 2010 Seite 6/27 2 Funktionsbeschreibung Der xdomea-Viewer ist eine Anwendung zur Visualisierung der Inhalte einer xdomea-Nachricht. Dazu müssen i. W. drei Funktionen nacheinander ausgeführt werden: die Validierung der anzuzeigenden xdomea-Nachricht die Transformation der XML-Nachricht in eine darstellbare Form die Visualisierung der xdomea-Inhalte in einem nutzerfreundlichen Format 2.1 Anwendungsfälle Die folgende Abbildung zeigt das Anwendungsfall-Diagramm des xdomea-Viewers: Abbildung 1: Anwendungsfalldiagramm für den xdomea-Viewer Die Kernfunktionalität des xdomea-Viewers ist die benutzerfreundliche Darstellung einer xdomea-Nachricht. Dies wird in Abbildung 1 durch den Anwendungsfall „xdomea-Nachricht visualisieren“ dargestellt. Der Anwendungsfall gliedert sich in drei untergeordnete Anwendungsfälle: Zunächst muss die aus einer ZIP-Datei bestehende xdomea-Nachricht extrahiert und in ein vorkonfiguriertes Arbeitsverzeichnis kopiert werden (Anwendungsfall: „xdomea-Nachricht extrahieren“). 31. Dezember 2010 Seite 7/27 Anschließend werden die kopierten Daten unter mehreren Gesichtspunkten überprüft. Zunächst erfolgt eine formale Prüfung der vorliegenden xdomea-ZIP-Datei. Dazu wird die Ordnerstruktur innerhalb der xdomea-ZIP-Datei überprüft. Weiterhin wird der Dateiname gegen einen regulären Ausdruck geprüft um sicherzustellen, dass eine xdomea-konforme Datei vorliegt. Ein zweiter Validierungsschritt prüft, ob die XML-Datei mit den Metadaten für xdomea wohlgeformt ist. Ist dies der Fall, dann wird die XML-Datei gegenüber der konfigurierten xdomea-Spezifikation/Schema auf Validität geprüft. Abschließend erfolgt die Prüfung auf Vollständigkeit, in dem die Existenz der in der XML-Datei referenzierten Dokumente überprüft wird. Danach wird die xdomea-Nachricht mittels XSLT in HTML transformiert und innerhalb eines Browserfensters eingebettet in die Anwendung angezeigt (Anwendungsfall: „xdomea-Nachricht transformieren“). 31. Dezember 2010 Seite 8/27 2.2 Prozesse Mit dem xdomea-Viewer sind die folgenden Aktivitäten ausführbar: Arbeitsverzeichnis auswählen xdomea-Nachricht auswählen und visualisieren Die Aktivitäten und ihre Einbettung in den gesamten Ablauf der Anwendung werden im folgenden Diagramm dargestellt: Abbildung 2: Aktivitätsdiagramm des xdomea-Viewers 31. Dezember 2010 Seite 9/27 Die xdomea-Nachrichten werden in einem konfigurierbaren Arbeitsverzeichnis extrahiert und weiter verarbeitet. Daher muss der Benutzer nach dem Start der Anwendung in einem entsprechenden Dialog ein Arbeitsverzeichnis festlegen. 31. Dezember 2010 Seite 10/27 3 technische Umsetzung Bezüglich der Implementierung wird zwischen dem Suite-Framework und des xdomea-Viewer unterschieden. Das Suite-Framework enthält alle generischen Komponenten zur Ausführung der o. g. Funktionalitäten. Der xdomea-Viewer baut auf dem Suite-Framework auf. Er enthält zusätzlich xdomea-spezifische Dateien und Konfigurationen zur Umwandlung der XML-Nachrichten. Abbildung 3: Aufteilung des xdomea-Viewers in Module 3.1 Voraussetzungen zum Entwickeln Die Entwicklung des xdomea-Viewers erfolgte mit frei verfügbaren Tools. Für die Weiterentwicklung werden daher genau diese Tools benötigt: Java Development Kit 6 (http://java.sun.com/products/archive/) Maven 3 (http://maven.apache.org/download.html) Ant 1.7.1 (http://ant.apache.org/bindownload.cgi) Eclipse 3.6.1 für RCP/Plug-in Entwickler (http://www.eclipse.org/downloads/) Zusätzlich werden für den Export der Quellcodes in eine lauffähige StandaloneAnwendung folgende Komponenten benötigt: die Eclipse SDK 3.6.1 das Delta Pack für Eclipse 3.6.1 das deutsche Babel Language Pack für Eclipse 3.6 (hier genügt BabelLanguagePack-eclipse-de_[Versionsnummer].zip) 31. Dezember 2010 Seite 11/27 Bitte achten Sie beim Herunterladen der Komponenten auf zueinander passende Versionsnummern. Alle Komponenten sind unter http://download.eclipse.org/eclipse/downloads/ erhältlich. 3.2 Beschreibung der Projektstruktur Das Gesamtprojekt besteht aus mehreren Eclipse-Projekten, die als Module einer Parent-POM (Project Object Model) Datei definiert sind. Abbildung 4: Ornderstruktur des Gesamtprojektes Modul-Name de.xoev.xdomea.suite.configtypes de.xoev.xdomea.suite.core de.xoev.xdomea.suite.libs Kurzbeschreibung enthält das Schema der Konfigurationsdatei erzeugt eine Java-Bibliothek mit den Klassen zur Erstellung einer validen Konfigurationsdatei enthält den Code zur Abbildung der Kernfunktionalitäten der Anwendung erzeugt eine Java-Bibliothek Klassen zur Ausführung der Kernfunktionalitäten enthält alle im Kontext der Eclipse-RCP benötigten externen Bibliotheken (u. a. die 31. Dezember 2010 Seite 12/27 de.xoev.xdomea.suite.pluginbase de.xoev.xdomea.suite.target-platform de.xoev.xdomea.viewer de.xoev.xdomea.viewer.plugin Bibliotheken der beiden o. g. Module) erzeuge ein Eclipse-Bundle, dass den Zugriff auf die Klassen der externen Bibliotheken ermöglicht enthält alle generischen Anwendungsteile der Anwendungsoberfläche enthält die Target-Plattform existiert zur Vereinfachung des Builds der Anwendung enthält die Produkt-Definition des xdomea-Viewers erzeugt die ausführbare Anwendung enthält alle für den xdomeaViewer spezifischen Anwendungsteile der Oberfläche erzeugt das Eclipse-Plugin des xdomea-Viewers Die Module haben bestimmte Abhängigkeiten untereinander. Die folgende Abbildung stellt diese Abhängigkeiten dar: 31. Dezember 2010 Seite 13/27 Abbildung 5: Einordnung und Abhängigkeiten zwischen den Eclipse-Projekten 3.3 Einrichtung der Entwicklungsumgebung Auf dem Entwicklungs-PC muss das JDK und Maven in mindestens den o. g. Versionen installiert sein. Weiterhin muss die Eclipse-IDE in einen beliebigen Ordner extrahiert worden sein. Es bietet sich an das M2Eclipse-Plugin zur Installation der Eclipse-IDE hinzuzufügen. Nutzen Sie hierzu die Eclipse UpdateSite http://m2eclipse.sonatype.org/sites/m2e 3.3.1 Einstellungen für Maven Achten Sie darauf, dass die folgenden beiden Repositories in ihrer MavenKonfigurationsdatei (in der Datei {NUTZERVERZEICHNIS}/.m2/settings.xml) angegeben wurden. 31. Dezember 2010 Seite 14/27 […] <repository> <id>tycho</id> <url>http://mvnrepository.com/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> <repository> <id>helios</id> <layout>p2</layout> <url>http://download.eclipse.org/releases/helios</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> […] Sollten diese Repositories nicht vorhanden sein, fügen Sie sie bitte hinzu. 3.3.2 Einrichtung der Target-Plattform Für den Export der Quellcodes in eine Anwendung wird eine sogenannte TargetPlattform benötigt. Die Target-Plattform wird genutzt um die Abhängigkeiten der Anwendung zu benötigten Eclipse-Plugins aufzulösen und diese beim Export zusammenzustellen. Nach der Installation der Eclipse-IDE ist die Target-Plattform standardmäßig auf das Installationsverzeichnis gesetzt. D. h. für den Export der Anwendung wird die Entwicklungsumgebung selbst als Target-Plattform genutzt. Da der xdomea-Viewer auf mehreren Betriebssystemen Lauffähigkeit und in deutscher Sprache verfügbar sein soll, reichen die in der standardmäßig gesetzten Target-Plattform installierten Eclipse-Plug-ins nicht aus. Die zusätzlichen Komponenten (die Eclipse SDK, das Deltapack und das Language Pack) müssen daher in einem gesonderten Ordner extrahiert werden. Das Projekt de.xoev.xdomea.suite.target-platform ist bereits so eingerichtet, dass Sie lediglich die zusätzlichen Komponenten im Ordner de.xoev.xdomea.suite.target-platform/eclipse ablegen müssen (bspw. unter C:\Projekte\xdomea\de.xoev.xdomea.suite.targetplatform\eclipse). 31. Dezember 2010 Seite 15/27 3.3.3 Zusammenstellung der benötigten Maven-Artefakte Wechseln Sie in der Konsole in das übergeordnete Verzeichnis der Eclipse-Projekte (bspw. unter C:\Projekte\xdomea) und führen Sie die Datei build.bat aus. Hierdurch werden alle benötigen Maven-Artefakte geladen. Gleichzeitig wird eine ausführbare Version der Anwendung erstellt und im Projekt de.xoev.xdomea.viewer im Ordner de.xoev.xdomea.viewer /target abgelegt (bspw. unter C:\Projekte\xdomea\de.xoev.xdomea.suite. viewer \target\win32.win32.x86\eclipse). Dieser Vorgang kann v. a. bei der erstmaligen Ausführung und in Abhängigkeit der Leistungsfähigkeit ihres Systems eine Weile in Anspruch nehmen. 3.3.4 Einrichtung der Eclipse-IDE Fügen Sie alle Eclipse-Projekte nun zu Ihrem Eclipse Workspace hinzu. Nutzen Sie hierzu jeweils den Import-Assistenten „Existing Projects into Workspace“ der Eclipse-IDE und folgen Sie den Anweisungen auf dem Bildschirm. Im Anschluss müssen Sie die zuvor eingerichtete Target-Plattform in Eclipse aktivieren. Dies erreichen Sie, in dem Sie die Datei helios.target aus dem Projekt de.xoev.xdomea.suite.target-platform öffnen und im Editor für die Target-Platform-Definition den Link "Set as Target-Plattform" (oben rechts) betätigen. Achtung: es ist äußerst wichtig, dass die Targetplatform in der Eclipse-IDE mit der von Maven genutzten identisch ist, da sonst schnell Konflikte bei den PluginAbhängigkeiten auftreten können. Daher ist der o. g. Schritt unbedingt auszuführen! Ihre Entwicklungsumgebung ist damit vollständig eingerichtet. In den folgenden Abschnitten werden die beiden importieren Eclipse-Projekte eingehend beschrieben. Anweisungen zum Export der Anwendung erhalten Sie in Abschnitt „3.6 Zusammenstellen der Gesamtanwendung“. 3.4 Weiterentwicklung des Suite-Frameworks 3.4.1 technische Basis Das Suite -Framework wurde auf Basis von Java SE 6 implementiert. Die Oberflächengestaltung setzt auf der Eclipse RCP auf. Zum Extrahieren der relevanten Daten aus den xdomea-Nachrichten wird die Bibliothek Commons Compress eingesetzt. Zur Validierung und Transformierung der in den xdomea- 31. Dezember 2010 Seite 16/27 Nachrichten enthaltenen XML-Dateien wird Saxon-HE eingesetzt. Log-Ausgaben werden durch die Nutzung von Log4j realisiert. 3.4.2 Modularisierung Die Gesamtheit der Quellcodes ist in mehrer Eclipse-Projekte aufgeteilt: zum einen in das Projekt de.xoev.xdomea.suite.core, das die Kernfunktionalitäten (Extrahieren, Validieren, Transformieren) enthält. Zum anderem in die weiteren Projekte, die i. d. R. Quellcodes für die Darstellung als RCP-Anwendung enthalten. 3.4.3 Beschreibung des Projekts: de.xoev.xdomea.suite.core Das Suite-Framework besteht in Anlehnung an die wesentlichen Funktionalitäten aus folgenden Modulen: Extrahierungsmodul: extrahiert die ZIP-Datei einer xdomea-Nachricht mit Hilfe von Commons Compress in das Arbeitsverzeichnis Validierungsmodul: prüft die xdomea-Nachricht auf Vollständigkeit und formale Richtigkeit Transformationsmodul: transformiert mit Hilfe von Saxon die XMLDatei einer xdomea-Nachricht Kopiermodul: kopiert ggf. benötigte Ressourcen an einen beliebigen Speicherort Visualisierungsmodul: fügt die zuvor genannten Module zur Visualisierungsfunktionalität zusammen Weiterhin existiert ein Konfigurationsservice, über den die Modulen die nötigen Informationen abfragen können. Implementierung Die Implementierung der Anwendung erfolgt im Namensraum de.xoev.xdomea.suite. Im Folgenden werden die wichtigsten Ausschnitte der Implementierung dargestellt. Tiefergehende Informationen erhalten Sie aus der JavaDoc und dem kommentierten Quellcode. 31. Dezember 2010 Seite 17/27 Konfigurationsservice Das Paket de.xoev.xdomea.suite.configuration enthält alle Klassen zur Verarbeitung der Funktionalität der Anwendung. Die folgende Abbildung zeigt das Klassendiagramm dieses Pakets. Abbildung 6: Klassendiagramm Paket de.xoev.xdomea.suite.configuration Die Anwendung ist darauf ausgelegt mehrere Konfigurationen (eine für jede xdomea-Version) zu unterstützen. Die Konfiguration wird nach dem Start der Anwendung von der Utility-Klasse ConfigurationParser ausgelesen und in mehreren Instanzen der Klassen Configuration, VisualisationVariant und CopyInformationen im Hauptspeicher bereitgestellt. Über die SingletonKlasse ConfigurationService haben andere Programmteile die Möglichkeit auf die Konfiguration zuzugreifen. Weiterhin ist es möglich geänderte Konfigurationseinstellungen zu speichern. Das Auslesen und Speichern einer Konfigurationsdatei ist mit XMLBeans umgesetzt. Konfigurationsmöglichkeiten Um das Suite-Framework möglichst Flexibel zu halten, sind folgende Parameter konfigurierbar: unterstützte xdomea-Versionen die für die Validierung zu verwendenden XML-Schemata zu jeder Version 31. Dezember 2010 Seite 18/27 die für die Transformierung zu verwendenden XSL-Templates für verschiedene Validierungsvarianten zu jeder Version die für die Visualisierung benötigten Ressourcen zu jeder Version Zur Speicherung der Konfiguration wird eine XML-Datei verwendet, die einem zuvor entwickelten Schema folgt. Im Folgenden ist ein Beispiel der Konfigurationsdatei zu sehen: <?xml version="1.0" encoding="UTF-8"?> <xdomeaViewer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="configuration.xsd"> <configuration> <xdomeaVersion versionsNr="V2.1.0"> <schemas>./xsd</schemas> <visualisation> <variant id="htmlVariante" name="HTML"> <template>./xslt/main.xsl</template> <copyIntructions> <basepath>./xslt</basepath> <includes>[img|css|js]/*</includes> <excludes>Kopie*</excludes> </copyIntructions> </variant> </visualisation> </xdomeaVersion> <xdomeaVersion versionsNr="V2.0.1"> ... </xdomeaVersion> </configuration> </xdomeaViewer> Die folgende Abbildung zeigt das zur XML-Datei passende Schema: 31. Dezember 2010 Seite 19/27 Abbildung 7: Schema der Konfigurationsdatei 31. Dezember 2010 Seite 20/27 Visualisierung Die Kernfunktionalität der Anwendung wurde in mehrere in sich geschlossene Module aufgeteilt. Diese Module sind unterhalb des Pakets de.xoev.xdomea.suite.modules angesiedelt. Das ValidationModul ist hierbei eine Ausnahme (siehe folgende Abschnitt). Die folgende Abbildung zeigt das Klassendiagramm des Pakets. Abbildung 8: Klassendiagramm Paket de.xoev.xdomea.suite.modules 31. Dezember 2010 Seite 21/27 Alle Module implementieren die Schnittstelle Module. Dieses erzwingt das Vorhandensein der Methoden setInput und process. Mit setInput wird die zu verarbeitende Ressource gesetzt, während process die Modul-spezifische Verarbeitung vornimmt. Zur Vereinfachung ist in der abstrakten Klasse AbstractModule die Methode setInput bereits implementiert. Alle konkreten Ausprägungen der Schnittstelle Module beerben die Klasse AbstractModule und müssen daher lediglich die Methode process implementieren. Validierung Da die Validierung einer xdomea-Nachricht verhältnismäßig komplex ist, wurden die dafür nötigen Klassen in einem gesonderten Paket unterhalb von de.xoev.xdomea.suite.modules zusammengefasst. Die folgende Abbildung zeigt das Paket de.xoev.xdomea.suite.modules.validation. Abbildung 9: Klassendiagramm Paket de.xoev.xdomea.suite.modules.validation 31. Dezember 2010 Seite 22/27 Die Validierungsfunktionalität der Anwendung wurde in mehrere Validator-Klassen aufgeteilt. Diese Klassen implementieren die Schnittstelle Validator. Dieser erzwingt das Vorhandensein der Methode validate. Ein Teil der ValidatorKlassen überprüfen das Verzeichnis in das die xdomea-Nachricht extrahiert wurde. Diese Klassen (FilenamesValidator und DirectoryStructureValidator) beerben die abstrakte Klasse DirectoryValidator, die die get- und set-Methoden zum Setzen des zu überprüfenden Verzeichnisses implementiert. Die übrigen ValidatorKlassen implementieren die Schnittstelle Validator direkt. Das ValidationModule fügt die einzelnen Validator-Klassen zur gesamten Validierungsfunktionalität der Anwendung zusammen. 3.4.4 Beschreibung des Projekts: de.xoev.xdomea.viewer.plugin Die Anwendungsoberfläche ist mit Eclipse RCP umgesetzt und baut auf dem Konzept zur Verwendung von Perspektiven, Ansichten und Editoren auf. Eine Beschreibung dieses Konzepts würde den Rahmen dieser technischen Konzeption sprengen. Daher sei an dieser Stelle auf die im Internet zu findende umfangreiche Dokumentation der Eclipse RCP verwiesen.1 Im Folgenden werden lediglich die an der RCP-Oberfläche durchgeführten Anpassungen beschrieben. Detaillierte Informationen erhalten Sie in der JavaDoc und im kommentierten Quellcode der Anwendung. Import-Assistent Der Nutzer wird beim Visualisieren einer xdomea-Nachricht durch einen ImportAssistenten unterstützt. Der Quellcode für den Import-Assistenten befindet sich im Paket de.xoev.xdomea.viewer.gui.wizards. Innerhalb dieses Pakets existieren die beiden Klassen ImportMessageWizard und ImportMessageWizardPage. Die Klasse ImportMessageWizard enthält die Funktionalitäten zum Durchführen der nötigen Verarbeitung zum Visualisieren der xdomea-Nachricht. Die Klasse ImportMessageWizardPage erzeugt die EingabeElemente im zweiten Schritt des Import-Assistenten. 1 http://wiki.eclipse.org/Rich_Client_Platform (Eclipse Wiki) und http://www.vogella.de/articles/RichClientPlatform/article.html (Tutorial) 31. Dezember 2010 Seite 23/27 Konfigurationsseite „xdomea-Viewer“ Die Einstellungen zum xdomea-Viewer lassen sich in einer gesonderten Konfigurationsseite setzen. Im Paket de.xoev.xdomea.viewer.gui.preferences existiert hierzu die Klasse XdomeaViewerPrefrerencePage. Diese Klasse erzeugt alle Eingabe-Elemente der Konfigurationsseite zur Pflege der xdomea-Versionen, für die die Anwendung konfiguriert ist. Weiterhin übernimmt sie die Prüfung und Speicherung der damit in Verbindung stehenden Nutzereingaben. Die Eventlistener für die Buttons zum Hinzufügen, Bearbeiten und Löschen von Konfigurationen für xdomea-Versionen befinden sich im untergeordneten Paket de.xoev.xdomea.viewer.gui.preferences.listeners. Im Paket de.xoev.xdomea.viewer.gui.preferences befindet sich weiterhin die Klassen EditVersionDialog und EditVisualisationDialog. In diese Klassen sind alle Eingabe-Elemente der Dialoge zur Einstellung der Konfiguration für eine bestimmte xdomea-Version ausgelagert. Außerdem enthält sie Funktionen zur Prüfung und Speicherung der damit in Verbindung stehenden Nutzereingaben. Häufig mit Textfeldern in Verbindung stehende Funktionalitäten wie das Setzen von Labels und das Validieren der Nutzereingabe wurde in das Paket ausgelagert. 3.4.5 Erweiterungsmöglichkeiten Bei Erweiterungen kann auf bestehende Module zurückgegriffen werden. Insbesondere die Nutzung der fertigen Module UnzipModule und ValidationModule ist hierbei zu empfehlen, da so eine solide und gleichmäßige Ausgangsbasis für die weitere Verarbeitung der xdomea-Nachrichten geschaffen wird. Die Erweiterungen zum xdomea-Viewer sind gesondert in weiteren Modulen zu implementieren. Zusätzliche Konfigurationseinstellungen sind – der bestehenden Implementierung folgend – in der im in vorhergehenden Abschnitt vorgestellten Konfigurationsdatei zu hinterlegen. Hierzu ist das Schema zu erweitern und die Implementierung der mit der Konfiguration verbundenen Klassen anzupassen. Um die neuen Funktionalitäten über die Benutzeroberfläche verfügbar zu machen, können die Funktionen der Eclipse RCP genutzt werden. 3.5 Weiterentwicklung der XSL-Templates Zur Darstellung der Informationen einer xdomea-Nachricht werden XSL-Templates eingesetzt. Diese Templates transformieren die XML-Datei einer xdomea-Nachricht in eine HTML-Datei. Die Templates befinden sich innerhalb des Projekts de.xoev.xdomea.suite.core unterhalb des Verzeichnisses resources/{XDOMEA_VERSION}/xslt. In diesem Verzeichnis liegen ebenfalls alle für die Visualisierung nötigen Dateien (CSS-, JPG- und JS-Dateien). Die folgende Abbildung zeigt die optisch nachvollziehbare Aufteilung der HTMLDarstellung einer xdomea-Nachricht. 31. Dezember 2010 Seite 24/27 Logo Nachrichten-Daten Tab-Navigation Haupt-Navigation Inhaltsbereich Abbildung 10: Aufteilung der HTML-Darstellung (optisch) Die Ausgabe der Transformation erfolgt in mehreren HTML-Dateien, die durch Verwendung von Frames wieder zusammengesetzt werden. Die Aufteilung der Framesets entspricht aus technischen Gründen hierbei nicht ganz der oben abgebildeten optisch nachvollziehbaren Aufteilung: Abbildung 11: Aufteilung der HTML-Darstellung in Frames Die XSL-Templates bestehen aus einem Haupt-Template und mehreren modular aufgebauten Sub-Templates. In den Sub-Templates wurden die Transformationsregeln zur Darstellung bestimmter Teile der XML-Datei einer xdomea-Nachricht sinnvoll zusammengefasst. Die folgende Tabelle listet die wichtigsten Sub-Templates auf und beschreibt sie in aller Kürze: 31. Dezember 2010 Seite 25/27 Template contentContainer.xsl documentation.xsl elementTranslator.xsl helper.xsl innerContent.xsl leftNavigation.xsl topNavigation.xsl Beschreibung Erstellt den Inhaltsbereich gibt den Hinweis-Text in den Nachricht-Daten aus (in Abhängigkeit zur transformierten Nachricht) Erzeugt die sprechenden Namen für die Navigationspunkte der Haupt- und Tab-Navigation und Eigenschaftsnamen im Inhaltsbereich Enthält Utility-Funktionen erstellt die Elemente im Inhaltsbereich der Seite Erstellt die Haupt-Navigation Erstellt die Tab-Navigation Jedes Sub-Template transformiert die Inhalte eines XML-Fragments in ein HTMLFragment. Diese HTML-Fragmente werden schließlich zu kompletten HTML-Seiten zusammengesetzt. Durch die Aufteilung in ein Haupt- und mehrere Sub-Templates wird eine flexible Erweiterung um und Wiederverwendung von Nachrichtentypen und Basiskomponenten möglich. 3.5.1 Einsatz von JavaScript Grundsätzlich müssen die Transformationsergebnisse des xdomea-Viewers barrierefrei sein. Daher wird JavaScript lediglich zur Steigerung der Benutzerfreundlichkeit der Anwendung eingesetzt. In der barrierefreien Version der Anwendung werden die Inhalte nacheinander heraus gerendert. Die Navigation zwischen den zahlreichen Informationen erfolgt mit Inhaltsverzeichnissen und Sprungmarken. Die folgende Abbildung zeigt exemplarisch die barrierefreie Darstellung einer xdomea-Nachricht. 31. Dezember 2010 Seite 26/27 Abbildung 12: barrierefreie Darstellung einer xdomea-Nachricht Die benutzerfreundliche Version der Darstellung basiert auf dem gezielten Ausund Einblenden von Information, sodass beim Benutzer der Eindruck entsteht er navigiere durch eine Anwendung. Dies wird mit JavaScript und entsprechenden CSS-Definitionen erreicht. Sollte der Benutzer kein JavaScript aktiviert haben, dann werden alle Informationen untereinander ausgegeben. Wie bei der barrierefreien Darstellung einer xdomea-Nachricht werden die Inhalte nacheinander heraus gerendert. Am Ende des HTML-Dokuments werden per JavaScript-Injection Funktionen zum Ein- und Ausblenden von HTML-Fragmenten auf die Eventlistener bestimmter Elemente gelegt. Hierzu kommt jQuery (http://jquery.com/) in der Version 1.3.2 zum Einsatz. 3.6 Zusammenstellen der Gesamtanwendung Für die Zusammenstellung wird die Nutzung von Ant, Maven 3 und der bereits vorkonfigurierten Buildskripte und Project-Object-Model Dateien empfohlen. Wechseln Sie in der Konsole in das übergeordnete Verzeichnis der Eclipse-Projekte (bspw. unter C:\Projekte\xdomea) und führen Sie die Datei build.bat aus. Hierdurch wird eine ausführbare Version der Anwendung erstellt und im Projekt de.xoev.xdomea.viewer im Ordner de.xoev.xdomea.viewer /target abgelegt (bspw. unter C:\Projekte\xdomea\de.xoev.xdomea.suite. viewer \target\win32.win32.x86\eclipse). 31. Dezember 2010 Seite 27/27 4 Lizenzierung Der xdomea-Viewer und die Umsetzung zur Darstellung der xdomea-Nachrichten bauen auf folgende Software auf: Eclipse RCP 3.6 (Eclipse Public License 1.0) Log4J (Apache Software License 2.0) Commons Compressions (Apache Software License 2.0) Commons CLI (Apache Software License 2.0) XMLBeans 2.3.0 (Apache Software License 2.0) Saxon-HE 9.2 (Mozilla Public License 1.1) jOuery 1.3.2 (Massachusetts Institute of Technology License) Die Lizensierung der o. g. Softwarebestandteile bleibt bestehen. Alle in diesem Dokument beschriebenen und die restlichen zum xdomea-Viewer gehörenden Quellcodes und sonstigen Dateien sind unter der EUPL (http://ec.europa.eu/idabc/eupl) lizenziert.