Converting XML to JavaBeans with XMLBeans
by Keld H. Hansen
Introduction
A month ago or so one of my colleagues told me about a new XML-
to-JavaBeans conversion tool called XMLBeans that he had
success with. He even compared it to Castor-XML, a conversion tool
many programmers have been using for a long time, and have been
extremely satisfied with. A couple of weeks ago I had the chance
to look more into this new tool, and in this article I'll try to
sum up my findings.
XMLBeans is developed by BEA Systems, and was donated as an open
source software to the Apache Foundation in December 2003. Like Castor, XMLBeans takes an XML schema
file and produces a set of Java classes that can be used to
convert ("marshal") an XML instance that conforms to
the schema. Reading the specs for XMLBeans the first thing that
strikes one is its ability to handle any (!) XML schema. The
other thing that made me really interested was the fact that
XMLBeans preserves the underlying XML document and schema
structure, thus making it possible to use query languages like
XQuery (see however my discouraging findings described later) on
the document structure. Finally I really liked that the code
generation tool would make me a jar-file ready for use in my
programs.
If you're not interested yet, then I suggest you read the
XMLBeans FAQ from BEA. It gives a lot of good, relevant
information that I'm sure will make you curious about this new
tool.
This article will show you how to:
- install XMLBeans
- generate Java code and classes from schemas
- run some simple programs
- validate an XML file against a schema
Finally I'll show how you could wrap the XMLBeans tool so it can
be replaced by any other marshalling tool. This is always a nice
thing to do, and the technique I'll show is quite general, and
not related to XML marshalling.
In the resources section you'll find pointers to newsgroups and
some interesting discussions about XMLBeans and its relations to
other tools and standards.
Install XMLBeans
Here's a link to BEA Systems from where you may download
XMLBeans. It's not available yet from the official Apache
site because at the time of this writing it's still in the
"incubation process" at Apache. Nonetheless, you may
find zip files on several Apache mirror sites if you search for
"apache xmlbeans" on the web. I've not compared the
BEA and Apache downloads in detail, and my experience with
XMLBeans comes from using the version from BEA. By the time you read
this article, XMLBeans might be available from the official Apache
XMLBeans site.
The XMLBeans.zip from BEA contains all you need,
documentation, examples, utilities and a jar file with the
general classes. I assume that you the reader have available a JDK 1.4.x.
The steps to follow to install XMLBeans are these:
- Unzip the download in a directory, for example
c:\xmlbeans,
- Set the environment variable
XMLBEANDIR to
point to the directory containing the xbean.jar
file, e.g. on Windows: set
XMLBEANDIR=c:\xmlbeans\xkit\lib
- To generate the Java classes for your schema run the
scomp utility located in the bin
folder. For convenience add this folder to your
PATH: set
PATH=%PATH%;c:\xmlbeans\xkit\bin
- Try to enter "scomp". This will show you the usage
information for
scomp.
This completes the installation!
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|