[jdom-interest] [NEWBEE] Open an XML-file by using a DTD in a JAR

Frank Sauer Frank.Sauer at trcinc.com
Mon Jun 17 08:10:13 PDT 2002

you have to set an EntityResolver on the saxBuilder that uses getResource
to find the dtd in the jar. Something like:

saxBuilder.setEntityResolver new EntityResolver(0 {
	public InputSource resolveEntity(String publicid, String sysid) {
		return new InputSource(getClass().getResource("dtd/mydtd.dtd"))

Of course you may want to make this conditional and based on the actual
sysid passed in. Also, I just typed this in from the top of my head, check the
types and sighnatures plase...

Frank Sauer

-----Original Message-----
From: Andreas Riedel [mailto:riedelandreas at yahoo.de] 
Sent: Monday, June 17, 2002 10:17 AM
To: jdom-interest at jdom.org
Subject: [jdom-interest] [NEWBEE] Open an XML-file by using a DTD in a JAR

Hello List.

I just start to work with JDOM and made my first test.
To test, I open an existing XML file on my device,
generated for Log4J.

The XML-File starts with:
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

The source

  SAXBuilder f_SaxBuilder = new SAXBuilder();

  Document f_DocJDOM = null;

  try {
   f_DocJDOM = f_SaxBuilder.build( new File( "log4jUserAccess.xml" ) );
  } // try
  catch( JDOMException f_excJDOM ) {
  } // catch

The DTD is in the log4j.jar, I included in my

java -cp ./classes;./lib/jdom.jar;./lib/xerces.jar;./lib/log4j.jar;

But when I run the program, I get the following

org.xml.sax.SAXParseException: File "file:/C:/Projects/Test/~gen/dist/log4j.dtd"

When I unzip the log4j.jar and copy the log4j.dtd to
that directory, it's run.

But I want, that JDOM open the log4j.dtd in the

Does anybody have an solution for that problem.


Andreas Riedel.


Gesendet von Yahoo! Mail - http://mail.yahoo.de
Yahoo! präsentiert als offizieller Sponsor das Fußball-Highlight des
Jahres: - http://www.FIFAworldcup.com _______________________________________________
To control your jdom-interest membership: http://lists.denveronline.net/mailman/options/jdom-interest/youraddr@yourhost.com

More information about the jdom-interest mailing list