2009-11-02 2 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을 설정하려고 자동으로 경고되었다보다는 오류가 그것을 원 :

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

을하지만 위의 나를 위해 예외가 발생했습니다 :

"주" java.lang.IllegalArgumentException가 스레드

예외 : com.sun.org.apache.xerces.internal.impl.PropertyManager.setProperty (PropertyManager.java:150)에서 지원되지 isValidating의 진정한 가치 com.test에서 com.test.test2.helper.SgmlDocumentParser.parse (SgmlDocumentParser.java:83) 에서 com.sun.xml.internal.stream.XMLInputFactoryImpl.setProperty (XMLInputFactoryImpl.java:257)에서 . test2.helper.Test.main (Test.java:66)

그래서 내 approac에 문제가 있습니까? h?

감사합니다.

답변

5

Sun의 StAX 구현은 DTD 유효성 검사를 지원하지 않는 것처럼 보입니다. 대신 Woodstox을 사용해 볼 수도 있습니다. 유효성 검사를 지원하는 것으로 보입니다.

관련 문제