Independent Query API for XWiki
Currently XWiki uses Hibernate for it's database layer, but in the future XWiki might be interested in JSR-170, RDF or XML storage. For this XWiki would need an independent query layer so that migration would not be an issue to a different storage system.
A specific API would need to be implemented and a conversion system to hibernate be created. It could use and SQL like API and XPath.
- 1/ A Java based query API (just top level functions)
- 2/ A XPath/XQuery type query API
- 3/ A sql like query API (but similar)
These 3 APIs can translate to the lower level which depends on the storage implementation if you have RDF storage or JSR-170 you might have almost native XPath if you have hibernate the sql API translates quite easily
The java based API could be handled directly by the storage engine. It would be mandatory for the storage engine to implement this one.
These APIs would be used by different users:
- 1/ Very basic users
- 2/ modern users that like XML
- 3/ people coming from the DB world
The default XWiki probably almost only needs level 1. Level 2 and 3 corresponds to custom work.