Apparently, BDB-XML has been around since at least 2003 but I only recently stumbled upon it on Oracle's website: Berkeley DB XML. Here's the blurb:
Oracle Berkeley DB XML is an open source, embeddable XML database with XQuery-based access to documents stored in containers and indexed based on their content. Oracle Berkeley DB XML is built on top of Oracle Berkeley DB and inherits its rich features and attributes. Like Oracle Berkeley DB, it runs in process with the application with no need for human administration. Oracle Berkeley DB XML adds a document parser, XML indexer and XQuery engine on top of Oracle Berkeley DB to enable the fastest, most efficient retrieval of data.
To me it seems that the underlying ideas are technically sound and probably more mature than the newer document-based DBs like CouchDB or MongoDB. It has support for C, C++, Ruby and Perl, as far as I can determine. It even has HA-capabilities like automatic replication using a master/slave model with automatic election.
However, I can't seem to find any projects that use it. Is there something fundamentally wrong with it? Is the license too onerous? Is it too complicated?
Why is it not being used?
I've been for the same lately and came across the Sedna XML dbms.
From my experiences Berkeley DB XML has a lot of promise and a lot of relevant use cases. But you should be careful not to expect it to work in all cases. Note that the last release was Berkeley DB XML 2.5.16 in December 22, 2009.
The technology it is based on, Berkeley DB, is very robust and blindingly fast, if you configure it correctly for your use-case. There are many details to get right (e.g. enable transactions, logging, understanding all flags needed to get MVCC working). I believe the majority of people have issues because of this complexity.
I have run into a few other shortcomings though. The biggest one is that the query planner will not use indexes when sorting. This means that you cannot do a pretty common data access pattern which is the equivalent of:
If you do this Berkeley DB will check all values of time on disk before ordering, which makes it slow when you go beyond a few tens of thousands of nodes. Someone else reported this as well here:
https://forums.oracle.com/forums/message.jspa?messageID=9754987#9754987
You can enumerate any indexes directly as well, but then you lose the ability to do ad-hoc queries.
Also reported on the forums is some strange behavior related to index types and performance:
https://forums.oracle.com/forums/message.jspa?messageID=9753022#9753022
So, while key based access is fast and reliable, be careful of its immature query planner.