gpt4 book ai didi

java - StAX - 如何将 XMLInputFactory.IS_VALIDATING 设置为 true?

转载 作者:搜寻专家 更新时间:2023-10-31 20:07:41 27 4
gpt4 key购买 nike

这是我第一次使用StAX解析XML文档(还在学习阶段)。在使用 XMLStreamReader 解析 XML 文档并使用 XMLStreamWriter 生成文档副本的过程中,我遇到了以下警告,表示为编写器输出中的注释:

 <!-- Exception scanning External DTD Subset.  True contents of DTD cannot be determined.  Processing will continue as XMLInputFactory.IS_VALIDATING == false. -->

我理解警告的原因,但我希望它成为一个错误而不是默默地成为一个警告,所以我尝试将 XMLInputFactory.IS_VALIDATING 设置为 true:

 XMLInputFactory factory = XMLInputFactory.newInstance();
factory.setProperty(XMLInputFactory.IS_VALIDATING, Boolean.TRUE);

但上面的代码对我来说是个异常(exception):

Exception in thread "main" java.lang.IllegalArgumentException: true value of isValidating not supported at com.sun.org.apache.xerces.internal.impl.PropertyManager.setProperty(PropertyManager.java:150) at com.sun.xml.internal.stream.XMLInputFactoryImpl.setProperty(XMLInputFactoryImpl.java:257) at com.test.test2.helper.SgmlDocumentParser.parse(SgmlDocumentParser.java:83) at com.test.test2.helper.Test.main(Test.java:66)

那么我的方法有什么问题呢?

谢谢!

最佳答案

看起来 Sun 的 StAX 实现不支持 DTD 验证。您可以尝试使用 Woodstox相反,它似乎支持验证。

关于java - StAX - 如何将 XMLInputFactory.IS_VALIDATING 设置为 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1659094/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com