The decision about when to store data in XML and when to store it in another format is definitely a tough one. In most cases, XML is a _great_ transport mechanism for moving data from one platform to another. For instance, enabling your mainframe to export information in XML format and then importing it into a web server for transformation and display is a great use of XML. Storing information that doesn't fit neatly into a relational database schema is another case. For instance, if you have a hierarchical data structure that doesn't translate to a table/join structure, you might want to store that as XML in a database column.
But an XML document makes a poor database. It's large, slow, and you can't (easily) do complex joins on the information in it. For very small applications where you might have been tempted to do a flat-file or ISAM database, XML might be right. But in general relational data belongs in the database, unstructured content belongs in XML.
As for serializing Java objects via XML, there have been several efforts in that direction. Yes, using the native Java serialization format is more compact. But it's also a closed loop. You won't be able to take that BLOB and feed it to an XSLT processor and display a nice web page. Or take it and send it to a mainframe that will extract some information during a batch cycle.
So if you know that the data will never leave your closed system, by all means use the most compact and speediest means to store information. But if you even suspect that the content will be useful to another system, or you might want to build a web service around it, make it available in XML. It doesn't cost that much, and makes life much easier down the road.
------------------
W. Scott Means author,
Strategic XML smeans@strategicxml.com [This message has been edited by W. Scott Means (edited October 17, 2001).]