I've had the best experience (query speed, primarily) with BaseX. This was primarily for large XML document processing, so I'm not sure how much it will satisfy your transactional needs.
I was initially using eXist, and then switched over to BaseX because the speed gains were very noticeable. -Sean On Jan 16, 2010, at 11:15 AM, Godmar Back wrote: > Hi, > > we're currently looking for an XML database to store a variety of > small-to-medium sized XML documents. The XML documents are > unstructured in the sense that they do not follow a schema or DTD, and > that their structure will be changing over time. We'll need to do > efficient searching based on elements, attributes, and full text > within text content. More importantly, the documents are mutable. > We'll like to bring documents or fragments into memory in a DOM > representation, manipulate them, then put them back into the database. > Ideally, this should be done in a transaction-like manner. We need to > efficiently serve document fragments over HTTP, ideally in a manner > that allows for scaling through replication. We would prefer strong > support for Java integration, but it's not a must. > > Have other encountered similar problems, and what have you been using? > > So far, we're researching: eXist-DB (http://exist.sourceforge.net/ ), > Base-X (http://www.basex.org/ ), MonetDB/XQuery > (http://www.monetdb.nl/XQuery/ ), Sedna > (http://modis.ispras.ru/sedna/index.html ). Wikipedia lists a few > others here: http://en.wikipedia.org/wiki/XML_database > I'm wondering to what extent systems such as Lucene, or even digital > object repositories such as Fedora could be coaxed into this usage > scenario. > > Thanks for any insight you have or experience you can share. > > - Godmar