2009-11-02 90 views
5

这是我第一次使用StAX解析XML文档(仍处于学习阶段)。在这个过程中使用的XMLStreamReader解析XML文件,并生成使用XMLStreamWriter文档的副本,我遇到的表示为作家的输出注释以下警告:StAX - 如何将XMLInputFactory.IS_VALIDATING设置为true?

<!-- 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); 

但上面抛出异常对我来说:

异常线程 “main” java.lang.IllegalArgumentException异常: 在 com.sun.org.apache.xerces.internal.impl.PropertyManager.setProperty(PropertyManager.java:150)isValidating不 支持的真正价值 在 com.sun.xml.internal.stream.XMLInputFactoryImpl.setProperty(XMLInputFactoryImpl.java:257) 在 com.test.test2.helper.SgmlDocumentParser.parse(SgmlDocumentParser.java:83) 在 com.test。 test2.helper.Test.main(Test.java:66)

那么我的习惯有什么问题H?

谢谢!

回答

5

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

相关问题