Dear Wiki user,

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

The "gsoc_xs_override_proposal" page has been changed by uswick.
http://wiki.apache.org/xerces/gsoc_xs_override_proposal?action=diff&rev1=13&rev2=14

--------------------------------------------------

  }}}
   . Implementation of xs:override should take into account the aforementioned 
factors so that dependencies are correctly evaluated and necessary schema 
preprocessing is performed.
  
+  . Xerces2-j  XMLSchema processing and supporting structures are mainly 
handled by classes located in  org.apache.xerces.impl.xs  package.  Primarily 
XMLSchemaFactory  and XMLScehmaLoader  are responsible for loading(ie:- 
#loadGrammar() )  and handling schemas from a set of sources. Actually 
XMLSchemaLoader acts as an wrapper  that provides necessary inputs for a 
XSDHandler (org.apache.xerces.impl.xs.traversers)  instance which will inturn 
be  coordinating the construction of a grammar object corresponding to a schema 
throughout several stages. XSDHandler instance is responsible for parsing each 
schema source (including the ones’s that are imported resulting in other 
grammers) , preprocessing/resoving /loading grammers etc.
+ 
+  . XSDHandler#parseSchema()  is responsible for coordinating these critical 
stages of schema composition which includes ,
+ 
+  . a) constructTrees – constructs XSschema objects .Attempts to resolve 
<include>,<redefine> schema components and builds a dependency map .
+ 
+  . b) buildGlobalNameRegistries - builds registries for all 
globally-referenceable names. Keeps track of <redefine> component mapping.
+ 
+  . c) traverseSchemas – traverse globally declared elements with appropriate 
traverser object (ie:-SimpleType/ComplexType/Attribute traversers) and handle 
them accordingly.
+ 
+  . d) traverseLocalElements-Traverse all the deferred local elements
+ 
+  . e) resolving ID/Key references
+ 
+  . f) storing imported grammars and building the Grammer Pool
+ 
+  .
+ xs:override implementation intends to extend this functionality to implement 
<override> structure semantics. Also several supporting structures will be 
needed so that <override>  schema components will be identified during schema 
processing. For example extending of following class structures.
+ 
+  . •  org.apache.xerces.impl.xs.SchemaSymbols – keeps track of collection of 
symbols used in parsing Schema Grammer. Need to introduce new <override> 
grammer symbols to this.
+ 
+  . •  org.apache.xerces.impl.xs.XSDDescription  - keeps track of all 
information specific to XML Schema grammars. This can be used to indicate the 
Schema processor that the current schema document is overridden by another 
scheama document.
+ 
+  . Additionally Xs:override implementation may require many new 
components/data structures to be added to org.apache.xerces.impl.xs package  
inorder to handle different scenarios regarding <override> semantics as was 
described in the beginning.
+ 
+ 
+ 
  == Things I have Done So far ==
   . Since this project is about implementing a XMLSchema 1.1 specification 
construct , I had to go through this specification docs several times to 
understand the exact structure and semantics of the component I’m going to 
implement which I think is of vital  importance when it comes to the design n 
implementation. Previous discussions (that has happened in Xerces-j-dev mail 
archives) about this xs:override support , online articles and tutorials also 
helped a lot in this cause. I also interacted with Xerces mailing list 
(especially with my mentor) to clarify critical points and implementation 
details. Since knowing Xerces and it’s internal framework(XNI) is obviously 
essential for the implementation I had to dig into various documentation, API 
information ,samples regarding Xerces Design,architecture and especially XML 
schema processing. I did download source code of Xerces2-j from trunk and build 
the code inorder to try and test  out some samples to get a hang on the flow of 
things related to schema loading and  processing.
  
@@ -70, +97 @@

   * Documentation (java docs + design details) on xs:override 
implementation/API
  
  == Community Interaction ==
- Initially i had trouble selecting a project since the project i was keeping 
in mind was already undertaken. Xerces-2j mailing list was really helpfull in 
this ,giving me lot of feedback on available projects  that was not even 
initally declared as Summer projects for 2010 .  I also was later able to get 
lot of insight on xs:override specification semantics and implementation 
details through the interaction on mails from  xerces-j dev community . Through 
this I managed to digg into and clarify lot of details that would be very 
helpful through out my project and has definitely been a much needed guidance 
in writing this proposal as well.
+ Initially i had trouble selecting a project since the project i was keeping 
in mind was already undertaken. Xerces-2j mailing list was really helpfull in 
this ,giving me lot of feedback on available projects  that was not even 
initally declared as Summer projects for 2010 .  I  was later able to get lot 
of insight on xs:override specification semantics and implementation details 
through the interaction on mails from  xerces-j dev community . Through this I 
managed to digg into and clarify lot of details that would be very helpful 
through out my project and has definitely been a much needed guidance in 
writing this proposal as well.
  
  == About me ==
   . I'm a Computer Science Engineering undergraduate (final year),of  the 
department of Computer Science and Engineering, University of Moratuwa, Sri 
Lanka . I'm very much passionate about Computer science  and am especially 
interested in  subject areas  related to Compiler Theory ,Distributed Systems 
and Enterprise Middelware and also Artificial Intelligence.I do have experience 
in open source development and related aspects and always loved working in such 
a dynamic and encouraging environment .
-  . I have worked on projects related to Apache Axis2 where I  developed a 
tool [5](incubating) to extract WS-Policy(ie:-Security Policy)  from WS policy 
compliant SOAP messages. Tool is especially useful in scenarios such as for 
clients who wish to build compatible client side policy for repective Services 
which don’t expose their messaging policy explicitly. This gave me a great 
understanding on WS:Security specifications and on mechanisms used  by security 
modules such as Apache Rampart as well.  Furthermore  i developed Axis2 
Messaging and Service Level  Infrastructure for Rubyscript [6], so that Ruby 
Scripts can be exposed and accessed via WebServices by clients .
+  . I have worked on projects related to Apache Axis2 where I  developed a 
tool [7](incubating) to extract WS-Policy(ie:-Security Policy)  from WS policy 
compliant SOAP messages. Tool is especially useful in scenarios such as for 
clients who wish to build compatible client side policy for repective Services 
which don’t expose their messaging policy explicitly. This gave me a great 
understanding on WS:Security specifications and on mechanisms used  by security 
modules such as Apache Rampart as well.  Furthermore  i developed Axis2 
Messaging and Service Level  Infrastructure for Rubyscript [8], so that Ruby 
Scripts can be exposed and accessed via WebServices by clients .
-  . I also do have experience involved in projects related to Eclipse plugins, 
OSGi  , XML parsers(this for our internal module DSD2.0[7] parser) and Data 
Mining (ie:-Collaborative Filtering), which got me  working in a wide variety 
of frameworks ,programming/scripting   languages such as Java ,C,C++, 
Javascript,Ruby,etc  and under various  platforms of  Linux and Windows. I am 
currently involved in implementing a TupleSpace based Distributed System 
framework (which runs on top of a DHT[distributed hash table] named FreePastry 
[opensource implementation of Microsoft Pastry] )  for our final year project 
,which facilitates time and space decoupling as well as content based 
addressing for messages  in a distributed environment [8]. I consider my self a 
motivated  computer science enthusiast who is willing to self learn and accept 
challenges and achieve them to the best of my ability.
+  . I also do have experience involved in projects related to Eclipse plugins, 
OSGi  , XML parsers(this for our internal module DSD2.0[9] parser) and Data 
Mining (ie:-Collaborative Filtering), which got me  working in a wide variety 
of frameworks ,programming/scripting   languages such as Java ,C,C++, 
Javascript,Ruby,etc  and under various  platforms of  Linux and Windows. I am 
currently involved in implementing a TupleSpace based Distributed System 
framework (which runs on top of a DHT[distributed hash table] named FreePastry 
[opensource implementation of Microsoft Pastry] )  for our final year project 
,which facilitates time and space decoupling as well as content based 
addressing for messages  in a distributed environment [10]. I consider my self 
a motivated  computer science enthusiast who is willing to self learn and 
accept challenges and achieve them to the best of my ability.
   . .
  
  == REFERENCES ==
@@ -91, +118 @@

  
  [6] http://www.w3.org/TR/xmlschema11-1/#chameleon-xslt
  
- [5] https://wso2.org/repos/wso2/trunk/carbon/components/policy-builder
+ [7] https://wso2.org/repos/wso2/trunk/carbon/components/policy-builder
  
- [6] https://wso2.org/repos/wso2/trunk/carbon/components/jruby/
+ [8] https://wso2.org/repos/wso2/trunk/carbon/components/jruby/
  
- [7] http://www.brics.dk/DSD/dsd2.html
+ [9] http://www.brics.dk/DSD/dsd2.html
  
- [8] http://sourceforge.net/projects/bissa/
+ [10] http://sourceforge.net/projects/bissa/
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to