StAXには - どのようにtrueにXMLInputFactory.IS_VALIDATINGを設定するには?
-
11-09-2019 - |
質問
これは(学習段階ではまだ)は、XML文書を解析するためのStAXを使用して私の最初の時間です。 XMLStreamReaderを使用してXML文書を解析してXMLStreamWriterを使用して、ドキュメントのコピーを生成するためのプロセスの間に、私は次の警告は、作家の出力のコメントとして表さ遭遇します:
<!-- Exception scanning External DTD Subset. True contents of DTD cannot be determined. Processing will continue as XMLInputFactory.IS_VALIDATING == false. -->
私は警告の原因を理解し、私は黙って警告になったのではなく、それはエラーになりたかったので、私はtrueにXMLInputFactory.IS_VALIDATING設定しようとします:
XMLInputFactory factory = XMLInputFactory.newInstance();
factory.setProperty(XMLInputFactory.IS_VALIDATING, Boolean.TRUE);
しかし、上記の私のための例外を投げます:
スレッドの例外「メイン」 java.lang.IllegalArgumentExceptionが: isValidatingの真の値ではありません でサポート com.sun.org.apache.xerces.internal.impl.PropertyManager.setProperty(PropertyManager.java:150) に 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)
だから私のアプローチの何が問題になっているのですか?
ありがとうございます。
解決
それはちょうど、DTD検証をサポートしていない日のStAXの実装のように見えます。あなたは Woodstox の代わりに、検証をサポートするように見える使用してみてください可能性があります。