- From: Curt Arnold <carnold@houston.rr.com>
- Date: Tue, 30 Dec 2003 01:20:15 -0600
- To: www-dom-ts@w3.org
I lumped fixes related from
http://lists.w3.org/Archives/Public/www-dom-ts/2003Dec/0029.html and
http://lists.w3.org/Archives/Public/www-dom-ts/2003Dec/0030.html as bug
447 (http://www.w3.org/Bugs/Public/show_bug.cgi?id=447). All of
Xerces-J's current test failures appear to be legitimate implementation
problems.
The bug report has blow-by-blow details of the changes.
Of particular interest is a change in the base URL for http related
tests. The default base is now http://localhost:8080/webdav/ which can
be overriden by specifying
-Dorg.w3c.domts.httpbase=http://www.example.com/domts/ or similar. This
(hopefully) simplifies configuration of the supporting server. All that
should be necessary to use Tomcat should be to change the webdav folder
to read-write in the web.xml file and to copy testpdf.pdf to the webdav
directory. DOMBuilderTest5 now checks that testpdf.pdf can be
successfully parsed before specifying supported-doctypes-only, so
testpdf.pdf has to be a valid XML file for the test to pass. I've added
testpdf.pdf (a duplicate of test0.xml) to the ls/files directory.
There were a few minor changes to the test framework,
<createTempHttpURI/> and <createTempFileURI/> were replaced by
<createTempURI scheme="file|http"/> and a scheme attribute was added to
<getResourceURI/>.
Elana had complained about the file: URI's generated by
File.toURI().toString() causing SystemId1 to fail. The current Xerces-J
CVS attempts the following around line 687 in
org.apache.xml.serialize.DOMSerializerImpl
FileOutputStream fileOut = new FileOutputStream(new File(uri));
Where uri would be the value of LSOutput.getSystemId().
This code does not check the scheme of the URI before attempting to
create a File object, so http: uri's should be expected to throw an
exception and I see nothing in the JDK documentation that would lead me
to believe that I should be able to pass a string containing a file: URL
to new File(). If I replaced that line with the following JDK 1.4
specific code:
URL parsedURL = new URL(uri);
if ("file".equals(parsedURL.getProtocol()) {
fileOut = new FileOutputStream(new File(new URI(uri)));
} else {
throw new Exception("unsupported scheme");
}
Xerces would then pass SystemId1. If there are legitimate changes to
make the generated URL's compatible with your file: URL parsing code
that might be used by a non-public implementation, please provide a
patch for org.w3c.domts.DOMTest.
SystemId2 would require filling in the else clause with something
appropriate for HTTP URL's.
Received on Tuesday, 30 December 2003 02:20:18 UTC