The following patch seems to fix the relative URI bug. If (one of)
the Xerces maintainers deems it worthy, please check it in :-)
Index: XMLDTDScanner.java
===================================================================
RCS file: /home/cvspublic/xml-xerces/java/src/org/apache/xerces/framework/XMLDTD
Scanner.java,v
retrieving revision 1.4
diff -r1.4 XMLDTDScanner.java
1200a1201,1219
>
> // [EMAIL PROTECTED]
> //
> // An fSystemLiteral value from an entity declaration may be
> // a relative URI. If so, it's important that we make it
> // absolute with respect to the context of the document that
> // we are currently reading. If we don't, the XMLParser will
> // make it absolute with respect to the point of *reference*,
> // before attempting to read it. That's definitely wrong.
> //
> String litSystemId = fStringPool.toString(fSystemLiteral);
> String absSystemId = fEntityHandler.expandSystemId(litSystemId);
> if (!absSystemId.equals(litSystemId)) {
> // REVISIT - Is it kosher to touch fStringPool directly?
> // Is there a better way? fEntityReader doesn't seem to
> // have an addString method that takes a literal string.
> fSystemLiteral = fStringPool.addString(absSystemId);
> }
>
2376a2396
>
Be seeing you,
norm
--
Norman Walsh <[EMAIL PROTECTED]> | Nothing ever gets anywhere. The
http://nwalsh.com/ | earth keeps turning round and gets
| nowhere. The moment is the only
| thing that counts.--Jean Cocteau