메인 컨텐츠로 가기

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관 보기.

developerWorks에 처음 로그인하면 developerWorks프로파일이 생성됩니다.귀하의 프로파일에서 동의하신 내용이 공개되지만 이 사항은 언제든지 변경 가능합니다. 귀하의 성명(숨김으로 체크되어 있어도 표시됩니다)과 디스플레이 이름은 게시한 컨텐츠나 사이트 엑세스시 표시됩니다.

모든 정보가 안전하게 전송되었습니다.

  • 닫기 [x]

처음 developerWorks에 로그인할 때 프로파일이 작성되므로, 이를 위해 디스플레이 이름을 선택해야 합니다. 선택하신 디스플레이 이름은 developerWorks에 게시한 컨텐츠에 표시됩니다.

3글자 이상 31글자 이하의 길이로 사용 가능합니다. dW커뮤니티 내에서는 보안상 이메일주소를 제외한 다른 이름을 지정하셔야 합니다.

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관 보기.

모든 정보가 안전하게 전송되었습니다.

  • 닫기 [x]

Simple API for XML (SAX)

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

필자:  Community specification

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

원문 게재일:  2007 년 6 월 19 일
난이도:  중급 원문:  보기
페이지뷰: 1092 회
의견: 

이벤트 중심 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을 처리하는데 가장 효율적인 표준 방식으로 인정받고 있는 것이다.


참고자료

의견



static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=20
Zone=XML
ArticleID=238834
SummaryTitle=Simple API for XML (SAX)
publish-date=06192007