Andrew Haley writes: > The problem: gcj+Classpath fails to work with Xerces2, but Sun's Java > does work. The means that, on Fedora, Ant doesn't run with the latest > Classpath. > > > gnu/xml/dom/DomDocumentBuilderFactory.java.newDocumentBuilder() does > this: > > setParameter(config, "expand-entity-references", > isExpandEntityReferences() ? Boolean.TRUE : Boolean.FALSE); > > but according to the specification of org.w3c.dom.DOMConfiguration, > "expand-entity-references" is not a parameter defined in the DOM. It > seems to be local to gnu.xml.dom.ls.DomLSParser. > > [ http://java.sun.com/j2se/1.5.0/docs/api/org/w3c/dom/DOMConfiguration.html ] > > This is all well and good with gnu.xml.dom.ls.DomLSParser, but if we > have Xerces2 installed in our path then we will fail, because Xerces2 > does not support "expand-entity-references". > > Is it the case that > gnu.xml.dom.DomDocumentBuilderFactory.newDocumentBuilder is totally > incompatible with Xerces2? > > The odd thing is that, as I said before, Sun's > javax.xml.parsers.DocumentBuilderFactory will work with Xerces2. After a bit more digging, I think I've figured it out. Xerces' DocumentBuilder communicates with its DOMParser using the same interface that Sun's DocumentBuilder uses to communicate with its DOMParser. So, if you replace Sun's built-in DOMParser with Xerces it still works. However, Classpath's DocumentBuilder communicates with its DOMParser using its own interface, which is incompatible. Andrew.