[jdom-interest] EntityResolver (DTD Not Found)

Jon Baer jonbaer at digitalanywhere.com
Fri Jul 20 03:43:57 PDT 2001


Brett McLaughlin wrote:

> > it but kept getting the same error/report.
>
> Try it out and let is know, but it should help.

No go.  In fact Im really puzzled, the javadoc @ Sun for SAX2 show this example for
an EntityResolver:

public class MyResolver implements EntityResolver {
   public InputSource resolveEntity (String publicId, String systemId)
   {
     if (systemId.equals("http://www.myhost.com/today")) {
              // return a special input source
       MyReader reader = new MyReader();
       return new InputSource(reader);
     } else {
              // use the default behaviour
       return null;
     }
   }
 }

What I dont get here is how to make this work with SAXBuilder if I can't get access
to the Reader here (or FileReader).  What is the InputSource I should return back?
Throwing back null still gives this error:

Warning: Could not load aiml/std-65percent.aiml(Error on line 2 of document file
:/C:/WINDOWS/Desktop/Alicebot/server/aiml/std-65percent.aiml: External entity not
found: "http://www.alicebot.org/dtd/aiml-1.0.dtd".)

From:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE aiml PUBLIC "-//A.L.I.C.E. AI Foundation//Artificial Intelligence Markup
Language 1.0//EN" "http://www.alicebot.org/dtd/aiml-1.0.dtd">

Using:

SAXBuilder builder = new SAXBuilder();
builder.setValidation(false);
builder.setEntityResolver(new NoDTDEntityResolver());






More information about the jdom-interest mailing list