Hammer: XML-Object mapping tool

Hammer is JSX, simplified, rewritten and refactored. Deserialization is faster, using SAX2 via JAXP1.1. It is largely separated into front and back-ends, so we can slot in different XML formats easily.

Please note: the JSX project has since been developed much more than Hammer (as at 7 July 2002)

Download
Download Hammer.jar - you may need to right-click and select "Save Link As...".
Extract with jar xfv Hammer.jar
You'll also need JAXP1.1 in your classpath.

Examples (using Vertex.java)
Hammer style XML:    java -classpath Hammer.jar Vertex
Like JSX, but instead of primitives being attributes, they get their own tag. Thus, every value - object or primitive - is represented by a tag.
Tags are named after the type of the value they hold - a DTD-like approach to typing of JSX.

SOAP style XML:    java -classpath Hammer.jar Vertex soapstyle
SOAP/XML Schema encoding - an exploratory, rather than a serious implementation. How human readable is this XML format?
Tags are named for the fieldname that they hold. Exceptions are the root and array components, which have no fieldname! Types are omitted where they are the same as the static type of the field. For instance, In the example file, the first "left" field is implied to be "Vertex".

Licencing
Hammer is open source (in the downloaded jar), and released under the GPL (General Public Licence). This means that any application using Hammer must also be GPL. Commercial licencing is possible.

Bug reports, suggestions, comments: please email