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]
