2016-07-07 7 views
1

XML 문서에서 올바른 형식 (구문 확인 만)을 검사하고 있습니다. 나는 어떤 스키마에 대해서도 검증하지 않는다. StAX를 사용하여이 작업을 수행해야합니다.XML의 StAX 올바른 형식 검사

파일을 파싱해야한다는 것을 알고 있지만이 체크를 어떻게 구현합니까?

XMLInputFactory factory = XMLInputFactory.newInstance(); 
File f = new File(uploadfileName); 
FileInputStream inputStream = new FileInputStream(f); 
//Instantiate a reader parsing: 
XMLStreamReader reader=factory.createXMLStreamReader(inputStream); 

     while(reader.hasNext()){ 
      //check to be implemented?? 
      reader.next(); 
     } 
+1

끝났습니다. 모든 이벤트를 읽음으로써 XML이 완전히 처리되었으므로 XML 구문 오류가 없음을 알 수 있습니다. 있었다면 예외가 발생했을 것입니다. --- FYI : 내가 말했을 때, 당신은'inputStream'을 닫을 때, 당신이 try-with-resources를 사용하여 끝내야한다는 것을 의미합니다. – Andreas

+0

그래서 내 자신의 오류 메시지를 명시 적으로 추가하려면 try-catch 블록을 사용합니까? – psedonerd

+0

맞습니다. – Andreas

답변

2

@Andreas commented으로, 정형식은 모든 구문 분석 이벤트를 소비 과정에서 발생되는 예외의 부족에 의해 표시됩니다.

특히, XMLStreamReader.next()은 구문 분석되는 XML에서 발생하는 올바른 형식화 ​​오류에 대해 XMLStreamException을 표시합니다. 파싱이 XMLStreamReader.hasNext()false을 반환하고 어떤 을 트리거하지 않고 루프를 종료하면 while을 종료하면 XML이 올바른 형식인지 확인할 수 있습니다.