Ashpool is a lightweight XML Database written in Java(tm). It's goal is to use standard SQL92 syntax to query, add, update, and delete XML documents via a JDBC driver. The XML documents must hold to a table like structure. The reason for the table structure restriction is that SQL was designed to query table data not hierarchical data.

The Ashpool engine via JDBC drivers can be used to query any XML document; however, it is best used with documents that have a table like structure for the first three levels. The "column" section of the table structure can contain integer, float, string, dateTime or XML fragments. Ashpool can be used to search for XML documents inside of an XML document (for example, as a serialized bean store), or used as a lightweight relational database.

All the while Ashpool's "tables" are XML, so transmitting them over HTTP, running them through FOP, or editing them with a text editor are all possible - it other words you do not loose the power of XML.

Along with SQL, Ashpool also can use the Bean Scripting Framework to create stored procedures and scripts.

Not everything is roses though :). Because Ashpool is querying XML, Ashpool can get slow when large amounts of information are involved. Ashpool uses SAX (unlike some other products) so it can handle somewhat larger documents then others, but do not expect Enterprise Database performance. Performance issues do not show their head unless you are using encrypted documents or the documents contain a "large" amount of data.

Licence: MIT License