See the Castor 1.2 API for the Marshaller class (http://castor.codehaus.org/javadoc/org/exolab/castor/xml/Marshaller.html).
The Marshaller class has a setter method setNamespaceMapping(java.lang.String nsPrefix, java.lang.String nsURI).
By using this method, namespaces are added to the root of the XML document (and not recursively to all elements in the tree). This leads to a much cleaner (and shorter) XML-file.
Currently the Spring OXM CastorMarshaller class does not support setting the namespaceMapping, and therefore subclassing is necessary. It would be nice if a property namespaceMappings is added, which can be used to add the namespace prefixes.