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.

Documents pareils