在jdk1.6中,当我设置
我遇到了以下错误:
javax.xml.transform.TransformerConfigurationException: 无法在此TransformerFactory上设置特性 'http://javax.xml.XMLConstants/property/accessExternalDTD'。
根据我在这里找到的信息:如何防止具有META-INF\services\javax.xml.transform.TransformerFactory的xalan.jar接管JDK 1.6内置的Xalan实现?,我无法按照建议进行更改,因为我的管理员已经审查过其他API冲突。
并根据此链接:http://xml.apache.org/xalan-j/features.html#domsource,您可以使用
因此,如果使用TransormerFactory的xalan实现,则似乎只能设置此功能。
最后我的问题是: 如果我们设置特性:
transformerFactory.setFeature(XMLConstants.ACCESS_EXTERNAL_DTD, false)
我遇到了以下错误:
javax.xml.transform.TransformerConfigurationException: 无法在此TransformerFactory上设置特性 'http://javax.xml.XMLConstants/property/accessExternalDTD'。
根据我在这里找到的信息:如何防止具有META-INF\services\javax.xml.transform.TransformerFactory的xalan.jar接管JDK 1.6内置的Xalan实现?,我无法按照建议进行更改,因为我的管理员已经审查过其他API冲突。
并根据此链接:http://xml.apache.org/xalan-j/features.html#domsource,您可以使用
TransformerFactory.setFeature(String, boolean)
方法来设置特性的值。 Xalan-Java仅支持设置XMLConstants.FEATURE_SECURE_PROCESSING
特性。对于所有其他特性,TransformerFactory公开其值,但无法更改其状态。因此,如果使用TransormerFactory的xalan实现,则似乎只能设置此功能。
transformerFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
最后我的问题是: 如果我们设置特性:
transformerFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
然后另一个特性 (XMLConstants.ACCESS_EXTERNAL_DTD
) 会自动设置为false。
我从设置的日志中得到了上述特性为"false"。
但我想确切知道是否 accessExternalDTD
特性将默认设置为false,或者安全处理特性被设置为true。