Type: New Feature
Affects Version/s: None
Fix Version/s: None
Previously mentioned here:
I will paraphrase in case the forums ever get changed again
I've built something here that might be a nice addition to an xml-tiger package.
Basically, it allows me to access xml like this (from my unit test):
With a proxy generated for an interface that looks like this (again from the unit test):
The "getWorld" method uses an XPathVariableResolver to map the method arguments to xpath variables.
Like the XPathParam stuff in spring-ws, it supports the standard XPath types (String, Boolean, Double, Node, NodeList...). as well as using special Converters.
YesNo in the example above is an enum, a converter is registered with the XPathProxyFactory that allows the conversion of a string to some object.
XPath Booleans are touchy, they are based on existence, not content. This is the default behavior for the XPath proxy as well. Registering a Converter for Booleans though allows s:booleanFalse element above to evaluate to 'false'.
I figured that a spring-xml-tiger package would be a good home for it as it is all JAXP and Annotations. If not, maybe I'll toss it up to sourceforge or googlecode.
I'll attach a zip containing the code. Mind you it's totally "first-draft" quality; the package is "raykrueger.xpathproxy" and has almost no javadoc yet...