[
Lists Home |
Date Index |
Thread Index
]
- To: Michael Kay <mike@saxonica.com>
- Subject: Re: [xml-dev] Problem parsing XML file with Xerces-J
- From: Midsummer Sun <midsummer.sun@gmail.com>
- Date: Thu, 31 Mar 2005 17:50:12 +0530
- Cc: xml-dev@lists.xml.org
- Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:reply-to:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:references; b=Z2ydJeMLOYFXLDpdRDEmVJFxfq+oZaS8BW2+L5TG5GF98TZDwvBjlyLzCmTmaZWycp2Ct7BfOANpew8NgzwnoO/ihdJyA6R2gA2xmBeUDxFGe0Fy8MwBLLOcBp6qUw4zP/OSopocT1Y2fzOFl1WAD9fOmOX9NV06OU7txMiPF6k=
- In-reply-to: <424bdf7e.7951e70a.3b2f.7f32SMTPIN_ADDED@mx.gmail.com>
- References: <bb5e8b8605033103075ab8fe0c@mail.gmail.com> <424bdf7e.7951e70a.3b2f.7f32SMTPIN_ADDED@mx.gmail.com>
- Reply-to: Midsummer Sun <midsummer.sun@gmail.com>
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 <mike@saxonica.com> 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/
|