<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"?>
<rdf:RDF xml:lang="en"
         xmlns="http://usefulinc.com/ns/doap#" 
         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
         xmlns:asfext="http://projects.apache.org/ns/asfext#"
         xmlns:foaf="http://xmlns.com/foaf/0.1/">
<!--
  =======================================================================

   Copyright (c) 2006 The Apache Software Foundation.  
   All rights reserved.

  =======================================================================
-->
  <Project rdf:about="http://XMLBeans.rdf.apache.org/">
    <created>2006-03-27</created>
    <license rdf:resource="http://usefulinc.com/doap/licenses/asl20" />
    <name>Apache XMLBeans</name>
    <homepage rdf:resource="http://xmlbeans.apache.org/" />
    <asfext:pmc rdf:resource="https://poi.apache.org" />
    <shortdesc>XMLBeans is a technology for accessing XML by binding it to Java types. XMLBeans provides several ways to get at the XML: strong XMLSchema typed model, cursor API, streaming (SAX, Stax) and DOM. XMLBeans covers 100% XMLSchema support while giving access to full infoset of documents.</shortdesc>
    <description>XMLBeans is a tool that allows you to access the full power of XML in a Java friendly way. The idea is that you can 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 you can then use to access and modify XML instance data. Using XMLBeans is similar to using any other Java interface/class, you will see things like getFoo or setFoo just as you would expect when working with Java. While a major use of XMLBeans is to access your XML instance data with strongly typed Java classes there are also API's that allow you access to the full XML infoset (XMLBeans keeps XML Infoset fidelity) as well as to allow you to reflect into the XML schema itself through an XML Schema Object model.

For more details on XMLBeans see the XMLBeans Wiki pages or the XMLBeans documentation (the Documentation tab on this website).
What Makes XMLBeans Different

There are at least two major things that make XMLBeans unique from other XML-Java binding options.

   1. 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 times you do not have control over the features of XML Schema that you need 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 themselvs to a subset.
   2. 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 because of the subset of XML that is not easily represented in java. For example, order of the elements or comments might be needed in a particular application.

A major objective of XMLBeans has been to be applicable in all non-streaming (in memory) XML programming situations. You should be able to compile your XML Schema into a set of java classes and know that 1) you will be able to use XMLBeans for all of the schemas you encounter (even the warped ones) and 2) that you will be able to get to the XML at whatever level is necessary - and not have to resort to multple tools to do this.

To accomplish this XMLBeans provides three major APIs:

    * 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 you can get an XmlCursor. This provides efficient, low level access to the XML Infoset. A cursor represents a position in the XML instance. You can move the cursor around the XML instance at any level of granularity you need from individual characters to Tokens.
    * SchemaType XMLBeans provides a full XML Schema object model that you can use to reflect on the underlying schema meta information. For example, you might want to generate a sample XML instance for an XML schema or perhaps find the enumerations for an element so that you can display them.

All of this was built with performance in mind. Informal benchmarks and user feedback indicate that XMLBeans is extremely fast.
</description>
    <bug-database rdf:resource="http://issues.apache.org/jira/secure/BrowseProject.jspa?id=10436" />
    <mailing-list rdf:resource="http://www.mail-archive.com/user%40xmlbeans.apache.org/" />
    <download-page rdf:resource="http://www.apache.org/dyn/closer.cgi/xmlbeans/" />
    <programming-language>Java</programming-language>
    <category rdf:resource="http://projects.apache.org/category/xml" />
    <release>
      <Version>
        <name>XMLBeans v3.1.0</name>
        <created>2019-03-22</created>
        <revision>3.1.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>XMLBeans v3.0.2</name>
        <created>2018-10-28</created>
        <revision>3.0.2</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>XMLBeans v3.0.1</name>
        <created>2018-08-24</created>
        <revision>3.0.1</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>XMLBeans v3.0.0</name>
        <created>2018-06-29</created>
        <revision>3.0.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>XMLBeans v2.1.0</name>
        <created>2005-11-16</created>
        <revision>2.1.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>XMLBeans v2.0.0</name>
        <created>2005-06-30</created>
        <revision>2.0.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>XMLBeans v1.0.4</name>
        <created>2005-02-24</created>
        <revision>1.0.4</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>XMLBeans v1.0.4-jdk1.3</name>
        <created>2005-02-24</created>
        <revision>1.0.4-jdk1.3</revision>
      </Version>
    </release>
    <repository>
      <SVNRepository>
        <location rdf:resource="http://svn.apache.org/repos/asf/xmlbeans/trunk/"/>
        <browse rdf:resource="http://svn.apache.org/viewcvs.cgi/xmlbeans/trunk/"/>
      </SVNRepository>
    </repository>
    <maintainer>
      <foaf:Person>
        <foaf:name>Cezar Andrei</foaf:name>
          <foaf:mbox rdf:resource="mailto:cezar@apache.org"/>
      </foaf:Person>
    </maintainer>
  </Project>
</rdf:RDF>
