The aim of XmlVault is to provide an efficient, secure and reliable mechanism to store, query and transform XML data in a distributed and heterogeneous environment, either on a LAN or a WAN.
A relational database stores data using tables that are not very well suited to the storage of hierarchical data.There are two commonly used ways to keep XML data in a relational database.You can store at it as a BLOB (Binary Large Object) and preserve the document so the input can be accurately extracted.Unfortunately, this method makes it difficult to index and update the data.The second way is to transform the XML into table data so the information can be indexed and then queried.There are two drawbacks to this approach: the data transformation can be costly and the original form is lost. Consequently we cannot easily retrieve exactly what we inserted in the database.
XmlVault provides for the storage of XML documents by including the needed features:
Fast and efficient storage
Transaction support to ensure atomicity, consistency, isolation and durability (ACID properties)
Preserve the original document, including format
User-definable indexes on any element or attribute of the XML document
Ability to perform partial updates of an XML document
Fast query retrieval
BLOB storage for multimedia data or others
Easy integration with existing systems
The server is available as a process or as a reasonably lightweight C++ library that can be linked into any existing server
C++ and Java libraries for clients to connect to the server