In relation to a discussion started at this question, I’ve decided to put this up as a community wiki question.
The root of the question is, therefore, is it appropriate to store XML data in a relational database? Are there generally better ways to implement the same goal? What database engines provide good support for XML data types (such as SQL Server), and what are the issues surrounding so-called “XML indexes”?
Databases are for storing data. XML is data. Therefore, under the right circumstances it’s perfectly valid to store XML in a database. Whether that’s the most efficient thing to do depends on a lot of factors that probably can’t be generalized.
For example, if you have a structured XML document that represents an object (eg: a book in a bookstore), it likely makes sense to parse the data and store in in appropriate rows and columns in a database designed for that data.
OTOH, imagine a database holding code samples. You have columns for language, description, and the code. In the case of XML, obviously you’ll store the XML in the code column.
So, like so many things in software, “it depends”.