While running the jaxp XSLTC tests against a recent jdk 8 I noticed that tests failed - due to the following root exception being thrown:
org.xml.sax.SAXNotRecognizedException: Property
"
http://javax.xml.XMLConstants/property/accessExternalDTD
"
is not recognized.
at org.apache.xerces.parsers.AbstractSAXParser.setProperty(Unknown
Source)
at org.apache.xerces.jaxp.SAXParserImpl.setProperty(Unknown Source)
com.sun.org.apache.xalan.internal.xsltc.compiler.Parser.parse(Parser.java:479)
The code that throws this exception - in Parser.java - is at line 479 below:
478 final SAXParser parser = factory.newSAXParser();
479 parser.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD,
480 _xsltc.getProperty(XMLConstants.ACCESS_EXTERNAL_DTD));
This means that application which have a third party JAXP 1.4 implementation in their classpath could potentially encounter a similar problem - if the implementation doesn't recognize the property being set.