xsl-list
[Top] [All Lists]

RE: Xalan complains about relative DTD URL in transformed document

2002-08-30 15:13:05
This isn't actually an XSLT problem, it's a JAXP/SAX problem...

Specify a base URI for the source document by calling setSystemId() on
the SAXSource object, and perhaps on the InputSource object as well.

Note that a SAX parser must convert a relative URI to an absolute URI
before it calls your EntityResolver.

Michael Kay
Software AG
home: Michael(_dot_)H(_dot_)Kay(_at_)ntlworld(_dot_)com
work: Michael(_dot_)Kay(_at_)softwareag(_dot_)com 

-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
David Byrden
Sent: 30 August 2002 13:26
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Xalan complains about relative DTD URL in 
transformed document




         I'm using JDK14 to transform some XML
documents that reference a DTD with a relative URL.

         I'm getting this exception:
org.xml.sax.SAXParseException: Relative URI "../../text 
bodies.dtd"; can 
not be resolved without a base URI.

         Believe me I've spent time on this, and the
code I'm using now is from a solution posted to this
list by J.Pietschmann:


Transformer tr = 
TransformerFactory.newInstance().newTransformer( transform ) 
; SAXParserFactory saxParserFactory = 
SAXParserFactory.newInstance() ; 
saxParserFactory.setValidating( false ) ; XMLReader xmlReader 
= saxParserFactory.newSAXParser().getXMLReader() ; 
xmlReader.setEntityResolver( new MyResolver() ) ; 
tr.transform( new SAXSource( xmlReader, src ), res ) ;

Unfortunately it does not work, in that the MyResolver
is not even called on to resolve anything before
the exception occurs.

Any ideas? I do want to use a relative URL for the DTD.

                                                         David


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>