Apache XMLBeans

Apache XMLBeans
Apache XMLBeans
Apache XMLBeans Logo.gif
Maintainer David Bau, Cesar Andrei, Patrick Calahan et.al.[1]
Aktuelle Version 2.5.0
(14. Dezember 2009)
Betriebssystem plattformübergreifend
Programmier­sprache Java (Programmiersprache)
Kategorie XML-Datenbindung
Lizenz Apache-Lizenz 2.0
xmlbeans.apache.org

XMLBeans ist ein Softwarepaket für Java, welches es ermöglicht, Daten aus einer XML-Schema-Instanz heraus automatisch an Java-Klassen zu binden. Diesen Vorgang nennt man XML-Datenbindung. Dies ermöglicht ein Arbeiten mit XML-Dokumenten, ohne dass der Programmierer Schnittstellen zur Verarbeitung von XML wie SAX oder DOM verwenden muss. XMLBeans ist ein Teil des Apache XML Projekts.

Inhaltsverzeichnis

Funktionsweise

Apache XMLBeans verwendet eine XML Schema Definition, um Java Klassen und Schnittstellen zu generieren. Falls das XML Schema nicht vorhanden sein sollte kann Apache XMLBeans ein Schema basierend auf einem XML Dokument erzeugen.

Die von Apache XMLBeans generierten Java Klassen und Interfaces können - wie bei den Java Beans geläufig - mittels Getter- und Setter-Methoden bearbeitet werden. Darüber hinaus kann von Java aus auch auf den Rest der XML Informationen wie die Reihenfolge der Elemente im XML Dokument zugreifen. XMLBeans beherrscht dabei alle Fähigkeiten von XML Schemas.

Apache XMLBeans bietet neben den Entwicklungswerkzeugen zum Generieren von XML Dokumenten und Java Klassen folgende drei Programmierschnittstellen:

XmlObject
Die aus dem XML Schema generierten Java Klassen leiten von XmlObject ab. Diese enthalten streng typisierte Getter und Setter Methoden für alle im XML Dokument definierten Elemente. Komplexe XML Typen sind Referenzen auf andere XmlObjekte. XmlObject selbst bietet Methoden, um das Objekt (inklusive seiner Referenzen) zu validieren, zu durchsuchen oder in ein XML zu verwandeln.
XmlCursor
Repräsentiert eine Position in der XML Instanz und bieten die Möglichkeit auf das XML Infoset zuzugreifen. Mit Hilfe des XmlCursors ist es etwa möglich XQuery und XPath gegen das XML Dokument auszuführen, das XML Dokument selbst durch Einfügen, Verschieben, Kopieren und Löschen von XML Elementen zu verändern oder auf ganze Container-Elemente, Attribute, Prozessing-Instructions und Kommentare zuzugreifen.
SchemaType
Repräsentiert das hinter den XmlObjects liegende XML Schema als Objekt. Darmit lassen sich beispielsweise XML Instanzen erzeugen oder die Reihenfolge der Elemente auslesen.

Beispiel

Das folgende Beispiel basiert auf einer XML Schema Definition für die Beschreibung eines Landes:

 <?xml version="1.0" encoding="UTF-8"?>
 <xs:schema targetNamespace="http://www.openuri.org/domain/country/v1"
            xmlns:tns="http://www.openuri.org/domain/country/v1"
            xmlns:xs="http://www.w3.org/2001/XMLSchema"
            elementFormDefault="qualified"
            attributeFormDefault="unqualified"
            version="1.0">
   <xs:element name="Country" type="tns:Country"/>
   <xs:complexType name="Country">
     <xs:sequence>
       <xs:element name="Name" type="xs:string"/>
       <xs:element name="Population" type="xs:int"/>
       <xs:element name="Iso" type="tns:Iso"/>
     </xs:sequence>
   </xs:complexType>
   <xs:complexType name="Iso">
     <xs:annotation><xs:documentation>ISO 3166</xs:documentation></xs:annotation>
     <xs:sequence>
       <xs:element name="Alpha2" type="tns:IsoAlpha2"/>
       <xs:element name="Alpha3" type="tns:IsoAlpha3"/>
       <xs:element name="CountryCode" type="tns:IsoCountryCode"/>
     </xs:sequence>
   </xs:complexType>
   <xs:simpleType name="IsoCountryCode">
     <xs:restriction base="xs:int">
       <xs:totalDigits value="3"/>
     </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="IsoAlpha2">
     <xs:restriction base="xs:string">
       <xs:pattern value="[A-Z]{2}"/>
       <xs:whiteSpace value="collapse"/>
     </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="IsoAlpha3">
     <xs:restriction base="xs:string">
       <xs:pattern value="[A-Z]{3}"/>
       <xs:whiteSpace value="collapse"/>
     </xs:restriction>
   </xs:simpleType>
 </xs:schema>

Aus diesem Schema können jetzt mit den XMLBeans Werkzeugen scomp (Schema Compiler) oder xmlbeans (ein Ant-Task) Java-Klassen erzeugt werden, welche XML Daten, die dem gegebenen Schema entsprechen, erzeugen und manipulieren können. Der folgende Java-Code zeigt wie damit ein XML-Dokument erzeugt und validiert werden kann:

 import org.openuri.domain.country.v1.Country; //die aus dem XML Schema erzeugte Country Klasse
 import org.openuri.domain.country.v1.Iso; //die aus dem XML Schema erzeugte Iso Klasse
 public class CountrySample {
   public static void main(String[] args) {
     Country country = Country.Factory.newInstance();
     country.setName("Liechtenstein");
     country.setPopulation(35446);  // siehe http://de.wikipedia.org/wiki/Liechtenstein
 
     // XML Ausgabe des Country Objektes
     System.out.println(country.xmlText());
 
     // Prüfung ob das Country Objekt valide ist (ist invalid, weil es keine Iso hat)
     System.out.println ("Country ist " + (country.validate() ? "valid" : "invalid"));
 
     // Füge den komplexen Typ Iso dem Country Objekt hinzu
     Iso iso = country.addNewIso();
     iso.setAlpha2("LI"); // siehe http://de.wikipedia.org/wiki/ISO-3166-1-Kodierliste
     iso.setAlpha3("LIE");
     iso.setCountryCode(438);
 
     // XML Ausgabe des Country Objektes
     System.out.println(country.xmlText());
 
     // Prüfung ob das Country Objekt valide ist (ist jetzt valide)
     System.out.println ("Document is " + (country.validate() ? "valid" : "invalid"));
   }
 }

Die aus dem XML-Schema generierten Klassen Country und Iso können auch erst zur Laufzeit dynamisch mittels org.apache.xmlbeans.XmlBeans.compileXsd erzeugt werden.

Geschichte

Apache XMLBeans wurde 2003 unter dem Namen XMLBeans von David Bau gegründet, als er für BEA Systems arbeitete. Es basierte auf XMLMaps, dem früheren XML-Binding Framework des BEA WebLogic Servers. XMLBeans war ursprünglich ein proprietärer Bestandteil des BEA WebLogic Workshop Frameworks. Am 27. Januar 2003 wurde es erstmals als Vorschauversion vorgestellt. Am 24. September desselben Jahres spendete BEA XMLBeans der Apache Software Foundation, wo es als Apache Incubator Projekt angenommen wurde.

Am 23. April 2004 wurde die Version 1.0.2 als erste Version bei Apache fertiggestellt. Am 25. Juni desselben Jahres wurde XMLBeans Apache Top Level Projekt und veröffentlichte am 30. Juni die Version 2.0. Sie enthielt unter anderem folgende Verbesserungen: Verbesserte XQuery/XPath Integration, DOM Level 2 Support, verbesserte Fehlerbehandlung, Möglichkeiten die generierten XMLBeans zu erweitern, Performanceverbesserungen, Unterstützung für Java 5 Generics, Generierung von XML Instanzen aus XML Schemas und umgekehrt.[2]

Die aktuelle Version ist Apache XMLBeans 2.5 vom 14. Dezember 2009. Sie brachte unter anderm einfaches Mappen von simplen Typen auf beliebige Java-Klassen sowie viele kleine Erweiterungen und Fehlerbehebungen.[2]

Alternativen

Die folgenden Java XML Binding Frameworks können als Alternative zu Apache XMLBeans verwendet werden:

Weblinks

Einzelnachweise

  1. XMLBeans Community - XMLBeans Committers
  2. a b XMLBeans News

Wikimedia Foundation.

Игры ⚽ Поможем написать реферат

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Apache Axis2 — Apache Axis Entwickler: Apache Software Foundation Ak …   Deutsch Wikipedia

  • XMLBeans — Infobox Software name = Apache XMLBeans caption = developer = Apache Software Foundation latest release version = 2.4.0 latest release date = release date|2008|07|08 latest preview version = latest preview date = operating system = Cross platform …   Wikipedia

  • XMLBeans — ist ein Softwarepaket zum Einbinden von XML Dateien in Java. XMLBeans ist ein Teil des Apache XML Projekts. Es wird eine XML Schema Definition verwendet, um Klassen und Schnittstellen zu kompilieren. Daraus entstehen dann Java Objekte, die… …   Deutsch Wikipedia

  • Apache Commons — проект фонда Apache Software Foundation (далее ASF), имеющий своей целью разработку и поддержку открытого программного обеспечения повторного использования на языке Java, т.е. библиотек Java. В более узком смысле Apache Commons это «большая… …   Википедия

  • Apache HTTP Server — Original author(s) Robert McCool Developer(s) Apache Software Foundation Initial release …   Wikipedia

  • Apache OFBiz — Screenshot  …   Wikipedia

  • Apache — HTTP Server Логотип Apache Тип Веб сервер Разработчик Apache …   Википедия

  • Apache Maven — Тип Автоматизация сборки Разработчик …   Википедия

  • Apache License — логотип Apache Автор Apache Software Foundation Версия 2.0 Издатель Apache Software Foundation Опубликована …   Википедия

  • Apache Derby — Тип Реляционная СУБД Автор Cloudscape Inc (а затем IBM) Разработчик …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”