| <?xml version="1.0" encoding="UTF-8"?> |
| <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "document-v12.dtd"> |
| <document> |
| <header> |
| <title>Welcome to XMLBeans</title> |
| </header> |
| <body> |
| <section> |
| <title>Introduction to XMLBeans</title> |
| <p>XMLBeans is a tool that allows you to access the <em>full</em> power of XML in a Java friendly way. It is an XML-Java binding tool. The idea is that you can |
| take advantage 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 <em>compile</em> 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 <code>getFoo</code> or <code>setFoo</code> 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 full XML Infoset fidelity) as well as to allow you to <em>reflect</em> into the XML schema |
| itself through an XML Schema Object model.</p> |
| <p>For more details on XMLBeans see the <link href="http://nagoya.apache.org/wiki/apachewiki.cgi?XmlBeansExplanation">XMLBeans Explanation</link> Wiki page. |
| As well as the XMLBeans documentation (see the Documentation tab on this website as well as the docs directory in the XMLBeans Source).</p> |
| <section> |
| <title>What makes XMLBeans Different</title> |
| <p>There are at least two major things that make XMLBeans unique from other XML-Java binding options.</p> |
| <ol> |
| <li> |
| <strong>Full XML Schema support.</strong> 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.</li> |
| <li> |
| <strong>Full XML Infoset fidelity.</strong>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.</li> |
| </ol> |
| <p>A major objective of XMLBeans has been to be applicable in <em>all</em> 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.</p> |
| <p>To accomplish this XMLBeans provides three major APIs:</p> |
| <ul> |
| <li> |
| <strong>XmlObject</strong> 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.</li> |
| <li> |
| <strong>XmlCursor</strong> 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.</li> |
| <li> |
| <strong>SchemaType</strong> 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.</li> |
| </ul> |
| <p>All of this was built with performance in mind. Informal benchmarks and user feedback indicate that XMLBeans is extremely fast.</p> |
| </section> |
| </section> |
| <section> |
| <title>History</title> |
| <p>XMLBeans was submitted to Apache by BEA Systems in September 2003 and is currently in the Apache incubation process. |
| XMLBeans was originally created because of the need seen by developers, in particular David Bau |
| (<link href="http://nagoya.apache.org/eyebrowse/ReadMsg?listName=xmlbeans-dev@xml.apache.org&msgNo=93">David's about me post</link>), |
| need for a more XML centric Java binding model that nothing on the market offered. XMLBeans 1.0 has been successfully used as an underlying technology for several |
| products as well as by a growing number of large users including some of the largest companies in the world.</p> |
| </section> |
| <section> |
| <title>Future</title> |
| <p>The future of XMLBeans is exciting and you are invited to contribute. XMLBeans Version 1 is a great, stable technology that will continue to |
| improve going forward. Its emphasis on full support for XML Schema and the XML Infoset along with it's performance |
| charactaristics make it a great choice for in-memory XML-Java programming. </p> |
| <p>Work has begun on planning XMLBeans 2.0. At this point it appears that the major emphasis for XMLBeans 2.0 are new use cases that expand |
| the breadth of XMLBeans. The observation is that XML-Java binding occurs in situations that XMLBeans could be optimized for, areas |
| such as Web Services (XMLBeans works well now in many Web Services situations) and Java to XML Schema scenarios . |
| See the <link href="http://nagoya.apache.org/wiki/apachewiki.cgi?XmlBeansRoadMap">XMLBeans Roadmap</link> and the |
| <link href="http://nagoya.apache.org/wiki/apachewiki.cgi?XmlBeansFeaturePlan">XMLBeans Feature Plan</link> wiki page for |
| more information. XMLBeans is actively looking for contributors and committers so, if you are interested, please join in.</p> |
| </section> |
| <section> |
| <title>News and events</title> |
| <ul> |
| <li> |
| <link href="http://apachecon.com/2003/US/index.html"> |
| <img src="http://jakarta.apache.org/images/logos/ac2003-150.gif" alt="apachecon 2003 logo" width="150" height="86"/> |
| </link> |
| <link href="http://apachecon.com/2003/US/index.html">ApacheCon US 2003</link> |
| (16-19 November 2003) is now open for registration. ApacheCon is |
| the conference for all things Apache. Come along and learn about |
| a range of new technologies, meet some Apache folks and share |
| the knowledge. David Bau is scheduled to speak about XMLBeans |
| on Monday, Nov 17 from 2:30 to 3:30 |
| (<link href="http://apachecon.com/2003/US/html/sessions.html">ApacheCon Schedule</link>). |
| </li> |
| </ul> |
| </section> |
| </body> |
| </document> |