Added @Recursive annotation and initial (failing) test.
Implemented @Recursive (finally!)

Added support for recursive node structures. An example is OPML, of which a sample processor is included in the test cases.

It took several attempts to make this work. I'm still not sure if it's completely right...
Improved support for exception handling.

When a controller methods throws an exception it is no longer swallowed in a runtime exception. Instead this exception is wrapped inside a checked XmlProcessorException and passed to the caller.
Improved exception handling.

Unchecked exceptions thrown from controllers result in that same exception.

Checked exceptions thrown from controllers result in a XmlProcessorException.
Updated documentation on recursion.
Identified a bug in the recursion code.

Injecting nodes doesn't work properly. Added a failing test case for it.
Refactored the ExecutionContext for attributes.

Attributes are now tracked in an AttributeMap that encapsulates all logic on it.
Refactored the ExecutionContext for method results.

Method results are not tracked in a MethodResultMap that encapsulates all logic on it.
Identified another bug with node injection.

When nodes on multiple levels require the node body of a node with identical names, the order in which the nodes are defined in the XML matters. It shouldn't.
Refactored the ExecutionContext for nodes.

Nodes are now tracked in a NodeMap that encapsulates all logic on it.
Fixed the bugs (failing tests) regarding node content.
Improved documentation in the code.

Documented the code by renaming various classes, parameters and variables, and by adding JavaDoc.