XML 문서를 처리하는 방법


다음 글은 책 '소설같은 XML & XML Web Services'에서 발췌한 내용입니다.

1. DOM과 SAX
DOM과 SAX는 XML 문서를 처리하기 위한 대표적인 방법이다. DOM(Document Object Model)은 XML과 같은 마크업 언어(HTML, SGML 등)로 작성된 문서를 처리하기 위한 기법으로써, 자바 스크립트에도 많이 등장한다. SAX(Simple API for XML)는 이름에서 알 수 있듯이 XML 문서를 보다 쉽게 처리할 수 있도록 만들어진 프로그래밍 기법이다.
 
이 둘은 서로 장단점을 가지고 있으므로, 자신에게 필요한 기법을 선택해서 프로그래밍하면 된다.


2. DOM(Document Object Model)
DOM은 WEC에 의해 주관되는 표준 XML 처리 방법이다. DOM은 XML만을 위한 것이 아니라 XML과 같은 마크업 형식을 따르는 모든 문서를 처리하기 위한 표준 API이다. 그래서 DOM은 HTML뿐만 아니라 스타일시트(Stylesheet)를 위한 API 도 함께 포함하고 있다.

DOM은 XML 문서를 처리하기 위해 XML 문서를 읽고 메모리에 로딩한다. 메모리에 로딩된 XML은 트리 구조를 가지며, 트리 기반(Tree based)의 API를 이용해서 XML 문서를 처리할 수 있다.

DOM은 버전으로 구분되지 않고 Level에 의해 구분되는데, 현재 Level 3 일부가 권고안으로 확정된 상태이다.


3. SAX(Simple API for XML)
DOM은 XML 문서를 메모리에 로딩하기 때문에 처리 속도가 느리고, XML 문서의 크기가 클 경우 많은 양의 메모리를 필요로 한다. 이런 단점을 극복하기 위해 만들어진 것이 바로 SAX이다. SAX는 XML-Dev Mailing List 회원들의 제안으로 만들어 졋으며, 그 대표주자가 David Megginson이다.

DOM은 XML 문서를 메모리에 로딩한 후 처리하는 방식을 사용하는 반면, SAX는 XML 문서를 읽어가면서 이벤트를 호출하여 처리하는 이벤트 기반(Event based)의 처리 방식을 사용한다. XML 문서를 처리하기 위해 필요한 이벤트를 등록하면 SAX 파서가 XML 문서를 읽으면서 동시에 등록된 이벤트에 해당하는 부분을 만낫을 때 이벤트가 호출되는 방식으로 동작한다.

현재 SAX는 2.0 까지가 발표된 상태이며, 이는 http://www.saxproject.org 에서 확인할 수 있다.


Reference : 소설같은 XML & XML Web Services

신고
Posted by Proneer
TAG , ,

댓글을 달아 주세요


티스토리 툴바