Hey Alby,
Do you think this will be sufficient? The problem I am thinking
about is this: We have a top level schema A that includes B, C and D. B
uses some components from C. We want C to be a legal schema in its own
write. To do this it imports A (we could import C, but both are legal).
So you now have the problem that the grammars in the URI are not the same.
We need to amalgamate them.
I have a bad cold today :( so I hope this makes sense. By all
means ask me for more information if this is not clear.
Gareth
On Mon, 27 Oct 2003, Alberto Massari wrote:
> Gareth,
> it seems to me that we could fix this problem by changing the following
> line (inside IGXMLScanner::loadGrammar and SGXMLScanner::loadGrammar) from
>
> fGrammarResolver->useCachedGrammarInParse(false);
>
> to
>
> fGrammarResolver->useCachedGrammarInParse(toCache);
>
> In fact, if we are going to cache the grammar after loading it, we should
> re-use the grammars already found in the pool, or the exception will occur
> (or, if we decide to silently skip the caching of a duplicate grammar, an
> inconsistent set of grammars will be cached).
> I am inclined to check in this change, unless Khaled has something to say
> about it.
>
> Alberto
>
> At 13.35 07/10/2003 +0100, Gareth Reakes wrote:
> >Hi,
> >
> > > Example:
> > > schema B includes schema A
> > > schema C includes schema A
> > >
> > > loadGrammer() of schema B failes because target namespace of schema A is
> > > already known.
> >
> >I have also come across this issue, all be it in a slightly more
> >convoluted way.
> >
> > >
> > > I helped myself with adapting the GrammarResolver::cacheGrammars()
> > function.
> > > The new behaviour is to ignore caching of a new schema that is already
> > > known, and not to throw an exception as in original code.
> > > With this little change anything (preparsing and validation) works fine.
> >
> >As did I, although this has some clear problems if you have a hierarchy of
> >schemas and are including from parts of it.
> >
> > >
> > > Here my questions:
> > >
> > > - Are there any reasons why GrammarResolver throws an exception if it
> > > should add an new Grammar to the cache? (Maybe I don't see other
> > > impacts yet)
> >
> >Yes, it it relates to your suggestion below. We currently do not have
> >the ability to test for equality of the components. The schema spec has
> >this to say:
> >
> >NOTE: The above is carefully worded so that multiple <include>ing of the
> >same schema document will not constitute a violation of clause 2 of Schema
> >Properties Correct (�3.15.6), but applications are allowed, indeed
> >encouraged, to avoid <include>ing the same schema document more than once
> >to forestall the necessity of establishing identity component by
> >component.
> >
> >
> >So I think that we are currently incorrect by not allowing this. In fact,
> >one of out products in development requires this functionality. Xerces-J
> >has a problem with it as well.
> >
> >
> > >
> > > - Wouldn't be this change be useful for all xerces users?
> > >
> > > - I my eys an additional merging functionality would be useful, that
> > > updates and enhances definitions of an already cached grammar.
> > > Example: file a.xsd and b.xsd define elements of the same target
> > > namespace. It would be useful if the internal grammar representation
> > > would be a union of file a and b What do you think?
> >
> >I think so as well, but we would have to do some work to be able to
> >establish identity of the components.
> >
> >
> >Gareth
> >
> >
> >--
> >Gareth Reakes, Head of Product Development +44-1865-203192
> >DecisionSoft Limited http://www.decisionsoft.com
> >XML Development and Services
> >
> >
> >
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: [EMAIL PROTECTED]
> >For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
--
Gareth Reakes, Head of Product Development +44-1865-203192
DecisionSoft Limited http://www.decisionsoft.com
XML Development and Services
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]