I agree with the first respondent that you can get very nice human+computer readable XML representation just be writing a little code.
I took that same approach back in 2002 to create a middleware business object to XML/PDF/HTML/XHTML/XLS reporting tool. It only took a few hours to program the business object to XML converter. I took advantage of fact that the objects were not self-referential. Otherwiise, I would have had to add reference(s) elements, not just flatten the values out.
There is also the WebRowSet technique, if you use Java 5 or later. I cannot say its output looks super appealing for consuming directly by XSLT but it is still usable. Far more palatable than typical JAXB output.
However, now there is now a cooler approach, if you are running Java 6 or later.
If you are using JDBC 4, you can specify a Dataset with a generic type parameter identifying the class, and JDBC will populate the fields of that class with the data. That's the first half of the trick. See JDBC Annotations for more details
The second half of the trick is to use XStream to convert a collection of those into XML. XStream usually gives a good result the first time.
You can make the XML generated really clean, readable, concise (i.e. "tight") by supplying XStream with some aliases to use. And if that does not work, there are lots of other ways of Tweaking the Output.