Google Summer of Code 2007 Mid-term Summary


Canonical XML Implementation on Apache AXIOM


Saliya Ekanayake (


Ruchith Fernando (

Wiki (proposal)

PDF version



The intention of the project was to implement Canonical XML ( and Exclusive XML Canonicalization ( based on Axiom. Apache XMLSec project provides a DOM implementation of these two specifications. Thus it was decided to port the existing architecture to Axiom (see the proposal). The rest of this document presents the summary of the work done up to now (11th July 2007).

Summary of the Work Done

I've kept very much close with my initial plan of the project. The initial stage was to come up with the design. I've focused more on adhering to the existing design as it's much familiar to the users. Thus I chose the following high level design.


| + Canonicalizer Engine

| + Helpers

The class Canonicalizer presents the set of alternate canonicalization methods. The CanonicalizerEngine presents the set of classes which actually implements the functionality. Helpers represent the classes that provide utility functionality. The architecture for the CanonicalizerEngine is presented in the PDF version of this summary.

It took more time than I initially expected to do the designing as I had to take a deep look into the existing DOM implementation of XML C14N. The implementation of the project was the next step and the work I've completed is as follows.

Implement helper classes

It was not clear about all the necessary helper classes. Thus I implemented similar helper classes as those of the existing one. These are very much completed except for few future modifications.

Implement the canonicalizer engine

I’ve completed the CanonicalizerSpi almost and I reworked the existing code for the classes,Canonicalizer20010315 with and without comments and Canonicalizer20010315Excl with and without comments (see the PDF version).

Implement the canonicalizer

I’ve partially implemented this class.

Next Steps

The remaining work consists of the followings.


The effort I’ve put in was greatly devoted on the designing of the project and understanding the existing implementation. Thus it took me little more time than I expected thus I’ve some more to complete in the implementation. This initial time expenditure, however, is very much helpful in further development process as I’ve gone through the existing implementation. Thus I believe I’m in good condition with the project so far.

SaliyaEkanayake/GSoC2007Proposal/AXIOM-C14N/midterm_summary (last edited 2009-09-20 23:35:32 by localhost)