Open Source XML Databases?
tarun asks: "I am creating the next version of my open source UDDI registry and decided to use an XML database backend - if I can find any good ones. The reason to make this choice was that I was impressed by oracle and db2's xml capabilities in my past lives. However, when I tried looking for an open-source alternative it seems there is nothing around except perhaps xindice -which clearly is less then perfect. I am looking for something that can work with more than one existing databases (I will ship my software with MySQL but if a large organization wants to deploy it, it should be able to do it using Oracle, DB2 or whatever they want to use) and xindice currently only works with Berkley-DB. Also, I am looking for something that can create database tables for me given an XML schema (I can tweak it later to create indexes, stored procedures etc) and given an XML document - write it to these tables. If it supports something standard like Xupdate or XQuery, that is even better."
"There are some other XML Database projects but either they have too few features or are not open-source. What is the XML-aware portion of the Slashdot community using? Have you ever run across such problems? Do you guys create your database schemas by pain-stackingly copying every element in every XML schema you have to handle to database tables and write huge amount of parsing/deparsing code both ways?"
- Castor - http://castor.exolab.org/
- Hibernate - http://sourceforge.net/projects/hibernate/
- Torque - http://jakarta.apache.org/turbine/torque/
- ObjectRelationalBridge - http://jakarta.apache.org/ojb/
Also you might want to check out Brett Mclaughlin's O'Reilly book on Java XML binding's, or the Wrox Professional Java XML book.Tips and Tricks for Mozilla
Could someone explain to me the benefits of an XML database? I can't think of an XML document that can't be expressed as a relation. I've seen vague references to performance advantages and ease of development for certain applications, but I haven't heard a convincing argument. Am I missing something, or is this just XML hype?
Ceci n'est pas un post
I am curious what the poster thinks is wrong with Xindice. He seems to indicate that he is looking for an XML to RDBMS mapping engine, not a native XML database. Further, he seems to think that Xindice is limited to one type of store. This is simply not true.
In Xindice, XML documents are stored in collections that have filers associated with them that do the actually storage. Xindice provides a Filer interface as well as several different implementations both in-memory and persistent. Additionally, it would be quite trival to implement a DBFiler that stored the data in an RDBMS.
So again I ask, what is wrong with Xindice?
From eXist homepage,
XPath support XPath support is still preliminary. Some functions and numerical operators are missing and only abbreviated XPath syntax is supported. The parser has also some problems to recognize the full range of unicode characters. I have started to write a new XPath parser (using JavaCC instead of ANTLR) to overcome these limitations.
XUpdate The basic model has been designed to provide efficient, index based retrieval. As a drawback, eXist does currently not support direct manipulations of the DOM tree like node insertions or removals. A document always has to be deleted or updated as a whole.
This is clearly a major restriction for applications which need to directly manipulate the DOM tree. Such applications have to create a new document (as XSLT does) and insert this into the DB after all transformations are done. Documents should be kept small to easily reinsert them whenever they change.
DOM manipulation methods and XUpdate are planned for one of the next releases
Your looking in the wrong place.
It sounds like what your looking for is really an object-relational wrapper rather than an XML based RDBMS. Take a look at OJB and see if it is not really what you are seeking.
~~ What's stopping you?