Skip to main content
Jump to: navigation, search

New Eclipse Plugin for XQuery

Revision as of 21:10, 27 August 2008 by (Talk | contribs) (M2 - Partitioning)


XML is an undying technique designed for data representation and data exchange. One great feature of XML is its ability to handle XML related matters using XML itself. XQuery is such a technique that is created in order to query XML documents using XML itself.

The purpose of this project proposal is to implement a XQuery editor plug-in for Eclipse that will be very helpful for web developers; specially for people that are dealing with querying XML data. Even with current somewhat limited capabilities of XQuery, it is largely used to query XMLDBs such as eXist or Qexo. But with the next suggested version of XQuery which is 1.1, XQuery could be the favourite for querying not only XMLDBs but also other XML based office documents and relational DBs.

Because of the importance of XQuery, I'm expecting to implement a XQuery plug-in that will be managed under Eclipse web tools project and under EPL.Therefore at the end of this project, we will have a fully functional editor (as-you-type syntax validating, error tips, syntax highlighting, outlining, content assistance, Ctrl+Space assistance & preference page) for XQuery.

Here is the complete proposal. [1]


Planned Features

  1. Syntax colouring
  2. Content outlining
  3. Syntax Validation and highlighting errors
  4. Error tips (Reason for errors and may be some guide to undo it)
  5. Content assistance
    1. Ctrl + Space to show the content support
    2. Code snippets
  6. Preference page to control the overall behaviour of the plug-in including syntax highlighting and defining the output


Glass.gif Needs some investigation/research

Progress.gif Work in progress

Ok green.gif Bug fixed / Feature added

Must Have

  • Ok green.gif Editor Partitioning
  • Ok green.gif XPath 2 Content Parser
  • Ok green.gif XQuery Content Parser
  • Ok green.gif Syntax colouring
    • Glass.gifSyntax Validation
    • Glass.gif error highlighting
  • Progress.gif Content assistance
    • Progress.gif Ctrl + Space to show the content support
  • Ok green.gif Preference Page

Should Have

  • Glass.gif Content outlining
  • Glass.gif Content assistance
    • Glass.gif Code snippets

Nice to have

  • Glass.gif Error tips


M1 - Basic SSE structure

First goal was to produce a basic code base matching to that of a standard SSE (Structure Source Editing) plugin. First few weeks were given to this purpose and I was able to implement a suitable structure after reviewing other SSE plugins there such as HTML, CSS, XML, XSL and DTD.

M2 - Partitioning

Since XQuery is a XML syntax, it was only prudent to use a normal XML partition that will be parsed as XML Content by the standard XML plugin and another new partition for XQuery which will be parsed by this new plugin. Mainly StructuredTextPartitionerForXQuery class was used to implement partitioning and the result was an editor that identified usual XML syntax from the new syntax(XQuery).

    public String getPartitionType(ITextRegion region, int offset) {
        String result = null;
	if (region.getType() == DOMRegionContext.XML_CONTENT) {
	        result = IXQueryPartitions.XQL_XPATH2;
	} else {
		result = super.getPartitionType(region, offset);
        return result;

M3 - XPath and XQuery parsing

M4 - Syntax Colouring

M5 - Update Site

M6 - Content Assistance and other details

Community proposals

Feel free to add your comments and ideas.

Getting the source

Download the plugin from XQuery download site

Download the source from SourceForge Eclipse Incubator.




XQuery References

Other Help Materials

Back to the top