<HTML><P>Hi,</P>
<P>just to add some information... Crimson it is.</P>
<P>Recently I installed 1.4.0&nbsp;in which&nbsp;I have found the&nbsp;the following code. This shows for a fact what Jason suspected:</P><FONT size=1>
<P>public static SAXParserFactory newInstance()</P>
<P>throws FactoryConfigurationError</P>
<P>{</P>
<P>try {</P>
<P>return (SAXParserFactory) FactoryFinder.find(</P>
<P>/* The default property name according to the JAXP spec */</P>
<P>"javax.xml.parsers.SAXParserFactory",</P>
<P>/* The fallback implementation class name */</P>
<P>"org.apache.crimson.jaxp.SAXParserFactoryImpl");</P>
<P>} catch (FactoryFinder.ConfigurationError e) {</P>
<P>throw new FactoryConfigurationError(e.getException(),</P>
<P>e.getMessage());</P>
<P>}</P>
<P>}</P>
<P></FONT><FONT size=3>cheers</FONT></P>
<P>Søren<BR>___________________________________<BR><BR>Soeren Arleth - Oracle Denmark<BR>SME Java Development<BR>EMEA Java/XML Professional Community<BR></P><BR>
<HR>

<BLOCKQUOTE TYPE="CITE">I was hoping someone else with more information might write to help<BR>you. But since they haven't, I'll say what I can.<BR><BR>I would look into what parser JDK 1.4 is using. I suspect it's some<BR>version of Crimson as selected by JAXP since JAXP is now in the JDK. <BR>Write the list when you find out since it'll be good for us to know.<BR><BR>Then I'd look into if that Crimson version has any known problems like<BR>this, and I'd file a bug if they don't already know. We can help you<BR>with that.<BR><BR>Finally, if it is a parser bug as I suspect, then I'd change parsers to<BR>Xerces either by using the JAXP API to select Xerces, or you can use<BR>SAXBuilder itself to select Xerces. SAXBuilder by default uses JAXP to<BR>select a parser, but you can choose explicitly.<BR><BR>I suggest you investigate JDK 1.4 because this will hit other people, so<BR>hopefully we can understand the issue and not just go straight to<BR>avoidance.<BR><BR>-jh-<BR><BR>abrighto@netscape.net wrote:<BR>&gt; <BR>&gt; Hi all,<BR>&gt; <BR>&gt; The new jdk1.4 runtime library now contains the org.xml packages,<BR>&gt; which kind of forces you to use them, it seems (I was previously<BR>&gt; using xerces.jar).<BR>&gt; <BR>&gt; Since upgrading to jdk1.4, I am having problems with DTDs not being<BR>&gt; resolved. The problem is that the EntityResolver is not being called.<BR>&gt; The error message is then:<BR>&gt; <BR>&gt; "Relative URI "UIInfo.dtd"; can not be resolved without a base URI"<BR>&gt; <BR>&gt; Here is the related code. Any ideas on how to make this work with jdk1.4?<BR>&gt; <BR>&gt; /** Parse the XML document */<BR>&gt; private static void _parseDocument(BufferedReader in) {<BR>&gt; SAXBuilder builder = new SAXBuilder(true);<BR>&gt; builder.setEntityResolver(new EntityResolver() {<BR>&gt; public InputSource resolveEntity (String publicId, String systemId) {<BR>&gt; URL url = Resources.getResource("UIInfo.dtd");<BR>&gt; try {<BR>&gt; return new InputSource(url.openStream());<BR>&gt; }<BR>&gt; catch(Exception e) {<BR>&gt; throw new RuntimeException("Error resolving entity: " +<BR>&gt; publicId + ": " + e.toString());<BR>&gt; }<BR>&gt; }<BR>&gt; });<BR>&gt; <BR>&gt; try {<BR>&gt; Document doc = builder.build(in);<BR>&gt; Element rootElement = doc.getRootElement();<BR>&gt; Iterator it = rootElement.getChildren().listIterator();<BR>&gt; while(it.hasNext()) {<BR>&gt; Element e = (Element)it.next();<BR>&gt; _parseElement(e);<BR>&gt; }<BR>&gt; }<BR>&gt; catch (JDOMException ex) {<BR>&gt; ex.printStackTrace();<BR>&gt; throw new RuntimeException("Error reading " + XML_FILE + ": " + ex.getMessage());<BR>&gt; }<BR>&gt; }<BR>&gt; <BR>&gt; Thanks,<BR>&gt; Allan Brighton<BR>&gt; <BR>&gt; --<BR>&gt; <BR>&gt; __________________________________________________________________<BR>&gt; Your favorite stores, helpful shopping tools and great gift ideas. Experience the convenience of buying online with Shop@Netscape! http://shopnow.netscape.com/<BR>&gt; <BR>&gt; Get your own FREE, personal Netscape Mail account today at http://webmail.netscape.com/<BR>&gt; <BR>&gt; _______________________________________________<BR>&gt; To control your jdom-interest membership:<BR>&gt; http://lists.denveronline.net/mailman/options/jdom-interest/youraddr@yourhost.com<BR>_______________________________________________<BR>To control your jdom-interest membership:<BR>http://lists.denveronline.net/mailman/options/jdom-interest/youraddr@yourhost.com<BR></BLOCKQUOTE>
<HR></HTML>