Frank Zhou wrote:
> Hi Alberto,
>
> Thanks for the explanation. So what are the best
> wordarounds then? Although modifying the schemas
> really not an option for me (I got the issue from one
> of my biggest customer, and they have standardize
> their schemas this way, also seems like all other
> tools like XMLSpy can load their schemas), I still
> would like to explore them. It seems to me that I
> don't have a solution here, because in my real user
> case, a.xsd will use some types in b.xsd, and b.xsd
> will use some types in c.xsd, so even if I have a.xsd
> including c.xsd, I still can not let a.xsd import
> b.xsd, and b.xsd import a.xsd (instead of c.xsd), this
> won't work either, right?
>
> As a workaround, is it possible that I just change the
> Xerces code to keep loading the grammar even if it is
> found in the pool? I mean, in preprocessImport in
> traverseSchema.cpp, remove the lines if (grammarFound)
> return;
In a.xsd, you could <include> c.xsd.
What I understand is that you want to realize a multi-author system for
extending a base namespace. On toplevel, a.xsd describes a framework and
c.xsd offers some base types. Now some random b.xsd define specialized types
that are part of the framework (a.xsd imports them), and they all use the
base types in c.xsd. Since a.xsd and c.xsd share the same namespace, a.xsd
(the root schema) should include it and play the role of the unique namespace
url.
HTH (if you happen to get this working with xerces - can you post some neat
examples in the xerces-user ML :)
Axel
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]