JXV is a library which allows for Java objects to be given "XML Views", and for those views to be read back into objects. JXV supports both SAX and DOM output, and can read XML input from any SAX-compliant parser. Resulting DOM trees are dynamic, and reflect changes made to the object model even after they were created. JXV fully supports namespaces in it's XML views, and can correctly parse and read XML content with namespaces.
The current release of JXV is JXV0.4 (an alpha release). It contains sources, binaries and documentation. JXV is packed with a simple command-line tool that allows users to try out JXV on their own object model without getting to know the JXV API. All you need to do is implement a simple factory object (one method) to return your objects, and JXVTester will generate XML views for it (and perform other tasks you instruct it to, such as reading the XML back into an object).
JXV uses a pluggable architecture which allows XML view factories to be configured and loaded at runtime. The JXV configuration mechanisms also leverage XML namespaces to allow the configurations for those different view factories to be given as part of the JXV configuration. In this release, JXV comes pre-configured with view factories for JavaBeans, Collections, arrays, Maps, and "flat objects" such as Strings, primitives, etc. These factories support a wide variety of configuration options, and are sufficient for most object models. Future versions of JXV include pre-configured support for additional factories. JXV may also release special-purpose factories (such as ones providing views for RowSets, ResultSets and other JDBC structures) as extension packages.
You can use JXV to do a variety of things, for instance:
I'm sure there are lots of other scenarios not listed here. XML is very popular and there is an ever growing number of standards and applications that facilitate the processing of XML documents. It is the goal of JXV to act as a bridge between the Java object world and the XML document world so that these standards and applications can also be applied to object graphs.
JXV is open-source and freely available. It is covered by an Apache-style
license. You can download JXV from the
project page on SourceForge.
The Tutorial is available in the distribution, but you can also access the latest version online.
If you have any comments/requests/questions, you can: