XMLBeans

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
programming language = Java
genre = XML binding
license = Apache License 2.0
website = http://xmlbeans.apache.org

XMLBeans is a Java-to-XML binding framework which is part of the Apache Software Foundation XML project.

Description

XMLBeans is a tool that allows access to the full power of XML in a Java friendly way. The idea is to take advantage of the richness and features of XML and XML Schema and have these features mapped as naturally as possible to the equivalent Java language and typing constructs. XMLBeans uses XML Schema to compile Java interfaces and classes that can then be used to access and modify XML instance data. Using XMLBeans is similar to using any other Java interface/class: with methods like getFoo or setFoo, just as when working with Java. While a major use of XMLBeans is to access XML instance data with strongly typed Java classes there are also APIs that allow access to the full XML infoset (XMLBeans keeps XML Infoset fidelity) as well as to allow reflection into the XML schema itself through an XML Schema Object model.

What Makes XMLBeans Different

# Full XML Schema support.
# Full XML Infoset fidelity.

Full XML Schema support: XMLBeans fully supports XML Schema and the corresponding java classes provide constructs for all of the major functionality of XML Schema. This is critical since often one has no control over the features of XML Schema needed to work with in Java. Also, XML Schema oriented applications can take full advantage of the power of XML Schema and not have to restrict themselves to a subset.

Full XML Infoset fidelity: When unmarshalling an XML instance the full XML infoset is kept and is available to the developer. This is critical because that subset of XML is not easily represented in Java. For example, order of the elements or comments might be needed in a particular application.

Objective

A major objective of XMLBeans has been to be applicable in all non-streaming (in memory) XML programming situations. The developer should be able to compile their XML Schema into a set of Java classes and know that they will be able to:

# use XMLBeans for all of the schemas they encounter.
# access the XML at whatever level is necessary without other tools.

APIs

To accomplish the above objectives, XMLBeans provides three major APIs:

* XmlObject
* XmlCursor
* SchemaType

XmlObject: The java classes that are generated from an XML Schema are all derived from XmlObject. These provide strongly typed getters and setters for each of the elements within the defined XML. Complex types are in turn XmlObjects. For example getCustomer might return a CustomerType (which is an XmlObject). Simple types turn into simple getters and setters with the correct java type. For example getName might return a String.

XmlCursor: From any XmlObject the developer can get an XmlCursor. This provides efficient, low level access to the XML Infoset. A cursor represents a position in the XML instance. The cursor can be moved around the XML instance at any level of granularity needed from individual characters to Tokens.

SchemaType: XMLBeans provides a full XML Schema object model that can be used to reflect on the underlying schema meta information. For example, the developer might generate a sample XML instance for an XML schema or perhaps find the enumerations for an element so that they may be displayed.

All of this was built with performance in mind. Informal benchmarks and user feedback indicate that XMLBeans is extremely fast.

Example

An example of a simple XML Schema Definition to describe a country is given below. ISO 3166 When the schema is compiled into XMLBean classes (e.g., using Ant), it is very easy to create and manipulate XML data that conforms to the schema definition. The following Java code is a simple example that illustrates how an XML document can be created and validated. import org.openuri.domain.country.v1.Country; import org.openuri.domain.country.v1.Iso; public class CountrySample { public static void main(String [] args) { Country country = Country.Factory.newInstance(); country.setName("Denmark"); country.setPopulation(5450661); // from wikipedia :-) // print out country XMLBean as XML System.out.println(country.xmlText()); // check if document is valid - will print "Document is invalid" // because required Iso child element in not in the object System.out.println ("Document is " + (country.validate() ? "valid" : "invalid")); // add child with complex type Iso to make the document valid Iso iso = country.addNewIso(); iso.setAlpha2("DK"); iso.setAlpha3("DNK"); iso.setCountryCode(208); // print out country XMLBean as XML System.out.println(country.xmlText()); // check if document is valid - will print "Document is valid" System.out.println ("Document is " + (country.validate() ? "valid" : "invalid")); } }

History

David Bau initiated the XMLBeans project while he was working for BEA (he now works for Google). He was the chief designer of the tool, and he led the team that designed and implemented XMLBeans 1.0.

XMLBeans started on the grounds of XMLMaps, an XML binding tool included in previous BEA WebLogic products. XMLBeans was originally developed as part of the proprietary BEA WebLogic Workshop Framework, but it was obvious from interviews conducted when it was first announced on January 27, 2003, that BEA wanted it to become an open standard. At that time it was not decided which organisation BEA wanted to involve in the standardisation effort. Later that year it was donated to the Apache Software Foundation.

* January 27, 2003: BEA announces XMLBeans as a technology preview.
* September 24, 2003: BEA donates XMLBeans to the Apache Software Foundation where it joins the Apache Incubator Project.
* April 23, 2004: XMLBeans Version 1.0.2 is released. This is the first release from the incubator project.
* June 25, 2004: XMLBeans graduated out of the Apache Incubator Project to become top level project.
* June 30, 2005: XMLBeans Version 2.0 is released.
* November 16, 2005: XMLBeans Version 2.1 is released.
* June 23, 2006: XMLBeans Version 2.2 is released.
* June 1, 2007: XMLBeans Version 2.3 is released.

See also

* Java Architecture for XML Binding (JAXB)
* xmlbeansxx — XML Data Binding code generator for C++

External links

* [http://xmlbeans.apache.org/ Project homepage]
* [http://xmlbeans.apache.org/resources/index.html XMLBeans resources]
* [http://xml.apache.org/ The Apache XML project]
* [http://xmlbeans.apache.org/docs/2.0.0/guide/antXmlbean.html XMLBean Ant task]
* [http://xmlbeans.googlepages.com/ XML Binding Resources - xbeans of popular schemas]


Wikimedia Foundation. 2010.

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

Look at other dictionaries:

  • 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 XMLBeans — Maintainer David Bau, Cesar Andrei, Patrick Calahan et.al.[1] Aktuelle Version 2.5.0 (14. Dezember 2009) …   Deutsch Wikipedia

  • Xmlbeansxx — Infobox Software name= xmlbeansxx developer= TouK maintainer =TouK latest release version= 0.9.1 latest release date= Apr 1, 2008 operating system= Cross platform genre = XML binding license = Apache License 2.0 website=… …   Wikipedia

  • Liste der Dateiendungen/X — In dieser Liste sind übliche Dateinamenserweiterungen aufgelistet, die in einigen Betriebssystemen (wie zum Beispiel Microsoft Windows) zur Unterscheidung von Dateiformaten verwendet werden. In anderen Betriebssystemen erfolgt die… …   Deutsch Wikipedia

  • XML Signature — (also called XMLDsig , XML DSig , XML Sig ) is a W3C recommendation that defines an XML syntax for digital signatures. Functionally, it has much in common with PKCS#7 but is more extensible and geared towards signing XML documents. It is used by… …   Wikipedia

  • XML data binding — refers to the process of representing the information in an XML document as an object in computer memory. This allows applications to access the data in the XML from the object rather than using the DOM to retrieve the data from a direct… …   Wikipedia

  • Web Services Description Language — Infobox file format name = Web Services Description Language icon = logo = extension = .wsdl mime = application/wsdl+xml type code = uniform type = magic = owner = [http://www.w3.org/ World Wide Web Consortium] genre = contained by = XML… …   Wikipedia

  • .xml — Vorlage:Infobox Dateiformat/Wartung/magic fehltVorlage:Infobox Dateiformat/Wartung/website fehlt Extensible Markup Language Dateiendung .xml …   Deutsch Wikipedia

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

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

Share the article and excerpts

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