On the xerces-j list about 3 years ago, Michael said:

On 1/29/07, Michael Glavassevich <[email protected]> wrote:
> If you were expecting to resolve the schema documents based on their target 
> namespace 
> you should use an API which has a resolver that will pass that 
> information (see the JAXP 1.3 Validation API [2] and LSResourceResolver [3]) 
> to you.

I really want to be able to do this usng xercesc, but I keep hitting walls.

I am not sure if it because of the API statement
The LSParser will then allow the application to intercept any external 
entities, including the 
external DTD subset and external parameter entities, before including them. 
The top-level document entity is never passed to the resolveResource method.

but for however I try, when parsing ( with DOMLSParser ) an xml document such 
as 

<foo xmlns="http://www.foo.org"; >
...
</foo>

there is no callback to my resolveResource() method.

I am setting up my DOMLSResourceResolver with

conf->setParameter(XMLUni::fgDOMResourceResolver,myResourceHandler); 

(I have tried using XMLEntityResolver classes also, to no avail).

Also (and this maybe related) - it appears to me that unless the grammar is 
already loaded against the root element's namespace, 
the xml document is treated as if it were a DTD instance, rather than a Schema 
instance, 
even though there is no DOCTYPE declaration, and there is clearly marked an 
xmlns 'attribute' on the root element.

Any answers?

Reply via email to