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=29&rev2=30 -------------------------------------------------- }}} == Description == - . XML schema specification version 1.1 specifies syntax and semantics of “Overriding component definitions<override>”[3] or xs:override under “Schemas and Namespaces: Access and Composition” . The new component definition is a powerful addition to the XML schema composition framework which tries to mitigate some of the constraints present in similar constructs such as xs:redefine or <redefine> schema components. The <redefine> construct defined in “Including modified component definitions (<redefine>) “[4] on XMLSchema specification is useful in schema evolution and versioning. It can be used only when there exists some restriction or extension relation between the old component and the new redefined component. But there are occasions when the schema author simply wants to replace old components with new ones without any constraint. Also, existing XSD processors have implemented conflicting and non-interoperable interpretations of <redefine>. And to add to the trouble <redefine> construct is declared •deprecated• in XML Schema 1.1 [2]. Hence as mentioned in the beginning , <override> construct tries to avoid these bottlenecks and allow unconstrained replacement as and when needed. + . XML schema specification version 1.1 specifies syntax and semantics of “Overriding component definitions<override>”[3] or xs:override, under “Schemas and Namespaces: Access and Composition” . The new component definition is a powerful addition to the XML schema composition framework which tries to mitigate some of the constraints present in similar constructs such as xs:redefine or <redefine> schema components. The <redefine> construct defined in “Including modified component definitions (<redefine>) “[4] on XMLSchema specification is useful in schema evolution and versioning. It can be used only when there exists some restriction or extension relation between the old component and the new redefined component. But there are occasions when the schema author simply wants to replace old components with new ones without any constraint. Also, existing XSD processors have implemented conflicting and non-interoperable interpretations of <redefine>. And to add to the the inflexibility , <redefine> construct is declared •deprecated• in XML Schema 1.1 [2]. Hence as mentioned in the beginning , <override> construct tries to avoid these bottlenecks and allow unconstrained replacement as and when needed. . According to the XMLSchema 1.1 specification xs:override schema component is specified in the following form (override information item) , . {{{ <override @@ -52, +52 @@ . 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 for detecting duplicate collisions and redefine preprocessing . - . c) traverseSchemas – traverse globally declared elements with appropriate traverser object (ie:-SimpleType/ComplexType/Attribute traversers) and handle them accordingly. + . c) traverseSchemas – traverse globally declared elements with appropriate traverser object (ie:-SimpleType/ComplexType/Attribute traversers) ,validate and build the grammer accordingly. . d) traverseLocalElements-Traverse all the deferred local elements . e) resolving ID/Key references - . f) storing imported grammars and building the Grammer Pool + . f) storing imported grammars and building the Grammer Pool and XML SchemaModel. . . @@ -67, +67 @@ . . * extending XSDHandler#checkForDuplicateNames() - to include necessary control paths for <override> semantics ,detecting the scenarios where duplicate collisions can occur and flagginf these errors appropriately. * implementing XSDHandler#transformOverriddenComponents(currentSchema,childComponent,componentType,oldName,newName) - renaming/transforming overridden components taking into consideration overriding of <includes> and merging <overriding> components on respective schema locations - * extending XSDHandler#traverseSchemas() and traversers( org.apache.xerces.impl.xs.traversers) - to traverse override schema components , and also to take into account the behavior of each individual travereser objects on the application of xs:override semantics. + * extending XSDHandler#traverseSchemas() and traversers( org.apache.xerces.impl.xs.traversers) - to traverse override schema components , and also to take into account the behavior of each individual traverser objects on the application of xs:override semantics. . . @@ -76, +76 @@ . . • 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 schema document - . . 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 (ie:-implicit <override> semantics handling, etc) as was described in the beginning. + . . 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 (ie:-implicit <override> semantics handling,registry extensions, etc) as was described in the beginning. . . @@ -121, +121 @@ * 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 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. I am eagerly looking forward to working with Xerces community with this project and would like to make a positive contribution to Xerces-j team in every way i can. + . 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. I am eagerly looking forward to work with Xerces community on this project and would like to make a positive contribution to Xerces-j team in every way i can. == 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 . --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
