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. -->
警告の原因はわかりましたが、黙って警告になるのではなく、エラーになるようにしたかったので、XMLInputFactory.IS_VALIDATING を true に設定しようとしました。
XMLInputFactory factory = XMLInputFactory.newInstance();
factory.setProperty(XMLInputFactory.IS_VALIDATING, Boolean.TRUE);
しかし、上記は私に例外を投げました:
スレッド「メイン」の例外 java.lang.IllegalArgumentException: isValidating の true 値は、com.sun.xml の com.sun.org.apache.xerces.internal.impl.PropertyManager.setProperty(PropertyManager.java:150) でサポートされていません。 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)
では、私のアプローチの何が問題なのですか?
ありがとう!