Java Architecture for XML Binding (JAXB) allows Java developers to edit and create XML using familiar Java objects. JAXB is particularly useful when the specification is complex and changing. In such a case, regularly changing the XML Schema definitions to keep them synchronised with the Java defintions can be time consuming and error prone.
JAXB and Castor seemed to be the primary contenders in the Java space until recently.
As JAXB objects are implicitly java beans, anything but a no-arg constructor is pointless if you want to interact with your beans reflectively and would 'muddy' the waters, not to mention break the idea of programming to the interface.
FWIW, I've used JAXB on a couple of projects and there are some serious limitations with Sun's implementation but, in general, it does solve a common problem that we've encountered and is a large step in the right direction.