XML Persistence is an opensource (BSD License) java transactional XML DOM persistence (PDOM) library. Using W3C DOM java API, developpers can store partial or complete document in database. In some way XML Persistence could be considered as an XML Database.
XML Persistence 1.x relies on Hibernate library. Hibernate provides mapping beetween DOM and relationnal database and transactionnal operation on part of the documents.
We are now working on using Berkeley DB Java Edition for 2.x version. According to our quick benchmark, BDBJE provides excellent performance with our XML/DOM implementation (far faster than Hibernate implementation, since it does not rely on an external SQL DB server).
By the way, Hibernate offers good read/update/delete performances for such mapping appoach, and allows reliable application developpement.
XML Peristence has been successfully tested with HSQLDB and PostgreSQL database but as mentionned in Hibernate documentation, Oracle, DB2, MySQL, Sybase, SAP DB, Microsoft SQL Server, Informix, FrontBase, Ingres, Progress, Mckoi SQL, Pointbase and Interbase should work without problem.
If you don't want to install a relationnal database on your system you can use embedded HSQLDB (provided in the lib files) - in a standalone mode.
The XML-Persistence project source is hosted on java.net.
XML Persistence provide standard XML tools such as:
XPath 2.0 : support via Saxon 7.8
XQuery 1.0 : support via Saxon 7.8
XUpdate : support via XML:DB Lexus 0.3 with Saxon XPath 2.0 implementation
ISORelax XML tree validation : support RelaxNG, XML Schema and Schematron via Jing or Sun-Multischema 1.2
Read technical white paper (in french).
You can download XMLPersistence-1.1 full.
Get the sources
You can check out source code via anonymous CVS.
cvs -d :pserver:firstname.lastname@example.org:/cvs login
cvs -d :pserver:email@example.com:/cvs checkout xmlpersistence
Email: alag (a) users.sf.net
Jabber id: al (a) jabber.open-im.net
Mailing lists on xmlpersistence.dev.java.net
Berkeley DB provides a native XML database (aka Berkeley DB XML), you should try it if do not want to rely on a relational database.
Check also OpenIM java jabber server project and POMStrap Maven2 Application Bootstrap.