Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Ws Wiki" for change 
notification.

The following page has been changed by VarunaJayasiri:
http://wiki.apache.org/ws/VarunaJayasiri-GSoC2008-expat

New page:
= Google Summer of Code 2008 – Project proposal =

|| Project || Integrate expat parser into Axis2/C soap engine  ||
|| Student Name || Varuna Jayasiri ||
|| Email || vpjayasiri at gmail dot com ||

== Synopsis ==

Axis 2/C currently supports the XML parsers 
libxml[[FootNote([http://expat.sourceforge.net/ The Expat XML Parser])]] and 
Guththila[[FootNote([http://www.cse.mrt.ac.lk/~premalwd/Projects/Guththila.html 
Guththila-Soap Parser])]]. It is possible to plug-in any XML parser to Axis2/C 
through its parser abstraction layer.

I will introduce Expat XML parser to AXIS2/C. Expat is probably the world 
fastest XML parser and it is a very robust parser. Expat will be plugged into 
Axis2/C through a wrapper using the XML reader/writer interface of Axiom. 

== Project ==

This project will consist of developing a pull layer and a Expat XML 
writer/reader wrapper for Axiom.

Expat is a push parser and Axiom interface is for a pull parser. Therefore a 
pull layer should be introduced to bridge them.  The pull layer should be 
implemented with internal call-back handlers on top of Expat.  The main 
challenge would be adding a pull interface to Expat without reducing its 
performance. 

With the introduction of the functions {{{ XML_StopParser }}} and {{{ 
XML_ResumeParser }}} it is possible to stop and resume parsing easily enabling 
pull parsing. These functions had been added specifically for this purpose. 
However, these functions will become obselete with Expat 3 
release[[FootNote([http://expat.sourceforge.net/dev/expat3.html Changes in 
Expat 3])]].

There are some third party pull layers on Expat; therefore it is possible to 
examine how they have done it. Expat is also working on a Pull API project and 
it would be possible to get their ideas on this as well.

== Deliverables ==

1. Expat read/write wrapper for Axiom. 

2. Unit test cases.

== Schedule ==

==== 1. Analysis and Design ====

Analyze the Expat parser and the interface of the Axiom and design a pull-layer 
for expat. A great attention will be given for performance of the parser at 
this stage.

-until end of May 

Deliverables: Design documentation 

==== 2. Implementation ====

Implement the pull layer for Expat and the wrapper to bridge it with Axiom. All 
code will be tested using unit tests. 

-until mid August 

Deliverables: A working Expat integration 

==== 3. Final Touch ====

Running complete tests with the help of the community and doing final touches 
to the code and documentations. 

-until end of August 

Deliverables: Completed Expat integration 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([http://www.cse.iitk.ac.in/users/acm/ ACM Regionals 
Kanpur])]], India with the team which was placed fourth. I was also in the team 
that developed Sinhala Search – the first Sinhala search 
engine[[FootNote([http://www.sinhalasearch.com Sinhala Search] - site is 
currently unavailable due to maintenance :P)]]. I have worked as a SAP 
developer at MAS Intimates and as a web developer at Paradox Software.

I am studying at the Faculty of Engineering, University of Moratuwa, Sri Lanka. 
I have been blogging for around 1 year – [http://www.xvpj.net Something 
Different], and I participate in 
Topcoder[[FootNote([http://www.topcoder.com/tc?module=MemberProfile&cr=21475659 
My Topcoder Profile])]] competitions regularly.

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]]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to