Ainsi parlait Edwin Goei :
> Guillaume Rousse wrote:
> > Hello.
> > I'm trying to resolve problem concerning use of crimson with argouml.
> > Latest CVS version loads document fine using xerces-j 1.4.4, but fails
> > using crimson 1.1.3, with following message: "unable to resolve relative
> > URI with no base URI"
> >
> > Here is code snipplet:
> > public abstract class SAXParserBase extends HandlerBase {
> > [...]
> >  SAXParserFactory factory = SAXParserFactory.newInstance();
> >     factory.setNamespaceAware(false);
> >     factory.setValidating(false);
> >     try {
> >       SAXParser parser = factory.newSAXParser();
> >       InputSource input = new InputSource(is);
> >       parser.parse(input,this);
> >     }
> > [...]
> > }
> > I found that resolveEntity() callback occurs using xerces-j, but not with
> > crimson. I tried to register explicitly the class as entity resolver :
> > parser.getXMLReader().setEntityResolver(this);
> > No more success.
>
> Does your instance doc contains a relative URI reference to a DTD?  If
> so, then the parser cannot resolve it b/c the InputSource does not have
> an associated URI.  You might try InputSource.setSystemID() to set the
> base URI of the instance doc.
The document has relative references to a dtd and other documents, but all 
documents comes from a compressed file, and the dtd is part of the 
application archive, so i doubt a SystemID() will be of any help there. The 
custom EntityResolver is the correct solution, but i can't understand why 
only xerces-j uses it, and not crimson.
-- 
Guillaume Rousse <[EMAIL PROTECTED]>
GPG key http://lis.snv.jussieu.fr/~rousse/gpgkey.html

---------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to