Which is, after all, the reason why relational technology has received enormous interest in the last twenty years. Consider a product order. A product order lists the customer and the items he purchased. A single XML document format can not be used to efficiently generate these two views. Storing XML documents in a relational database is tedious at best.
Documents have to be ripped apart and glued back together again.
There are almost no tools out there that do a good job of this. Most of this repetitive code could be generated, but vendors still haven't developed decent tools yet. Building business objects that interact with the data store behind the scenes seems to be the way to go. If you don't need to view your data in multiple ways, take a look at eXcelon . It has many nice features, not the least of which is the ability to create indexes for fast queries.