StAX - XMLInputFactory.IS_VALIDATING을 true로 설정하는 방법은 무엇입니까?

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. -->

경고의 원인을 이해했지만 자동으로 경고가 되기보다는 오류가 되기를 원했기 때문에 XMLInputFactory.IS_VALIDATING을 true로 설정하려고 했습니다.

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

그러나 위의 내용은 나에게 예외를 던졌습니다.

스레드의 예외 "main"java.lang.illegalargumentexception :com.sun.org.apache.xerces.internal.impl.propertymanager.setproperty (propertymanager.java:150)에서 com.sun.xml.internal.stream.xmlinputactoryimpl.setproperty (xmlinputoryimmpl.java)에서 지원되지 않는 ISValidating의 실제 가치 257) at com.test.test2.helper.sgmldocumentparser.parse (sgmldocumentparser.java:83) at com.test.test2.helper.test.main (test.java:66)

그렇다면 내 접근 방식에 어떤 문제가 있습니까?

감사해요!

도움이 되었습니까?

해결책

Sun의 StAX 구현은 DTD 검증을 지원하지 않는 것 같습니다.당신은 사용해 볼 수 있습니다 우드스톡스 대신 유효성 검사를 지원하는 것으로 보입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top