Bohnen für XML: XMLBeans

Zuerst wird XMLBeans von der Apache-Website heruntergeladen und installiert. Dabei sollte man nicht vergessen, den Installationsort in der Umgebungsvariablen XMLBEANS_HOME einzustellen und das Verzeichnis $XMLBEANS_HOME/bin aus der Distribution dem eigenen Pfad hinzuzufügen. Dadurch stehen die XMLBeans-Befehle zur Verfügung, darunter auch der Schema-Compiler „scomp“, der wichtigste aller Befehle.

Wird dann


scomp -out sites.jar sites.xsd

ausgeführt, sieht man:


Scomp hat ein Typensystem erstellt, dafür Java-Code erzeugt und diesen kompiliert. Ausgegeben wird lediglich die Datei „sites.jar“, da scomp mangels anderer Instruktionen nur die vorkompilierte jar-Datei erzeugt. Will man die Herkunft des so erzeugten Codes anzeigen, kann man


scomp -srconly -src srcdir sites.xsd

ausführen. Alle generierten Klassen befinden sich im Paket com.example.sites.site, das aus dem Ziel-Namespaces des Schemas abgeleitet wurde. Dies wird in den Anfangszeilen der Schemadatei definiert:


Wenn kein Ziel-Namespace für das Schema vorhanden ist, erscheinen die erzeugten Klassen in einem Paket namens noNamespace. Für das Beispiel gibt es eine Klasse SitesDocument sowie Klassen für alle im Schema definierten Typen: Sites, Site, Comment, Rating und Email. Alle generierten Klassen erweitern die XMLBeans-Foundation Class XMLObject. Später mehr dazu. Nun wird erst einmal ein XML-Dokument geparst:


Fertig. Probleme beim Parsen geben eine XmlException aus. Nun kann die Verarbeitung beginnen. Alle generierten Klassen haben eine statische Factory, um die Erstellung – entweder durch Parsen oder qua Programm – von Instanzen zu ermöglichen. In diesem Beispiel wurde die einfachste Parse-Methode der Factory verwendet.

Themenseiten: Anwendungsentwicklung, Software, XML

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Bohnen für XML: XMLBeans

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *