I would never use any kind of XML to store my data.
We use XSLT transformations as a data abstraction layer in our SOA app. All objects send each other data in XSLT, so there is only one language they need to understand. Except for the database connector, which needs to be able to transform the data into SQL, for sending it to the DB.
This way you don't have SQL string generation distributed over a zillion objects in your app. Makes maintenance much easier.