Question
I want to be able to store multiple xml objects in a database. But I don't want to just serialize the object and dump it out. Rather I would like to be able to access the database representation of the xml object in the same way as I would the xml itself.
Multiple modules need to access the same data but it would be efficient if they could be told which node to start reading from.
In other words traverse the database as if it were actually a binary tree. CouchDB says it uses a binary tree but at first glance I see no way to store and retrieve data in a tree-like fashion. Is this the domain of graph style databases?
Solution
I don't know much about graph database system and their capabilities but several traditional (SQL) database systems have options to store and manipulate XML documents:
PostgreSQL: there is a XML data type and quite a lot of XML functions since version 8.3.
SQL Server: has support for XML Data since version 2012 (and as announced this year, the DBMS will be soon available in Linux and not only Windows).
Oracle: XML DB Developer's Guide, I think since version 9.
DB2: offical docs: pureXML overview -- DB2 as an XML database and a nice article that explains its XML capabilities: DB2 Native XML.