Project |
XPath Language for Axiom/C |
Student Name |
Varuna Jayasiri |
vpjayasiri at gmail dot com |
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.
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
|
|
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
|
|
|
|
|
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.
2. Unit test cases.
3. XPath API documentation and a manual.
Get more ideas about required API, features and algorithms from the community, and familiarize myself with Axis, Axiom and XPath querying.
-until mid May
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
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
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
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
|
|
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
|
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.
<<FootNote>>