SV: [jdom-interest] One less TODO item

Elliotte Rusty Harold elharo at
Tue Oct 7 09:34:31 PDT 2003

>I thought it was the SAXParsers (or XMLReader) that resolved
>the relative URI. If I supply an EntityResolver to either
>crimson or xerces, the system id is already resolved when
>the callback is made. How do you work around that in XOM?
>Or does it have its own parser?

I look at the URLs that are fed in and if they don't have a path 
component, I add a / at the end. Really simple.

It's a hack, I admit, and it only works for URLs that don't have path 
components, but it does help XOM work with a lot of URLs it would 
otherwise fail on.

I reported this bug in Xerces some time ago (or at least I thought I 
did. Can't seem to find it in Bugzilla at the moment). However, it's 
still present in 2.5. It's one of the few bugs left in Xerces that 
affects XOM. This compares very well to other parsers, most of which 
have dozens of bugs the XOM unit tests expose.

OK, I found the bug. It's (God, I hate 
Bugzilla.) Hmm, look like they claim it's fixed in 2.5 but I could 
swear I'm still seeing it. Possibly I'm using an older parser? I'll 
look into this further. If Xerrces has indeed fixed this, then all 
JDOM has to do is ship the latest Xerces.

Oh, I bet I know what's going on. I think I'm loading the older 
Xerces bundled with Java 1.4.2 rather than the bug fixed version. 
Hmm, not that's not it. OK, I've got it. They've instituted something 
equivalent to the same workaround I used. In other words, they can 
handle but not 
and this can be verified with Xerces's own sax.Counter program. I'll 
reopen the bug.


   Elliotte Rusty Harold
   elharo at
   Processing XML with Java (Addison-Wesley, 2002)      

More information about the jdom-interest mailing list