Question: Are there disadvantages of using XML, instead of RDMS? The reason I ask this is because my data is more naturally represented by XML structure, rather than RDBMS. I initially thought of [storing the data in relational database](https://stackoverflow.com/questions/545145/map-xml-structure-to-database-schema), but the lack of flexibility of relational database to handle tree-like data structure was putting me of. So I am thinking about just storing the data in XML.

One thing I fear is performance penalty. While RDBMS can handle large datasets, I am not sure whether the same can be said about XML. Also, the database queries are pretty well-established and fairly easy to use and construct, what about XML queries? I don't know.

I am doing .Net application.

Answer: 
Things an RDBMS provides that XML doesn't, more or less in order of importance:

* enforcement of a defined schema (though this is certainly available to XML)
* support for multiple writers
* atomic transactions
* referential integrity
* well-defined query language
* ability to optimize access through indexes, compiled queries, etc.
* role-based security
* triggers, stored procedures, calculated columns, etc.

Plus you don't need to load the entire database into memory before you can access any of it.

XML's an okay serialization format for an object model. It's good for hacking together relatively free-form data models that you can access with XPath, too - especially if you're going to transform that data into XML or HTML via XSLT. And it has the merit of being standard and platform-independent. 

But if you get too ambitious with it, you swiftly get into the kind of territory that results in you writing rants about how terrible XML is. (I'm talking to you, [Jeff Atwood](http://www.codinghorror.com/blog/archives/001114.html).)
You can have the best of both worlds, your data can be stored in the database, and that has to be a better solution. As a DB is faster, more secure, has backup and restore, rollback, admin tools and so on .... 

It sounds as though your data is hierachial in nature, databases can be coerced to store hierarchies without too many issues.

When it comes to using your data if you extract it as Xml. I know if you're using Sql Server that works out of the box, not so sure for Oracle.