IBM®
메인 컨텐츠로 가기
    Korea [국가변경]    이용약관
 
 
   
        제품    서비스 & 솔루션    고객지원 & 다운로드    회원 서비스    

한국 developerWorks  >  XML  >

Simple API for XML (SAX)

기본적인 XML 파싱에서 발생한 이벤트용 핸들러 작성하기

developerWorks

난이도 : 중급

필자: Community specification

2007 년 6 월 19 일

이벤트 중심 XML API인 Simple API for XML (SAX)은 XML이 파서에서 특화된 핸들러 코드로 전달될 때 이벤트 스트림을 정의한다. SAX가 어떻게 만들어졌는지, XML을 처리하는데 가장 효율적이면서도 어려운지 그 이유를 알아보자.

Simple API for XML (SAX) [community specification]는 이벤트 중심 API이다. XML 마크업의 다른 부분들(시작과 끝 태그, 텍스트, 엔터티)에서 실행된 특정 이벤트용 핸들러 코드를 등록한다. 이 파서는 인풋 XML에 기반하여 이러한 이벤트들의 스트림을 보내면, 핸들러 코드는 이를 처리한다.

SAX는 XML-DEV mailing list에서 1997년 후반, 만들어졌고, XML 전문가라면 거쳐가야 할 필수 코스라 할 수 있다. 대기업 또는 표준 기구의 후원도 없었으나, David Megginson이 이것을 이끌었고, 결국 가장 성공적인 XML 이니셔티브 중 하나가 되었다. SAX 이전에, 각 파서는 XML 구조와 핸들러 코드가 통신할 수 있는 고유의 API를 사용했고, SAX는 이를 통합했다. 일반적으로, 파서는 저급 파서 이벤트를 SAX 표준 이벤트로 변환하는 SAX 드라이버를 제공하고, 이식 가능한 코드에도 적용된다. SAX는 자바™ 언어를 염두 해 두고 개발되었지만, 다양한 언어와 환경에도 대중적으로 사용되고 있다. 가끔은 자바 중심적 특성으로 인해 포팅이 복잡해 질 때가 있다. SAX는 현재 2기에 해당하고, XML 네임스페이스 프로세싱과 문서 구조와 관련된 특정 이벤트의 선택적 리포팅이 포함된다.

대부분의 언어에서는, 이벤트 중심 인터페이스들은 주로 콜백(callback) 함수, GUI 프로그래밍 스타일을 사용하여 구현된다. 객체 지향 언어에서, 콜백은 객체용 메소드로 등록되고, 다형성을 사용하여 메소드 이름과 핸들러 코드를 매치 시키고, 캡슐화를 사용하여 콜백들 간 핸들러의 상태를 관리한다. 이벤트 기반 프로그래밍의 전체적인 모델은 푸쉬(push) 모델로 알려 있으며 많은 프로그래머들이 마스터링 하기에 까다롭다고 정평이 나있다. 프로그래밍이 쉬운 것으로 간주된 대부분의 모델들은 문서로의 랜덤 액세스가 필요하고 이는 비효율적이기 때문에 SAX가 XML을 처리하는데 가장 효율적인 표준 방식으로 인정받고 있는 것이다.


참고자료



위로


문서 옵션

JavaScript가 필요한 문서 옵션은 디스플레이되지 않습니다.

영어원문

영어원문


제안 및 의견
피드백

    IBM 소개 개인정보 보호정책 문의