[jdom-interest] Re: Finding the DTD
Aidan Killian
aidan at concordianet.com
Tue Sep 5 03:28:19 PDT 2000
Hi,
I have a slightly more complex version of this problem.
Typically I recieve XML files with the following DOCTYPE
statement:
<!DOCTYPE FpML PUBLIC "-//FpML//DTD Financial product Markup Language
(1-0))//EN">
A System Identifier string ("FpML-1.0.dtd") may follow the public
identifier. This is quite a common situation in the SGML world that is
addressed by the Oasis Open Catalog standard.
When using Xerces I use the EntityResolver interface:
public class Catalog implements EntityResolver
{
public InputSource resolveEntity (String publicId, String systemId)
{
// ...
return new InputSource(new FileReader(DTDpath));
}
}
I do not believe the build(InputStream, String) method solves
this problem. (B.T.W. I only know how to implement this in Xerces and
XML4J 1.x; I am not sure if other parsers even support entity mapping).
Great work; I really like JDOM.
Best regards,
Aidan Killian (ConcordiaNet Inc.)
> Message: 10
> Date: Mon, 04 Sep 2000 22:50:01 +0200
> From: Jason Hunter <jhunter at collab.net>
> To: "Muhle, Daniel" <Daniel.Muhle at mettenmeier.de>
> CC: "'jdom-interest at jdom.org'" <jdom-interest at jdom.org>
> Subject: Re: [jdom-interest] Finding the DTD
>
> > SAXBuilder builder = new SAXBuilder();
> > Document doc = builder.build(in);
> >
> > I get an FileNotFoundException, because the parser tries to
> > find the DTD in a directory relative to
> > the directory, the Webserver is started from.
>
> That's why there's a build(InputStream, String) method.
>
More information about the jdom-interest
mailing list