VXQueryProposal
Abstract
Apache VXQuery is a language processor that implements the XML Query Language v1.0 standardized by the W3C.
Proposal
VXQuery (Versatile XQuery) will be a standards compliant XML Query processor implemented in Java. We believe that there exists a strong (and growing) need to process semi-structured data in many applications. The W3C standardized v1.0 of the XML Query Language in early 2007. Since then, a few processors have surfaced (both commercial and open source). VXQuery will implement this standard.
VXQuery plans to be the glue that brings together imperative programming in Java and declarative programming in XQuery. The project would enable developers to use XQuery to navigate and transform application objects declaratively in Java applications with minimal overhead.
In the VXQuery project we plan to build an implementation that allows users to run declarative XQueries on arbitrary object models. Existing XQuery engines execute queries by translating the user data into some form of XML Object model. With VXQuery, we take the opposing view - Translate the query to work natively on the user's object model.
In addition, VXQuery works on top of different XML representations including DOM, Stax, and a space optimized model motivated by Xalan's DTM (Document Table Model).
VXQuery will also provide a library that allows application developers to express declarative queries without the need to learn a new syntax. We believe that this will speed up the adoption process.
Current Status
This is a new project. Initially, some code will be contributed into the project by the developers. The development of this proposal is complete and ready for a vote.
Meritocracy
The initial developers are very familiar with meritocratic open source development at Apache. Apache was chosen specifically because the initial developers want to encourage this style of development for the project.
Community
VXQuery seeks to develop developer and user communities during incubation.
Core Developers
The core members of the project are diverse. Vinayak Borkar is an independent consultant. Till Westmann works for a company that would be a potential consumer of VXQuery. During incubation the developers base will be broadened.
Alignment
XQuery is gaining more traction as a XML management technology and there already are several Apache projects (XMLBeans, Camel, Tuscany, Synapse) that use or need a XQuery implementation. As no such implementation is available as an Apache project these projects have to rely on external engines. VXQuery can fill this gap and complement the XML support of the Apache Software Foundation.
Known Risks
Orphaned products
VXQuery is new development.
Inexperience with Open Source
The initial developers include long-time open source developers. Vinayak Borkar is an active contributor to the Zorba project at the FLWOR foundation.
Relationships with Other Apache Products
XMLBeans is a representation of XML that would be natively supported in VXQuery. Therefore VXQuery can be used as an efficient and Apache-licensed implementation for the selectPath and execQuery methods found in XMLBeans.
Similarly, Tuscany's SDO implementation can be natively supported and VXQuery can be used to provide an XQuery implementation for Tuscany.
VXQuery can also be used as an XQuery implementation for Camel, and Synapse.
Further, VXQuery uses the Xerces XML parser and schema validator.
A Excessive Fascination with the Apache Brand
We believe in the processes, systems, and framework Apache has put in place. Apache is also known to foster a great community around their projects and provide exposure. While these points are important, they are not the main motivation for choosing Apache to host VXQuery.
Documentation
Not publicly available
Initial Source
Not publicly available
External Dependencies
JavaCC (BSD license), Davos SDO implementation (Apache 2.0 license), Woodstox XML parser (Apache 2.0 license), XStream project (BSD license)
Required Resources
Developer and user mailing lists
vxquery-dev@incubator.apache.org vxquery-users@incubator.apache.org vxquery-commits@incubator.apache.org
A subversion repository
https://svn.apache.org/repos/asf/incubator/vxquery
A JIRA issue tracker
VXQuery (VXQUERY)
Initial Committers
Wiki Markup Vinayak Borkar <vborky at yahoo dot com> \[Have CLA\]
Wiki Markup Till Westmann <till at westmann dot org> \[Have CLA\]
Wiki Markup Cezar Andrei <cezar at apache dot org> \[Have CLA\]
Wiki Markup Michael Carey <mjcarey at ics dot uci dot edu> \[Have CLA\] \\
Sponsors
- XMLBeans PMC
Champion
- Cezar Andrei
Nominated Mentors
Wiki Markup Paul Fremantle <pzfreo at gmail dot com> \[ASF member\]
Wiki Markup Sanjiva Weerawarana <sanjiva at opensource dot lk> \[ASF Member\]
Wiki Markup Radu Preotiuc-Pietro <radup at apache dot org> \[Non ASF member\]
Wiki Markup Jochen Wiedmann <jochen dot wiedmann at gmail dot com> \[Non ASF member\]