Re: [xml-dev] Problem parsing XML file with Xerces-J

From
Midsummer Sun <>
To
Michael Kay <>
Date
2005-03-31T12:20:12Z
ID
<>
Thread
Re: [xml-dev] Problem parsing XML file with Xerces-J
I am obliged by your help. 

So I have done this change to my Java class (which extends
DefaultHandler) i.e. added this method definition..

public InputSource resolveEntity(java.lang.String publicId,
                                   java.lang.String systemId)
                     throws java.io.IOException, SAXException
 {

    return new InputSource();
 }

I guess that "return new InputSource()" method call will return an
InputSource pointing to an empty DTD(you suggested this workaround).
Please correct me if I am wrong.

But the program is giving error:

XYZ.java:125: resolveEntity(java.lang.String,java.lang.String) in XYZ
cannot override resolveEntity(java.lang.String,java.lang.String) in
org.xml.
sax.helpers.DefaultHandler; overridden method does not throw java.io.IOException

  public InputSource resolveEntity(java.lang.String publicId,
                     ^
1 error

Now this seems to be a Java exception handling problem.. I am good at
Java but not too good!

Please tell the remedy.

Best regards,


On Thu, 31 Mar 2005 12:26:54 +0100, Michael Kay <> wrote:
> You need to do two things
> 
> (a) register your EntityResolver with the parser - you've done this
> 
> (b) use your EntityResolver to resolve URI references - you seem to have
> omitted this step.
> 
> This means you need to implement the resolveEntity() method to do something
> useful when presented with the system ID of the external DTD - like
> returning an InputSource pointing to an empty DTD.
> 
> The default implementation of resolveEntity() in DefaultHandler does
> nothing, you need to override it.
> 
> Michael Kay
> http://www.saxonica.com/