Hi Khaled, i have created the following wiki on my draft proposal for "Implementing XML Schema 1.1 overriding component definitions (<xs:override>)" for GSoc 2010..really appreciate your feedback regarding this..if this is ok to go with i would be able to submit it tomorrow or sooner (before April 09th) ...
http://wiki.apache.org/xerces/gsoc_xs_override_proposal regards, udayanga On Thu, Mar 25, 2010 at 2:37 AM, Khaled Noaman <[email protected]> wrote: > > Hi Udayanga, > > See my comments below (<kn>). > > Regards, > Khaled > > > > > From: > udayanga wickramasinghe <[email protected]> > To: > [email protected] > Date: 03/24/2010 04:46 PM Subject: Re: About Xerces projects for GSoc 2010 > ------------------------------ > > > > Hi Khaled, > > thnx for your feedback. please see some of my comments, below... > > > On Wed, Mar 24, 2010 at 9:13 PM, Khaled Noaman > <*[email protected]*<[email protected]>> > wrote: > > Hi Udayanga, > > According to your example, B and B' would be considered 2 different > documents and we would end up with conflicting components, not just e2 > (assuming B.xsd had other global components). The reason we consider B and > B' as different documents is the facet that B' now contain a different > declaration for e2. > > If xs:override did not apply from C->B, then in that case we can consider B > and B' the same and there would be no duplicate components. > > yes.....just to verify...what you mean is like , if B.xsd has the following > format , > > Schema B > > <xs:schema > xmlns:xs="*http://www.w3.org/2001/XMLSchema*<http://www.w3.org/2001/XMLSchema>"> > > > <xs:override schemaLocation="schemaC.xsd"> > > <xs:element name="e1" type="xs:int"/> > > <xs:element name="e2" type="xs:date"/> > <xs:override> > > <xs:element name="e3" type="xs:string"/> > > </xs:schema> > > then C->B overrride won't ocuur , since overrdden schema B.xsd , dont have > either element e2 or e1 for override. Hence no schematic difference in [B] > and [B'] and schema inclusion for both A.xsd and C.xsd would be idential...i > suppose this is what you meant... > > <kn>Yes. That's what I meant</kn> > > > You would need to apply override to check for cyclical dependencies.As I > mentioned above if override does not modify the overridden schema, then 2 > similar schema documents (B and B') would be treated as similar (in other > words, no duplicates). > > As from the above example , nw i see after only applying override we can > definitely say for sure whether there exists cyclic dependency conflicts.. > > Consider the following case: > A include B and C, B and C override D. Now you end up with 2 versions of D > (D' included by B and D'' included by C). If neither B or C changes D, then > both D' and D'' are considered the same. > > > It would be great if you can start by looking at the following packages in > Xerces-J: > * org.apache.xerces.impl.xs.traversers - schema processing classes > (XSDHandler is a starting point) > * org.apache.xerces.impl.xs - classes representing the different schema > components as well the main class for schema validation (XMLSchemaValidator) > * org.apache.xerces.impl.xs.models - content model classes (e.g. DFA. all, > empty) > > sure i'll go through the above implementations n interfaces and get to you > incase i want to clarify some finer points....thnx for the details....Btw > are there any architecture docs/articles on Xerces Xmlschema processing ? (i > found several docs related to Xerces2 parsers,XNI and validators but not a > lot on XmlSchema ) .thnx again.. > > <kn>Check the documentation for Xerces-J ( > http://xerces.apache.org/xerces2-j/xml-schema.html). You can also take a > look at the samples that are included as part of Xerces-J source code.</kn> > > Regards, > Udayanga > > > > -- http://www.udayangawiki.blogspot.com
