StAXには - どのようにtrueにXMLInputFactory.IS_VALIDATINGを設定するには?

StackOverflow https://stackoverflow.com/questions/1659094

  •  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 の代わりに、検証をサポートするように見える使用してみてください可能性があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top