You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by Apache Wiki <wi...@apache.org> on 2010/04/03 00:38:50 UTC

[Xerces Wiki] Update of "gsoc_xs_override_proposal" by uswick

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=23&rev2=24

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

  
    . . Additionally xs:override implementation may require quite a few 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.
  
+   . .
+ 
+  . '''Implmentation'''
+ 
+  . Following is an abstract level view on the implementation of xs:override semantics as an extension to the current XML schema processing framework.
+ 
+  . . {{http://farm3.static.flickr.com/2686/4485386948_abe7fa82cd_o.jpg}}
+ 
+  . . XSD handler is the main component responsible for schema processing for Xerces-j .  After successful implementation, the proposed extension (xs:override Semantics Component) would seamlessly integrate into this current Schema processing framework so that <override> semantics can be applied on schema documents appropriately .The <xs:override> component has three main sub components , namely “Transformation Manager” , “Dependency Analyzer” and “Duplicates Handler” .The primary sub-component ,  “Transformation Manager”  have the task of applying necessary preprocessing and also override transformations on the respective schema components on which override semantics will be applied .It executes a very critical phase of <override> semantics implementation and  indeed would pave the way for the actual schema generation.
+ 
+  . Other sub-compnents , the ”Duplicates Handler” and “Dependency Analyzer” would come in to support the actions executed by “Transformation Manager” . Duplicates handler would provide necessary logic needed to detect duplicates and would try to handle them gracefully. “Dependency Analyzer” is also an important component since it would handle various tasks such as  calculating TargetSet’s[] of respective override components , supporting decisions of Duplicate Handler (ie:- in circular cases of overrides/includes ), etc . <xs:override> Semantics Component as a whole would be dependent on XSD Handler and vices versa  during different stages of schema processing , so that aforementioned tasks can be successfully completed and ultimately the grammar pool is constructed with new <override> schema semantics included . The component will also keep a connection to the “Override Component Registry” constructed in the initial phases (ie:-construct trees phase) of schema processing ,which would map different <override> components with respective schema Documents that are implicitly/explicitly be affected by them .
+ 
+  . Following is a very simplified data flow diagram indicating the general control flow of schema processing with the proposed  <override> extension in place.
+ 
+  . . {{http://farm5.static.flickr.com/4019/4485386942_2fce50a60d_o.jpg}}
+ 
+  . .
+ 
  == 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 and 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 the 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.Running through several samples (xs.QuerryXS ,xni.GrammerBuilder, jaxp.SourceValidator, xni samples,etc) and debugging them , really gave me a good inisght into to  Xerces framework...
  

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org