Transcript Document

작성일자 2020년 4월 28일 문서번호 DAI01-0609-SMN-XML-03 작성자 염승종, 최해길 제목 문서 객체 모델(DOM) 관리자 정목동 교수 변경코드 00 검토 문서종류 세미나 자료 페이지 승인

DOM(Document Object Model

Michael C. Daconta and AI Saganich 저 “자바2를 이용한 XML 활용” DISTRIBUTED ARTIFICIAL INTELLIGENCE LAB.

1. 개요

• 1) DOM 의 역사 • 2) DOM 의 정의및 요건 • 3) DOM 의 구조와 동작원리 • 4) DOM에서 제공하는 각종 API – DOM 코어 레벨 I – DOM 레벨 II – DOM 코어 DISTRIBUTED ARTIFICIAL INTELLIGENCE LAB.

1) DOM 의 역사

• DHTML(Dynamic HTML) – HTML 기술 에 스타일 시트, 스크립트, 레이어 기능 추가 – 문제점) 플랫폼 밀접, 언어의 특성에 영향 • 표준 문서 객체 모형 정의로부터 출발 DISTRIBUTED ARTIFICIAL INTELLIGENCE LAB.

2) DOM 의 정의및 요건

• 문서 객체 모델(Document Object Model) 의 약어로 HTML과 XML 문서를 위한 API • 모델 – 완전한 모델로서, 모델의 데이터로부터 완전 한 객체가 다시 생성될 수 있도록 XML 객체의 모든 면들을 표현. • 요건들의 집합 – W3C에 의해 정의된, 모든 DOM의 구현들이 따라야 하는 요건들의 집합 • 객체 정의들의 집합 합과 프로퍼티, 행동양식들을 기술하는 객체 지향적 스펙 – 모든 객체의 인터페이스 집 DISTRIBUTED ARTIFICIAL INTELLIGENCE LAB.

2) DOM 의 정의및 요건(Cont)

1. HTML 과 XML 을 위한 API 2. 객체 모델(Object Model)은 언어적 측면에서 중립적이며, 플랫폼 측면에서 독립적이다.

3. HTML 이나 CSS, XML 문서에 적용할 수 있는 핵심적인 DOM이 존재할 것이다.

4. 객체 모델은 문서를 생성, 파괴하는데 사용될 수 있다.

5. 객체 모델은 문서 건텐트 외부의 에이전트나 문서 내부에 포함된 스크립트에 의해 사용될 것이다.

DISTRIBUTED ARTIFICIAL INTELLIGENCE LAB.

2) DOM 의 정의및 요건(Cont)

• 6. 객체 모델의 전 단계에 걸쳐 일관되게 명명법 을 사용해야 한다.

• 7. 시각적인 UI 구성요소는 객체 모델의 구현에 있어 필수적인 사항은 아니다.

• 8. 특정HTML 혹은 CSS, XML 문서 객체 모델은 언어의 내부 구성에 의해 영향받는다.

• 9. 하나의 문서를 읽어들인 후, 구조적으로 동일 한 형태의 문서를 작성할 수 있어야 한다.

• 10. 객체 모델은 보안이나 유효성, 내부 기밀과 관련된 문제들을 사용자에게 드러내지 않는다.

DISTRIBUTED ARTIFICIAL INTELLIGENCE LAB.

2) DOM 의 정의및 요건(Cont)

• 11. 객체 모델은 문서를 다루기 위한 기 타 메커니즘을 베제해서는 안 된다.

DISTRIBUTED ARTIFICIAL INTELLIGENCE LAB.

3) DOM 의 구조와 동작원리

• DOM 은 모델링 대상 문서 구조를 탐색하고, 변경하고, 정보를 얻을 수 있는 각종 API를 제 공 DOM SAX DOM 과 SAX 관계 – SAX 파서에서 얻어진 결과를 사용하여 문서 객체 모델 을 트리 방식으로 구성 XML 파일 XML 저장소 Web DISTRIBUTED ARTIFICIAL INTELLIGENCE LAB.

3) DOM 의 구조와 동작원리 (Cont)

XML 파서 (SAX – compliant) Document Handler Error Handler DTD Handler Entity Handler Document Builder DOM DISTRIBUTED ARTIFICIAL INTELLIGENCE LAB.

4) DOM에서 제공하는 각종 API ( Application Programming Interface )

• 1. DOM 코어레벨 I – 인터페이스와 객체들의 핵심적이고 기본적 인 집합을 의미 – Document, Element, Node 의 3개의 주요 영역을 다룸 <그림 3.1 참고> • 1. Node 인터페이스 본적인 인터페이스 – DOM 코어에 포함된 기 – Node의 값과 이름, 타입과 같은 정보를 검색 – 정보를 추출하고, 갱신하거나 삭제 – 자식 노드나 부모 노드, 형제 노드 정보를 검색 DISTRIBUTED ARTIFICIAL INTELLIGENCE LAB.

4) DOM에서 제공하는 각종 API(Cont)

• Document 인터페이스 – XML 문서 트리에서 가장 상위에 위치한 인터페이스 – 문서의 이름이나 객체, 표기법과 같은 정보를 검색 – 지원되는 DOM 코어의 버전과 같은 구현에 관한 정 보들을 질의 가능 – 문서와 DocumentFragment, Element, Node, Attribute, Comment 등을 생성 – 문서 트리를 순회 DISTRIBUTED ARTIFICIAL INTELLIGENCE LAB.

4) DOM에서 제공하는 각종 API(Cont)

• Element 인터페이스 – XML 트리의 가지 부분 을 구성, 대부분 원소로 표현. 속성을 조작하는 것을 목표로 함 – Element의 속성에 접근하고 조작하는 기능 – Element의 자식 노드에 접근하는 기능 – Element의 태그에 접근하는 기능 • Attr 인터페이스 – DOM을 통한 XML 속성 표현 을 생성하고, 탐색하며, 조작가능 DISTRIBUTED ARTIFICIAL INTELLIGENCE LAB.

4) DOM에서 제공하는 각종 API(Cont)

• DOM 레벨 II – XML 문서를 생성, 조작하거나 추적하고 살 펴보기 위한 인터페이스의 집합을 정의 – HTML, View, Stylesheet, CSS, Event, Traversal, Range 기능 구현 • HTML – • View – DOM을 이용하여 HTML 문서의 처리 문서를 읽기 위한 창 • Stylesheet Document 객체와 마찬가지로 처리하기 위한 방법을 제공 – 스타일시트에 접근하고, XML의 DISTRIBUTED ARTIFICIAL INTELLIGENCE LAB.

4) DOM에서 제공하는 각종 API(Cont)

• CSS – CSS 스타일시트에 접근하기 위한 인터페이스 집합. 현재 XSL 스타일시트로 대체 • Event – 런타임시 문서가 변화하는 내용을 애플리케 이션이 쉽게 알아낼 수 있는 메커니즘을 정의 • Traversal – Iterator – 공 일차원화된 문서를 순회하기 위한 메터니즘을 제 – TreeWalker – 커니즘 문서의 실제 트리 구조를 순회하기 위한 메 • Range – 능을 수행 Document 객체의 다양한 논리 연산의 기 DISTRIBUTED ARTIFICIAL INTELLIGENCE LAB.

4) DOM에서 제공하는 각종 API(Cont)

• DOM 코어 – 기술 방식 - IDL(Interface Description Language) 인터페이스 기술언어 구현 • Ex) Type methodname([in/out/inout] arguments

) raise(someexception) DISTRIBUTED ARTIFICIAL INTELLIGENCE LAB.