One of the core challenges to the reBiND project is the storage of XML documents. A suitable storage facility is therefore one of the key components of the project. After an extensive evaluation of the available XML storage solutions, the native and open source XML database eXist-db was chosen to be used for reBiND project.
eXist-db (http://www.exist-db.org/) has been around for over 10 years and has become one of the leading open source Native XML Databases (NXD). Native XML Databases are databases which have a storage model that is specifically designed for XML data and make it therefore easy to access, query, update, transform or otherwise interact with (parts of) the XML documents.
eXist-db supports many of the XML related standards of the W3C.
Here are some of the key features of eXist which were particularly important for the reBiND project.
- Addressing parts of the document with XPath
- Querying documents with XQuery
- Automated Indexing of XML for faster addressing and querying, including Full Text search
- Transforming XML using XSLT
- Schema Agnostic (eXist does not need to know the schema of a document, in order to save it. It is therefor also possible to store invalid XML files, which is important for the reBiND project)
- optional Schema Validation (XML files can be validated, to see if they confirm to the provided Schema or if they are invalid)
- Updating XML files in the database using the XQuery Update Facility
- several APIs to access the data from other programs, like REST, XQJ, Fluent and others
- Versioning of files is supported
- Access to the files via a Web Interface and a GUI-Client make it comfortable to use eXist also for people who are not programmers or power users
- eXist is Free and Open Source, which is in the spirit of the reBiND mission statement: "[...] to develop cost-efficient workflows for rescuing legacy databases [...]"
- it is Well Documented and an active community of supporters can help with other potential problems
A very extensive documentation of the decision process that led to the selection of eXist can be found here: Selecting an XML-Database for reBiND. The article explains all of the above mentioned features and compares eXist to 14 other XML databases in a feature matrix.