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=34&rev2=35 -------------------------------------------------- . 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 [3] 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 <override> semanitcs Handler 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 . - . Implementation of these components need to take into account cyclic dependencies which could occur in <override> transformations. As discussed in the beginning these scenarios occur when the overriding paths go through a cycle of dependencies (ie:- include's) ,especially since <override> sematics inturn apply for included schemas. Each time “Transformation Manager” finds an included schama component it would transform that into a <override> component with "schemaLocation" being that of the included schema.However after applying necessary override transformations ,the respective <override> components(residing in overriding schema) would be replaced by <include>s pointing to the overriden schemas. For example if schema A overrides B which includes C and C inturn overrides A , the transformations would happen as follows. A will include B' (transformed/overriden version of B. ) , B' includes C' (transformed/overriden version of C) , C' includes A' (transformed/overriden version of A with merged overrides of both A and C ) and also similarly A' incl. B" ,B" incl. C" , C" incl. A" and so on. However at the point of including A' , if “Transformation Manager” sees that it differes with A then it would handle name collisions via "”Duplicates Handler” logic. Otherwise it would continue to the point of including A" , where it would be notified of a cyclic dependency via “Dependency Analyzer” and would stop processing the cycle(since no point continuing the same cycle) and continue with the schema processing work that yet to be completed. + . Implementation of these components need to take into account cyclic dependencies which could occur in <override> transformations. As discussed in the beginning these scenarios occur when the overriding paths go through a cycle of dependencies (ie:- include's) ,especially since <override> sematics inturn apply for included schemas. Each time “Transformation Manager” finds an included schama component it would transform that into a <override> component with "schemaLocation" being that of the included schema.However after applying necessary override transformations ,the respective <override> components(residing in overriding schema) would be replaced by <include>s pointing to the overriden schemas. For example if schema A overrides B which includes C and C inturn overrides A , the transformations would happen as follows. A will include B' (transformed/overriden version of B. ) , B' includes C' (transformed/overriden version of C) , C' includes A' (transformed/overriden version of A with merged overrides of both A and C ) and also similarly A' incl. B" ,B" incl. C" , C" incl. A" and so on. However at the point of including A' , if “Transformation Manager” sees that it differs with A then it would handle name collisions via "Duplicates Handler” logic. Otherwise it would continue to the point of including A" , where it would be notified of a cyclic dependency via “Dependency Analyzer” and would stop processing the cycle(since no point continuing the same cycle) and continue with the schema processing work that yet to be completed. . Following is a very simplified data flow diagram indicating the general control flow of schema processing with the proposed <override> extension in place.As described earlier this shows how our proposed <override> Handler extension works with XSD Handler to produce desired schema grammer with necessary <override> sematics info applied. @@ -133, +133 @@ . . 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 == - '''''[1] http://www.w3.org/TR/xmlschema-1/#key-fullyConforming ''''' + '''[1]''' [[http://www.w3.org/TR/xmlschema-1/#key-fullyConforming]] - '''''[2] http://www.w3.org/TR/2006/REC-xml11-20060816/ ''''' + '''''[2] '''''[[http://www.w3.org/TR/2006/REC-xml11-20060816/]] - '''''[3] http://www.w3.org/TR/xmlschema11-1/#override-schema ''''' + '''''[3] '''''[[http://www.w3.org/TR/xmlschema11-1/#override-schema]] - '''''[4] http://www.w3.org/TR/xmlschema11-1/#modify-schema ''''' + '''''[4] '''''[[http://www.w3.org/TR/xmlschema11-1/#modify-schema]] - '''''[5] http://www.w3.org/TR/xmlschema11-1/#override-xslt ''''' + '''''[5] '''''[[http://www.w3.org/TR/xmlschema11-1/#override-xslt]] - '''''[6] http://www.w3.org/TR/xmlschema11-1/#chameleon-xslt ''''' + '''''[6] '''''[[http://www.w3.org/TR/xmlschema11-1/#chameleon-xslt]] - '''''[7] https://wso2.org/repos/wso2/trunk/carbon/components/policy-builder ''''' + '''''[7] '''''[[https://wso2.org/repos/wso2/trunk/carbon/components/policy-builder]] - '''''[8] https://wso2.org/repos/wso2/trunk/carbon/components/jruby/ ''''' + '''''[8] '''''[[https://wso2.org/repos/wso2/trunk/carbon/components/jruby/]] - '''''[9] http://www.brics.dk/DSD/dsd2.html ''''' + '''''[9] '''''[[http://www.brics.dk/DSD/dsd2.html]] - '''''[10] [[http://sourceforge.net/projects/bissa/]] ''''' + '''''[10] '''''[[http://sourceforge.net/projects/bissa/]] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
