XML-Dateien open source kompiliert!

Just compile it!

Frank Bensberg und Lofi Dewanto

In der heutigen Anwendungswelt, in der XML-Dateien stetig an Bedeutung gewinnen, muss jeder Entwickler seine XML-Werkzeuge sicher beherrschen. Es sind zahlreiche Werkzeuge unterschiedlichster Art vorhanden. Das Werkzeug XMLC hat einige Besonderheiten, die es sich lohnt, genauer anzusehen.

Steckbrief

Name: XMLC – XML Compiler.

Lizenz: LGPL.

Adresse: xmlc.enhydra.org

Zubereitungszeit nach dem Download: 30 Minuten für einfache Anwendungen, 60 Minuten für komplexere Vorhaben (z.B. für die Verwendung von XMLC in Webanwendungen).

Geeignet für: Kompilierung der XML-Dateien (HTML, WML, VoiceXML, XHTML usw.) in der Entwicklungszeit, sodass eine statische Überprüfung in der Entwicklungszeit stattfindet. Entwicklung der Präsentationsschicht von Webanwendungen. Am besten geeignet in Verbindung mit Enhydra Application Framework oder Barracuda MVC Framework.

Zutaten: Funktion und Architektur

Die Problematik bei der Erstellung von JSP-Seiten mit HTML-Editoren ist vielen bekannt. Die Verwendung von einfachen HTML-Editoren beinhaltet meist die Gefahr, dass JSP-Bereiche nicht erkannt bzw. unbeabsichtigt gelöscht werden. Dagegen wird ein HTML-Editor mit eingebauter JSP-Unterstützung sicherlich helfen. Mit Einführung von Tag-Libs wurde endlich das Chaos, wie beispielsweise die Unterbringung von Java-Codes in HTML-Seiten, eingedämpft. Jedoch, wer kennt nicht diese Situation, mal eben einen Code in eine JSP-Seite einzufügen. Dank JSP-Standard-Tag-Libs und Struts-Tag-Libs wird die Notwendigkeit, eigene Tags zu schreiben, immer geringer. Was ist jedoch mit der Aufgabenverteilung bei großen Projekten? Welche Web- bzw. HTML-Designer können mit JSPs bzw. Tag-Libs etwas anfangen? Aus diesen Überlegungen heraus ist das Werkzeug XMLC (XML Compiler) entstanden.

Das Prinzip von XMLC ist einfach: XMLC kompiliert die HTML-, WML- bzw. XML-Dateien in Java-Klassen, auf die anschließend per DOM (Document Object Model) zugegriffen werden können. XMLC verwendet für die Kompilierung der XML-Datei den XML-Parser von Tidy, Swing oder Xerces. Die Trennung von HTML-Designern und Java-Entwicklern ist dadurch gewährleistet, da die HTML-Designer tatsächlich nur mit reinen HTML-Seiten und nicht mit Java-Code arbeiten können.

Das Werkzeug XMLC kann nicht nur in einer Webanwendungs-Entwicklung Verwendung finden, sondern auch überall, wo statisches Kompilieren von XML-Dateien in der Entwicklungszeit notwendig ist. Anschließend kann in der Laufzeit ausschließlich auf die Java-Dateien per DOM zugegriffen werden. Abpictureung 1 zeigt die Architektur von XMLC überblickartig, die in dem folgenden Abschnitt weiter erläutert wird.

Abb. 1: Architektur von XMLC

Zum Download steht XMLC entweder als Standalone oder integriert im Enhydra-Applikationsserver zur Verfügung. Die Installation von XMLC-Standalone beschränkt sich auf das Entpacken der einzigen ZIP-Datei. Für die Dokumentation sollten folgende Dateien anschließend ebenfalls entpackt werden: doc/xmlc-base.zip (Basis-Dokumentation) und doc/xmlc-taskdef.zip (Dokumentation der Ant Task-Definition).

Prinzipiell sind vier Schritte notwendig, um XMLC nutzen zu können. Im Folgenden wird HTML als Beispiel genommen (siehe Abb. 1 für die Darstellung der Schritte 1 bis 4).

1. Definition dynamischer HTML-Komponenten: Hierfür bietet XMLC die zwei Attribute id und class an. Das Attribut id definiert eine einzigartige Kennung für eine bestimmte HTML-Komponente. Für eine Gruppierung dieser Komponente wird das Attribut class verwendet. <span id=>-Tag kann für die Darstellung dynamischer Texte eingesetzt werden.

Text

2. Kompilierung der HTML-Seite mit XMLC: Als Ergebnis erhält man die entsprechenden Java-DOM-Klassen. Eine XMLC Option-Datei kann bei Bedarf angelegt werden, durch die mehrere Operationen - vor der eigentlichen Erstellung der Java-Klassen - durchgeführt werden können (Listing 1)

// Diese erzeugte Klasse erweitert HTMLObjectImpl und implementiert
// XMLObject und HTMLObject
public class WelcomeHTML extends org.enhydra.xml.xmlc.html.HTMLObjectImpl
implements org.enhydra.xml.xmlc.XMLObject,
org.enhydra.xml.xmlc.html.HTMLObject {
...
// Diese beiden Methoden kommen aus
// Text
public HTMLElement getElementUserName();
public void setTextUserName(String text);

// Diese Methode stammt aus
// 
public HTMLInputElement getElementUserInput();

4. Verwendung der Java-DOM-Klasse in eigener Anwendung:


XMLC ist ein einfaches, jedoch sehr nützliches XML-Werkzeug. Die Idee, XML-Dateien in der Entwicklungszeit zu kompilieren, bringt einige Vorteile mit sich: statische Überprüfung und Geschwindigkeitsvorteil für den Zugriff auf komplexere XML-Dateien. Für die Entwicklung von Webanwendungen mit XMLC empfiehlt sich die Verwendung des Enhydra Application Framework oder des Barracuda MVC Framework, die als entsprechende Präsentationsschicht dienen können. Zur Vereinfachung können alle genannten Produkte auf einmal unter dem Enhydra-Applikationsserver heruntergeladen und installiert werden.

Lofi Dewanto arbeitet als wissenschaftlicher Mitarbeiter am Institut für Wirtschaftsinformatik der Westfälischen Wilhelms-Universität Münster. Derzeit entwickelt er eine Open Source E-Learning-Plattform mit Open Source-J2EE-Technologien wie Enhydra, JOnAS u.v.a.m. Sein Hauptinteresse liegt in der Open Source Community und insbesondere in Open Source-Technologien, die sich im Java-Umfeld befinden.

Geschrieben von
Frank Bensberg und Lofi Dewanto
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.