Google Summer of Code 2008 – Project proposal
Project | XPath Language for Axiom/C |
Student Name | Varuna Jayasiri |
vpjayasiri at gmail dot com |
Synopsis
Axiom is the XML infoset model of Apache Axis2/C. However Axiom does not have XPath support, and it is very useful to have XPath language support for Axiom.
This project is to develop an XPath extension for Axiom. Its purpose is to make it convenient for modules, services and clients to query data.
Project
This project can be divided into two main areas: XPath parser and XPath engine. These two are separated to make the code manageable and extendable.
XPath parser has the responsibility to parse XPath expressions. Since XPath 1.0 implementation is sufficient at this stage I will be implementing a XPath 1.0
Footnote | ||
---|---|---|
|
Footnote | ||
---|---|---|
|
Parsed XPath expressions will then be processed by the XPath engine. It will return results as pointers to elements of the XML tree (whenever it is possible), so that it is possible to change contents of the elements of the tree; thus, enabling the creation of Axiom trees (Similar to libxml).
Since XPath parser is not tightly coupled with the XPath engine it’ll be possible to implement newer versions of XPath specifications without changing the code of XPath engine. Also, any improvements of the engine will not affect the parser.
API’s of existing XPath engines such as Jaxen
Footnote | ||
---|---|---|
|
Footnote | ||
---|---|---|
|
Footnote | ||
---|---|---|
|
Footnote | ||
---|---|---|
|
Footnote | ||
---|---|---|
|
I will write unit tests to test each of the modules of code I write so that a reliable XPath extension could be provided. And I will try to develop deliverables regularly as possible so that the community can try it out and give suggestions.
At this stage a higher priority will be given to designing a solid API and writing manageable code, but sufficient consideration will be given to the performance of the XPath engine.
Deliverables
- XPath extension for Axiom.
2. Unit test cases.
3. XPath API documentation and a manual.
Schedule
1. Analysis and Information Gathering
Get more ideas about required API, features and algorithms from the community, and familiarize myself with Axis, Axiom and XPath querying.
-until mid May
2. Design
Design the XPath extension, and plan the development process broken down into stages, with the help of the mentor.
-until end of May
Deliverables: API and Design documentation
3. Implementation
Implement the XPath parser and XPath Engine. Small changes may done to the design at this stage. Components will be implemented such that usable pieces can be released regularly (for review as well as for use). Documentations and unit tests will also be constructed at this stage.
-until mid August
Deliverables: A running XPath extension for Axiom
4. Final Touch
Running complete tests with the help of the community and doing final touches to the code and documentations. Manual will also be completed at this stage.
-until end of August
Deliverables: Completed XPath extension with documentation and test data
Biography
I’ve been very enthusiastic about computers from my early ages and I participated in International Olympiad in Informatics 4 times and won a gold medal and 2 silver medals. I also participated at ACM regional’s in Kanpur
Footnote | ||
---|---|---|
|
Footnote | ||
---|---|---|
|
I am studying at the Faculty of Engineering, University of Moratuwa, Sri Lanka. I have been blogging for around 1 year – Something Different, and I participate in Topcoder
Footnote | ||
---|---|---|
|
Although I haven't been involved in open source projects before I have been doing similar projects at my workplaces, and I have about 5 years of experience of programming with C/C++. Therefore, I think I will be able to develop a robust XPath extension for Axiom.
References
<<FootNote>>
Footnotes Display |
---|