See http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12305 for more discussion on the topic.
This was a change from 1.4 to 2.x that wasn't backward compatible - it broke our application, among others. The good news is that there is a workaround. While I'm not fond of the inconsistencies in the current behavior, it's not a major problem. - Thomas Cox > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] > Sent: Wednesday, February 19, 2003 10:19 AM > To: [EMAIL PROTECTED] > Subject: Relative URI resolving - no protocol error (very confusing) > > > Hi, since the xerces mailing list archives appear to be down, > I'm submitting my question here. Forgive me if it has been > asked a thousand times before ;-) I'm very confused as to how > relative URI's are treated by Xerces. Currently I'm using > xerces 2.2.1. > > I have an xml file containing a relative entity reference > > <!DOCTYPE fopconfig [ > <!ENTITY fontsconfig SYSTEM "fonts/config.xml"> > ]> > > I tried the following variations but it goes wrong no matter what. > > 1) file:/// > > There used to be file:///fonts/config.xml for xerces 1.4 > I admit it's plain wrong if you read the URI specifications > but it worked and so when switching to xerces 2.x I had no > problem writing file:fonts/config.xml since the previous one > would indicate the root of the filesystem of the current host. > > 2) file: > It works but unfortunately, there is a catch. Xerces does not > resolve this to the location of the xml file containing the > entity but against the "current directory" of the JVM. It > appears the file: URI scheme has no provisions for relative > URI's. This would explain the behavior since normally a > relative URI needs to be resolved against the base URI of the > document that contains the entity declaration. > > So there are good reasons why the two previous approaches > shouldn't work. But I can't find a good reason why the third doesn't > > 3) the relative URI as seen above. > Xerces does resolve the relative URI in function of the base > URI of the document which is exactly what I need and solves > all my other issues but for some reason it refuses to do so > when that base URI includes spaces (think about a filename on > windows). It gives an error on the relative URI of the entity > reference saying "no protocol" which I assume has something > todo with using java.net.URL inside Xerces. > > I'm using Xerces as a SAX parser using the > org.xml.sax.InputSource class with a system identifier. What > does that identifier need to look like to make this work ? > file:/path ? path ? path in urlencoded form (%20 and such) ? ... For once I just want to know what I need to use in BOTH the entity reference AND for the inputsource system ID (which I assume gets used as base URI) to make it standard compliant and correctly read by xerces ? Thanks for any input anyone has ;-) --------- Erik Vanherck - System Programmer & Designer Inventive Designers Visit http://www.inventivedesigners.com Visist http://www.inventivedesigners.com/scriptura for Scriptura information ! Phone: +32 - 3 - 8210170 Fax: +32 - 3 - 8210171 Email: [EMAIL PROTECTED] "Computers in the future may weigh no more than 1.5 tons." - Popular Mechanics, forecasting the relentless march of science, 1949 --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
