2009-11-02 53 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代替,它似乎支持驗證。

相關問題