The Eclipse RelaxNG Development Toolkit (ERDT) 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 Eclipse RelaxNG Development Toolkit project as well as to gather input from the Eclipse community. You are invited to comment on and/or join the project.
RelaxNG is an xml validation language developed originally by James Clark, and is both an OASIS Standard as well as an ISO Standard. It provides an alternative method of describing the structure of XML files, and the rules that can be used to validate the document. It is similar in functionality to the W3C XML Schema but provides what some consider a simplier Compact Syntax, and is more popular in Document oriented XML design than the more complex and verbose W3C XML Schema. It is complimentary to XML Schema and can be used along side of it.
The Eclipse RelaxNG project will provide a set of tooling that leverages where possible the existing tools provided by WTP for validation and grammar content assistance. It will also provide a full grammar aware editor for the RelaxNG Compact Syntax format.
The ERDT will be based on contributions from Martin Schmied (relaxng validation and xml content assistance) and David Carver (XText based RelaxNG Compact Syntax Editor).
It's goals are to provide an extensible framework and tooking to allow the use of RelaxNG grammars with the existing WTP XML Tools.
Currently Scope is limited to providing basic text editing features for RelaxNG and providing XML validation and content assistance based on RelaxNG.
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:
- RelaxNG Compact Syntax editor including standard features like:
- Syntax Coloring
- Content Assistance
- Preference pages,
- New File Wizards
- RelaxNG Validation and Content Assistance for the XML Editor and Tooling.
- Provide content assistance to the XML Editor based on a RelaxNG grammar.
- Validate an XML file using a RelaxNG grammar.
Possible future features
- Graphical Designer.
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.
It will leverage the following existing views.
- Project Explorer
- Outline View
- Properties View
- Problems View
- Templates View
Possible extension points include:
- RelaxNG Validation Engines - Allows for the selection and installation of various RelaxNG Engines
We propose this project should be undertaken as an incubator project with the Web Tools project.
- David Carver (WTP Source Editing)
- Oisin Hurley
- Martin Schmied (University of Economics, Prague) - RelaxNG validation and content assistance
- David Carver - RelaxNG Compact Syntax Editor.
Initial Code Contribution
The initial code contribution comes from the Martin Schmied. David Carver has also contributed a RelaxNG Compact Syntax Editor. Both code contributions are attached to bug 281529.
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.
There is a large XML Community that has a need for a RelaxNG editor and validation framwork that integrates with the existing eclipse frameworks. Part of this community prefers exclusively the RelaxNG framework. In addition the PHP community and Zend recommend RelaxNG over the W3C schema as a validation framework. RelaxNG is an ISO standard so does have international support as well.
Tentative Development plan
The tentative plan is the be incubating by the end of 2009. 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.