The XQuery Development Toolkit (XQDT) is a proposed project under the Web Tools Project.
According to the Eclipse Development Process, this proposal is intended to declare the intent and scope of the XQuery Development Toolkit project as well as to gather input from the Eclipse community. You are invited to comment on and/or join the project.
- 1 Background
- 2 Introduction
- 3 Project Description
- 4 Goal
- 5 Scope
- 6 Features
- 7 Perspectives and Views
- 8 Extension Points
- 9 Project Organization
- 10 Mentors
- 11 Relation to other Eclipse projects and other open source projects
XQuery was designed by XML Query working group of the W3C in order to present a convenient way to query largely (but not limited to) XML data collections and became a W3C recommendation on January 23, 2007. Currently many commercial XML Databases support XQuery as a platform to query its data. Also with the upcoming new XQuery version which is 1.1, it is believed XQuery will be the main data query technique for XML documents as well as databases. As such, it is quite useful to have an editor for XQuery with rich functionality such as syntax validation and content assistance under WTP umbrella.
XQuery Development Toolkit(XQDT) is mainly an editor built on Structured Source Editor(SSE) for easy XQuery handling. It will initially have basic text editor functions such as syntax colouring and content assistance to create and modify XQuery documents easily. Later it could be added more rich features such as content formatting, advance preferences, error tips and support to other commercial XML databases through extension points.
XQuery Development Toolkit project will be based on the project done by Buddhika Laknath for Summer of Code 2008 named "New Eclipse Plugin for XQuery" mentored by David Carver who is a committer for XSL Tools. The initial idea of the project is to fill gaps in Eclipse in regards to new XML formats and persuade more web and XML users to choose Eclipse as their native platform.
Basic goal of the project is to provide a rich text editor for XQuery developments with Eclipse. Other than that, it's our hope that this will be an incentive to draw more attention from XML users into accepting Eclipse as their main development platform.
Currently Scope is limited to providing basic text editing features for XQuery language based on Structured Source Editing components. But at the end of first phase, providing that users requesting more features into the editor, it will be moving forward to bring more rich text editing experience to users.
As always, scope can change based on community and adopter feedback as well as changes in XQuery standards.
The following features are planned or currently implemented:
- Content Assistance (planned)
- XPath 2.0
- Xquery Templates
- XQuery User Defined Functions
- Syntax Coloring (partially implemented) - the editor is currently aware of XQuery/Xpath 2.0 specific syntax and will color keywords accordingly. It still needs to be made configurable.
- XML syntax coloring is inherited from the XML editor
- Template support
- New File Wizard
Possible future features
- XQuery Database Explorer - possible integration into DTP for exploring a XML database
- This could leverage the XML:DB API to provide general support for XML:DB's that support the api.
- Debugging - allows step through debugging support of XQuery scripts and possible transition between XSLT, Java, and other languages and XQuery code.
Perspectives and Views
The initial views will leverage many of the views provided by the XSL Tools project. These are:
- XML Perspective - general editing perspective for XML related functionality.
- Database Perspective - for XML Database browsing.
It will leverage the following existing views.
- Project Explorer
- Outline View
- XPath View
- Properties View
- Problems View
- Templates View
Possible new views:
- XQDoc - XQDoc does for XQuery what JavaDoc does for java. It provides a platform neutral way of documenting XQuery.
Possible extension points include:
- XQuery Engines - Allows for the selection and installation of various XQuery Engines used during Launch Configurations.
- XQuery Engine specific Validation. Leveraging the existing WTP Validation framework, allow for projects to have specific XQuery Engines used for validation.
- Debugging Support - If an engine supports Debugging allow it to contribute functionality.
We propose this project should be undertaken as an incubator project with the Web Tools project.
- Nitin Dahyabhai (WTP Source Editing)
- Chris Aniszczyk (Code 9)
- Budhikka Laknath - Contribution/Committer - Budhikka wrote the initial code during the Google Summer of Code Project.
- David Carver (XSL Tooling Committer)
Initial Code Contribution
The initial code contribution comes from the Summer of Code 2008 project which is hosted at sourceforge, XQuery Plugin
Licensing and Intellectual property
All code is being relicensed under the terms of the Eclipse Public License. All committers have agreed to these relicensing terms.
- Standards for Technology in Automotive Retail
- Benjamin Cabé (Anyware Technologies): XML Database Explorer
XQuery already has a large user community that covers both the data side of xml as well as the document centric side of the XML. It is becoming the defacto standard for querying XML repositories and data bases, and is a good complement to other XML technologies like XSL. As more traditional database add support for XML databases having a good base set of XQuery tools to use and extend will become increasing important.
Tentative Development plan
The tentative plan is the be incubating by the end of 2008. Initial steps will be:
- Submit code through IP review.
- Start content assistance.
- Finish syntax coloring
- Start work on Validation support.
The project plans to try and follow the current WTP schedule for milestones and release candidates. The project may deviate from this schedule of problems or issues arise.
Relation to other Eclipse projects and other open source projects
- W3C XQuery 1.0
- W3C XQuery Update 1.0
- XQJ - a java API standard for talking to XML Databases using XQuery.
- Berkeley XML DB
- XQPretty - provides XPath 2.0 and XQuery parsing ability.
- ANTLR V3 - used by XQPretty.
- Data Tools Platform
- Web Tools Platform
- XML:DB API - a general XML Database API framework.