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

Reply via email to