프로그래밍 언어/javascript

DOM (Document Object Model) - 객체 지향 모델

벌게진눈 2014. 1. 25. 21:38
반응형

DOM은 문서 객체 모델의 약어로 HTMLXML 문서를 위한 API(Application Prog ramming Interface)로서 문서의 물리적 구조와 문서가 접근되고 다루어지는 방법을 정의한다.

DOMXML 문서를 하나의 Tree 구조로 본다. Element Element에 포함되어 있는것은, 하위의 Tree 로 인식하고, 동등한 깊이에 있는 것은 형제 Tree 로 인식 하는 형태이다. 파서가 모든 이벤트들을 잡아서 그 결과를 메모리상에 트리 형태로 만들고 APPLICATION이 이 결과를 이용하도록 한다.

- DOM의 특징

XML문서를 메모리상에 올려놓은 다음 DATA를 찾아 들어가는 방식을 사용한다.

큰 문서일 경우 무조건 다 읽기 때문에 Load 시간이 걸리거나 메모리를 낭비하게

된다.

문서 편집을 할 수 있다.

Data를 저장되어 있는 순서대로 받는다.

  

- DOM의 목적

1) 다양한 환경과 애플리케이션에서 사용할 수 있는 표준적인 프로그래밍 인터페이

스 제공한다.

2) 프로그램 또는 스크립트를 통해 HTML이나 XML같은 웹 문서의 내용과 구조 그

리고 스타일 정보의 검색 또는 수정이 가능하도록 해주는 플랫폼 또는 언어에 중립적인 인터페이스이다.

- DOM 구조와 원리

DOMXML 문서에 노드 클래스의 하위 클래스 인스턴스로 표현되는 노드들의 트리로 표현되는데, 특정 노드의 하위클래스는 요소, 텍스트, 주석이 될 수 있다. 따라서DOM은 트리 구조로서 XML 문서를 다루게 되는 것이다.

1) DOM을 이용한 XML 문서변환

XML 문서를 응용프로그램이 파싱 요청을 하면 XML 파서에 의해 해석한 후 DOM인터페이스를 이용하여 응용프로그램과 정보를 서로 전달하여 XML문서를 조작하도록 하고 있다.

2) XML 문서와 DOM 트리구조

XML 문서

<?xml version="1.0" encoding="euc-kr" ?>

    <>

        <제목>XML 정목</제목>

        <발행년도>2004년 발행</발행년도>

</>

 DOM 노드 트리 모델링





XML 문서에서의 객체

* XML 문서

<?xml version="1.0" encoding="euc-kr" ?>

<>

<제목>XML 정목</제목>

<발행년도>2004년 발행</발행년도>

</>

* XML 객체

Documents : 작성된 전체 문서를 대표하는 객체이다.

<> : 2개의 하위 요소 객체인 <제목><발행년도>를 포함한 루트 객체이다.

<제목> : 다음 요소객체로 <발행년도>를 갖고 "XML 정복"라는 text객체를 소

유함.

XML 정복 : <제목> 객체의 text객체가 된다.

<발행년도> : 이전 요소객체로 <제목>를 갖고 "2004년 발행"이라는 text객체를

소유한다.

 2004년 발행 : <발행년도> 객체의 text객체가 된다.

 

 

 

Ex) 두 번째 child의 값을 얻고 싶으면, "root 아래의 parent 아래의 두 번째 child 노드의 값을 달라"라고 요청하면 "자식2" 라는 값을 반환한다. 노드의 값을 수정할 수 있다전체 XML 문서를 메모리에 불러와야 하기 때문에 효율성이 떨어진다.

 

 

(null)

 

- DOM 기반 Parser

1) DOM 기반 파서는 DOM API 라는 프로그램 라이브러리를 사용한다. 이 라이브러

리를 이용하면 XML 문서의 테이터를 엑세스하고 변경하기 위해 DOM 트리에 있는

노드를 다룰 수 있다. 여러 언어로 작성되어 있으며 보통 무료로 다운 받을 수 있다.

러 응용 프로그램-인터넷 익스플로러 6(msxml 3.0 기본 내장) 에서 파서를 이미 내

장하고 있다.

2) 대표적인 DOM 기반 파서 (지원버전 : DOM Level 2 SAX 2.0)

JAXP : 썬 마이크로시스템의 파서(Java API for XML Parsing)

http://java.sun.com/xml

XML4J : IBM의 파서(XML Parser for Java)

http://www.alphaworks.ibm.com/tech/xml4j

Xerces : 아파치의 파서(Xerces Java Parser)

http://xml.apache.org/

msxml : 마이크로소프트 파서

http://msdm.microsoft.com/xml 

반응형