2009-11-02 15 views
5

Po raz pierwszy używam StAX do analizowania dokumentów XML (wciąż na etapie nauki). Podczas procesu analizowania dokumentu XML przy użyciu XMLStreamReader i wygenerować kopię dokumentu, używając XMLStreamWriter, natknąłem się następujące ostrzeżenie reprezentowany jako komentarz na wyjściu Scenariusz:StAX - jak ustawić wartość XMLInputFactory.IS_VALIDATING na wartość true?

<!-- Exception scanning External DTD Subset. True contents of DTD cannot be determined. Processing will continue as XMLInputFactory.IS_VALIDATING == false. --> 

zrozumiałem przyczynę ostrzeżenia , ale chciałem go stać błąd zamiast cicho stał się ostrzeżenie, więc potem próbowałem ustawić XMLInputFactory.IS_VALIDATING true:

XMLInputFactory factory = XMLInputFactory.newInstance(); 
factory.setProperty(XMLInputFactory.IS_VALIDATING, Boolean.TRUE); 

ale przede zwrócił wyjątek dla mnie:

Wyjątek nici „główne” java.lang.IllegalArgumentException: prawdziwa wartość isValidating nie obsługiwane com.sun.org.apache.xerces.internal.impl.PropertyManager.setProperty (PropertyManager.java:150) w com.sun.xml.internal.stream.XMLInputFactoryImpl.setProperty (XMLInputFactoryImpl.java:257) w com.test.test2.helper.SgmlDocumentParser.parse (SgmlDocumentParser.java:83) w com.test. test2.helper.Test.main (Test.java:66)

Co jest nie tak z moim podejściem h?

Dzięki!

Odpowiedz

5

Wygląda na to, że implementacja StAX firmy Sun po prostu nie obsługuje sprawdzania DTD. Zamiast tego możesz spróbować użyć polecenia Woodstox, ponieważ obsługuje ono sprawdzanie poprawności.

Powiązane problemy