Smooks
Smooks is a Java Framework/Engine for processing XML and non XML data (CSV, EDI, Java etc). Among other things, Smooks can be used for Java Binding, or unmarshalling an XML document into a Java object, and Smooks also has some data validation capabilities.