ErrorHandler Programming using SAX(Simple API for XML)


다음 내용은 JAVA 환경에서 SAX를 이용한 XML 처리에 관한 내용이다.

1. ErrorHandler 소개
ErrorHandler는 XML 문서를 파싱하는 도중 발생하는 에러와 관련된 이벤트 핸들러이다. XML문법이 잘못되어 Well-Formed XML 문서가 아니거나, DTD에서 정의된 XML 문서 구조를 따르지 않았거나 하는 등의 에러 발생시 호출되는 이벤트 핸들러이다.

ErrorHandler 역시 ContentHandler와 같이 XMLReader에 등록하여 사용하면 된다. ErrorHandler는 다음과 같이 세 가지 메소드로 정의된다.
     void fatalError (SAXParserException exception)
     void error (SAXParserException exception)
     void warning (SAXParserException exception)

fatalError() 이벤트 메소드는 Well-Formed 하지 않은 XML 문서일 경우 발생하는 이벤트이다. 다시 말해, XML 문서가 지켜야 될 기본 작성 규칙을 따르지 않았을 때 발생한다.

error() 이벤트 메소드는 유효(Valid)하지 않은 XML 문서일 경우 발생하는 이벤트로써, DTD에 정의된 XML 문서의 구조를 따르지 않았을 경우 발생한다.

warning() 이벤트 메소드는 XML 문서 처리 도중 경고성 에러가 있을 경우 발생하는 이벤트이다. waining() 이벤트에서 발생한 에러는 XML 문서를 처리하는데 큰 영향을 미치지 않는다.



2. ErrorHandler 구현
ErrorHanlder 역시 인터페이스이므로 ErrorHandler 인터페이스에 있는 모든 메소드를 구현(implements)하여 사용한다. 다음은 ErrorHandler를 작성한 예이다.
class ImplHandler implements ErrorHandler {
     public void error(SAXParseException exception)  {
          System.out.println("Call error Event");
          System.out.println(exception);
     }
     public void fatalError(SAXParseException exception) {
          System.out.println("Call fatalError Event");
          System.out.println(exception);
     }
     public void warning(SAXParseException exception) {
          System.out.println("Call warning Event");
          System.out.println(exception);
     }
}



Reference : 소설같은 XML & XML Web Services

신고
Posted by Proneer

댓글을 달아 주세요


티스토리 툴바