Apache Xindice
About Apache Xindice
Apache Xindice is a database designed from the ground up to store XML data or what is more commonly referred to as a native XML database. The name is pronounced zeen-dee-chay in your best faux Italian accent. Don't worry if you get it wrong though, we won't mind. We just care that you spell it correctly.
You might be wondering what a native XML database is good for? Well it pretty much has one purpose, storing XML data. If you don't have any XML data, don't want any XML data or think XML is the most over-hyped technology of the new millennium, then Xindice is not for you. We're not out to change the way data in general is stored, only to provide a good solution for storing XML data. If you survey your projects and see XML popping out of every corner, then Xindice might be a real help for storing that XML.
The benefit of a native solution is that you don't have to worry about mapping your XML to some other data structure. You just insert the data as XML and retrieve it as XML. You also gain a lot of flexibility through the semi-structured nature of XML and the schema independent model used by Xindice. This is especially valuable when you have very complex XML structures that would be difficult or impossible to map to a more structured database.
At the present time Xindice uses XPath for its query language and XML:DB XUpdate for its update language. We provide an implementation of the XML:DB API for Java development and it is possible to access Xindice from other languages using built in XML-RPC API. As standards in the XML database area mature Xindice will include support for those that are most important.
Xindice is the continuation of the project that used to be called the dbXML Core. The dbXML source code was donated to the Apache Software Foundation in December of 2001.