neeraj 2002/09/26 02:02:06 Modified: java/src/javax/xml/parsers SAXParser.java DocumentBuilder.java Log: fixing bug http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12257 Added a new class which escapes character sequences that doesn't have representation using an unreserved character, it corresponds to printable character of US-ASCII coded character set [00-1F and 7F hexadecimal] or any US-ASCII character that is disallowed like space ' ' As of right now this class doesn't not handle non-US ASCII character. But it may be extended in future to handle those cases. Revision Changes Path 1.7 +16 -10 xml-xerces/java/src/javax/xml/parsers/SAXParser.java Index: SAXParser.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/javax/xml/parsers/SAXParser.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- SAXParser.java 26 Nov 2001 21:45:50 -0000 1.6 +++ SAXParser.java 26 Sep 2002 09:02:06 -0000 1.7 @@ -107,6 +107,7 @@ public abstract class SAXParser { + private static final boolean DEBUG = false ; protected SAXParser () { } @@ -293,14 +294,17 @@ throw new IllegalArgumentException("File cannot be null"); } - String uri = "file:" + f.getAbsolutePath(); - if (File.separatorChar == '\\') { - uri = uri.replace('\\', '/'); - } - InputSource input = new InputSource(uri); + String escapedURI = ConvertToURI.getEscapedURI(f.getAbsolutePath()) ; + escapedURI = "file://" + escapedURI ; + + if(DEBUG) + System.out.println("Escaped URI = " + escapedURI) ; + + InputSource input = new InputSource(escapedURI); this.parse(input, hb); } + /** * Parse the content of the file specified as XML using the * specified {@link org.xml.sax.helpers.DefaultHandler}. @@ -321,11 +325,13 @@ throw new IllegalArgumentException("File cannot be null"); } - String uri = "file:" + f.getAbsolutePath(); - if (File.separatorChar == '\\') { - uri = uri.replace('\\', '/'); - } - InputSource input = new InputSource(uri); + String escapedURI = ConvertToURI.getEscapedURI(f.getAbsolutePath()) ; + escapedURI = "file://" + escapedURI ; + + if(DEBUG) + System.out.println("Escaped URI = " + escapedURI) ; + + InputSource input = new InputSource(escapedURI); this.parse(input, dh); } 1.9 +8 -5 xml-xerces/java/src/javax/xml/parsers/DocumentBuilder.java Index: DocumentBuilder.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/javax/xml/parsers/DocumentBuilder.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- DocumentBuilder.java 15 Oct 2001 19:11:16 -0000 1.8 +++ DocumentBuilder.java 26 Sep 2002 09:02:06 -0000 1.9 @@ -100,6 +100,7 @@ protected DocumentBuilder () { } + private static final boolean DEBUG = false ; /** * Parse the content of the given <code>InputStream</code> as an XML * document and return a new DOM {@link org.w3c.dom.Document} object. @@ -189,11 +190,13 @@ throw new IllegalArgumentException("File cannot be null"); } - String uri = "file:" + f.getAbsolutePath(); - if (File.separatorChar == '\\') { - uri = uri.replace('\\', '/'); - } - InputSource in = new InputSource(uri); + String escapedURI = ConvertToURI.getEscapedURI(f.getAbsolutePath()) ; + escapedURI = "file://" + escapedURI ; + + if(DEBUG) + System.out.println("Escaped URI = " + escapedURI) ; + + InputSource in = new InputSource(escapedURI); return parse(in); }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]