我正在使用 Piccolo jar 并使用 XMLReaderFactory 创建 XML 阅读器。
我需要设置安全处理功能,因此我这样做了,
xmlReader = XMLReaderFactory.createXMLReader("com.bluecast.xml.Piccolo");xmlReader.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
但这是抛出错误org.xml.sax.SAXNotRecognizedException: http://javax.xml.XMLConstants/feature/secure-processing at com.bluecast.xml.Piccolo.setFeature(Piccolo.java:937)
我有一个旧的 xercesImpl.jar,它已被 xercesImpl-2.9.1.jar 替换,但仍然出现相同的错误。我用谷歌搜索并没有找到任何具体的解决方案。

请帮助,任何想法都是可观的。

最佳答案

所以常量 XMLConstants.FEATURE_SECURE_PROCESSING 的值为 http://javax.xml.XMLConstants/feature/secure-processing
根据源代码 here(最新的是 1.04),一个很大的 if else 块会检查这个值是否是允许的特性之一,如果不是则抛出这个异常。事实上,它不是被判断为合法的值之一,因此会抛出异常。

根据 SaxParserFactory ,我们阅读



Piccolo 实现了 Parser 而不是 SaxParser。所以总而言之,我会说 Piccolo 不支持该功能。也许我会说使用支持它的不同 XMLReader。

关于java - 如何在 XMLReaderFactory 中设置 FEATURE_SECURE_PROCESSING?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23237755/

10-10 10:06