[kaffe] Re: [Classpathx-xml] Re: Unwanted SAXParseException

Ito Kazumitsu kaz@maczuka.gcd.org
Fri Oct 24 17:07:01 2003


Hi,

To conclude the issue,  I suggest the following patch.

bash-2.05b$ diff -u gnu/xml/aelfred2/SAXDriver.java.orig gnu/xml/aelfred2/SAXDriver.java
--- gnu/xml/aelfred2/SAXDriver.java.orig	Sat Oct 18 19:51:10 2003
+++ gnu/xml/aelfred2/SAXDriver.java	Sat Oct 25 08:41:10 2003
@@ -596,8 +596,6 @@
 			in.getSystemId ());
 	    if (source == null)
 		source = in;
-	    else if (source.getSystemId () == null)
-		source.setSystemId (in.getSystemId ());
 	}
 	startExternalEntity (name, source.getSystemId (), true);
 	return source;
@@ -638,8 +636,13 @@
     	boolean stackOnly)
     throws SAXException
     {
+	// The following warning was deleted because the application has the
+	// option of not setting systemId. Sun's JAXP or Xerces seems to
+	// ignore this case.
+	/*
 	if (systemId == null)
 	    warn ("URI was not reported to parser for entity " + name);
+	*/
 	if (!stackOnly)		// spliced [dtd] needs startEntity
 	    lexicalHandler.startEntity (name);
 	entityStack.push (systemId);
bash-2.05b$ diff -u gnu/xml/aelfred2/XmlParser.java.orig gnu/xml/aelfred2/XmlParser.java
--- gnu/xml/aelfred2/XmlParser.java.orig	Sat Sep 13 22:43:30 2003
+++ gnu/xml/aelfred2/XmlParser.java	Sat Oct 25 08:47:16 2003
@@ -3449,10 +3449,15 @@
 
 	    // we might be using alternate IDs/encoding
 	    systemId = source.getSystemId ();
+	    // The following warning and setting systemId was deleted bcause
+	    // the application has the option of not setting systemId
+	    // provided that it has set the characte/byte stream.
+	    /*
 	    if (systemId == null) {
 		handler.warn ("missing system ID, using " + ids [1]);
 		systemId = ids [1];
 	    }
+	    */
 	} else {
 	    // "[document]", or "[dtd]" via getExternalSubset()
 	    scratch.setCharacterStream (reader);