Re: Bug in gnu/xml/dom/DomDocumentBuilderFactory.java?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.


[Index of Archives]     [Linux Kernel]     [Linux Cryptography]     [Fedora]     [Fedora Directory]     [Red Hat Development]

  Powered by Linux