목차
1.Introduction
2.파서란 무엇인가.
3.Object Model이란 무엇인가.
4.DOM과 SAX는 왜 만들어졌는가.
5.DOM은 무엇인가..
6.SAX는 무엇인가.
7.언제 DOM을 쓸 것인가.
8.언제 SAX를 쓸 것인가.
9.DOM과 SAX은 어떻게 사용하나.
10.맺음말
2.파서란 무엇인가.
3.Object Model이란 무엇인가.
4.DOM과 SAX는 왜 만들어졌는가.
5.DOM은 무엇인가..
6.SAX는 무엇인가.
7.언제 DOM을 쓸 것인가.
8.언제 SAX를 쓸 것인가.
9.DOM과 SAX은 어떻게 사용하나.
10.맺음말
본문내용
현재 표준안은 CORBA 2.2의 OMG IDL, ECMAScript, 자바 언어 등에 대한 랭귀지 바인딩을 포함하고 있다.
9.3 DOM Level 1 API
DOM Level 1은 크게 Core 부분과 HTML로 구성되어 있다. level 0에는 Core, HTML, XML 이렇게 세 부분으로 구성되어 있었으나 level 1에서는 Core(내부적으로 XML을 포함)와 HTML에 대한 부분으로 나뉜다.
.
9.3.1 DOM Core
DOM Core는 최소한의 오브젝트와 문서를 조작하고 접근하여 사용할 수 있는 인터페이스를 정의한 것으로 parsed HTML이나 XML문서의 내용이 손실없이 표현을 할 수 있으며, HTML 4.0, XML 1.0 지원하고, 문서의 계층적 구조 생성할 수 있으며, 상위 레벨의 API가 쉽게 사용될 수 있도록 확장이 용이하게 설계되었다.
DOM Core는 API 타입에 따라 상속 관계를 가질 수 있는데 다음 그림은 DOM의 가장 기본적인 타입인 노드타입에 대한 상속 관계이다.
이 그림에서 각각은 타입을 의미하며 가장 중요한 타입은 Node 타입이 되며 거의 모든 타입은 Node 타입을 상속받아 사용한다.
Node 타입은 가장 기본적인 타입으로써 부모 노드와 정해지지 않은 순서적 자식 노드를 가질 수 있으며, Elemenet 타입은 HTML이나 XML 문서의 엘리먼트(태그) 객체에 대한 내용을 가지며 Node 타입을 상속받는다.. 즉, Element 타입은 시작 태그와 종료 태그 사이에 있는 내용을 저장할 수 있으며, 이 Element 타입은 여러개의 Attribute를 가질 수 있다.
DocumentFragment 타입은 "lightweight" 또는 "minimal" Document 객체로서 문서의 일부분을 가지게 된다. Document 타입은 HTML이나 XML 문서의 루트 노트를 가지며, DocumentFragment로부터 상속을 받게 된다.
또한 Attr은 엘리먼트의 속성, Text는 태그가 아닌 부분을 저장하게 되며, PI, Comment는 각각 Processing Instruction과 주석문에 대한 타입이 된다.
즉, 각 타입에 대하여 getNodeType, getParentNode, getChildNodes 등과 같은 메소드를 정의하고 있으며, Node 타입 뿐만 아니라 기타 타입에도 이와 같은 메소드가 존재한다.
또한 이 메소드는 자바, IDL, EMACScript 와 같이 다양한 언어로 인터페이스가 설계되어 있으며, 향후 DOM을 지원하는 파서 및 툴들은 그 인터페이스의 명세에 맞게 작성되었다는 것이다.
9.3.2 DOM HTML
DOM HTML은 DOM Core를 기반으로 하여 HTML 문서의 핸들링을 위한 인터페이스이다. HTML이 Core 부분과 구별되는 것은 Core는 HTML, XML 등의 문서에 사용하는 인터페이스에 대한 정의가 있으며, HTML은 HTML에 맞는(또는 필요한) 인터페이스만 추가로 정의되어 있다.
DOM HTML을 이해하기 위해서는 DOM HTML Type Hierarchy의 구조를 이해하여야 한다. 다음 그림은 HTML Type Hierarchy의 개념도이다. Core와 마찬가지로 각 부분은 타입을 나타내며, HTMLElement 타입은 현재 HTML 4.0에서 정의하고 있는 모든 태그에 대하여 각각 타입으로 51개의 타입을 등록시켜 놓았다.
본 보고서에는 계층도를 간략화하기 위하여 HTMElement 타입중에서 HTMLHtmlElement 타입과 HTMLFrameElement만을 표시하였다.
HTMLElement 타입을 상속받는 타입은 다음과 같다.
HTMLHtmlElement, HTMLHeadElement, HTMLLinkElement, HTMLTitleElement, HTMLMETAElement, HTMLBASEElement, HTMLIsIndexElement, HTMLStyleElement, HTMLBodyElement, HTMLFormElement, HTMLSelectElement, HTMLOptGroupElement, HTMLOptionElement, HTMLInputElement, HTMLTextAresElement, HTMLButtonElement, HTMLLabelElement, HTMLFieldSetElement, HTMLLegendElement, HTMLUListElement, HTMLOListElement, HTMLDListElement, HTMLMenuElement, HTMLLIElement, HTMLBlockquoteElement, HTMLDIVElement, HTMLParagraphElement, HTMLBRElement, HTMLBaseFormElement, HTMLFrontElement, HTMLHREFElement, HTMLModElement, HTMLAnchorElement, HTMLImageElement, HTMLObjectElement, HTMLParamElement, HTMLAppletElement, HTMLMapElement, HTMLScriptElement, HTMLTableElement, HTMLTableCaptionElement, HTMLTableColElement, HTMLTableSectionElement, HTMLTableRowElement, HTMLTableCellElement, HTMLTableSetElement, HTMLFrameElement
10. 관련 요소 기술
Document Object Model (DOM) Level, 1 Recommendation과 관련 있는 요소 기술은 XML, HTML, CORBA, Java, ECMAScript, Style 등이라 볼 수 있다. XML은 기본적인 Core DOM의 중요한 요소 기술이 되며, HTML은 HTML DOM의 기반 기술이다. 또한 자바, CORBA, ECMAScript 등은 DOM의 언어 바인딩이 되는 것으로 현재 DOM 표준에서는 CORBA IDL 및 자바 등으로 그 예를 보이고 있다.
또한 스타일 관련 기술 (CSS 및 XSL)은 차후 DOM의 필요한 요소 기술이 된다.
9.3 DOM Level 1 API
DOM Level 1은 크게 Core 부분과 HTML로 구성되어 있다. level 0에는 Core, HTML, XML 이렇게 세 부분으로 구성되어 있었으나 level 1에서는 Core(내부적으로 XML을 포함)와 HTML에 대한 부분으로 나뉜다.
.
9.3.1 DOM Core
DOM Core는 최소한의 오브젝트와 문서를 조작하고 접근하여 사용할 수 있는 인터페이스를 정의한 것으로 parsed HTML이나 XML문서의 내용이 손실없이 표현을 할 수 있으며, HTML 4.0, XML 1.0 지원하고, 문서의 계층적 구조 생성할 수 있으며, 상위 레벨의 API가 쉽게 사용될 수 있도록 확장이 용이하게 설계되었다.
DOM Core는 API 타입에 따라 상속 관계를 가질 수 있는데 다음 그림은 DOM의 가장 기본적인 타입인 노드타입에 대한 상속 관계이다.
이 그림에서 각각은 타입을 의미하며 가장 중요한 타입은 Node 타입이 되며 거의 모든 타입은 Node 타입을 상속받아 사용한다.
Node 타입은 가장 기본적인 타입으로써 부모 노드와 정해지지 않은 순서적 자식 노드를 가질 수 있으며, Elemenet 타입은 HTML이나 XML 문서의 엘리먼트(태그) 객체에 대한 내용을 가지며 Node 타입을 상속받는다.. 즉, Element 타입은 시작 태그와 종료 태그 사이에 있는 내용을 저장할 수 있으며, 이 Element 타입은 여러개의 Attribute를 가질 수 있다.
DocumentFragment 타입은 "lightweight" 또는 "minimal" Document 객체로서 문서의 일부분을 가지게 된다. Document 타입은 HTML이나 XML 문서의 루트 노트를 가지며, DocumentFragment로부터 상속을 받게 된다.
또한 Attr은 엘리먼트의 속성, Text는 태그가 아닌 부분을 저장하게 되며, PI, Comment는 각각 Processing Instruction과 주석문에 대한 타입이 된다.
즉, 각 타입에 대하여 getNodeType, getParentNode, getChildNodes 등과 같은 메소드를 정의하고 있으며, Node 타입 뿐만 아니라 기타 타입에도 이와 같은 메소드가 존재한다.
또한 이 메소드는 자바, IDL, EMACScript 와 같이 다양한 언어로 인터페이스가 설계되어 있으며, 향후 DOM을 지원하는 파서 및 툴들은 그 인터페이스의 명세에 맞게 작성되었다는 것이다.
9.3.2 DOM HTML
DOM HTML은 DOM Core를 기반으로 하여 HTML 문서의 핸들링을 위한 인터페이스이다. HTML이 Core 부분과 구별되는 것은 Core는 HTML, XML 등의 문서에 사용하는 인터페이스에 대한 정의가 있으며, HTML은 HTML에 맞는(또는 필요한) 인터페이스만 추가로 정의되어 있다.
DOM HTML을 이해하기 위해서는 DOM HTML Type Hierarchy의 구조를 이해하여야 한다. 다음 그림은 HTML Type Hierarchy의 개념도이다. Core와 마찬가지로 각 부분은 타입을 나타내며, HTMLElement 타입은 현재 HTML 4.0에서 정의하고 있는 모든 태그에 대하여 각각 타입으로 51개의 타입을 등록시켜 놓았다.
본 보고서에는 계층도를 간략화하기 위하여 HTMElement 타입중에서 HTMLHtmlElement 타입과 HTMLFrameElement만을 표시하였다.
HTMLElement 타입을 상속받는 타입은 다음과 같다.
HTMLHtmlElement, HTMLHeadElement, HTMLLinkElement, HTMLTitleElement, HTMLMETAElement, HTMLBASEElement, HTMLIsIndexElement, HTMLStyleElement, HTMLBodyElement, HTMLFormElement, HTMLSelectElement, HTMLOptGroupElement, HTMLOptionElement, HTMLInputElement, HTMLTextAresElement, HTMLButtonElement, HTMLLabelElement, HTMLFieldSetElement, HTMLLegendElement, HTMLUListElement, HTMLOListElement, HTMLDListElement, HTMLMenuElement, HTMLLIElement, HTMLBlockquoteElement, HTMLDIVElement, HTMLParagraphElement, HTMLBRElement, HTMLBaseFormElement, HTMLFrontElement, HTMLHREFElement, HTMLModElement, HTMLAnchorElement, HTMLImageElement, HTMLObjectElement, HTMLParamElement, HTMLAppletElement, HTMLMapElement, HTMLScriptElement, HTMLTableElement, HTMLTableCaptionElement, HTMLTableColElement, HTMLTableSectionElement, HTMLTableRowElement, HTMLTableCellElement, HTMLTableSetElement, HTMLFrameElement
10. 관련 요소 기술
Document Object Model (DOM) Level, 1 Recommendation과 관련 있는 요소 기술은 XML, HTML, CORBA, Java, ECMAScript, Style 등이라 볼 수 있다. XML은 기본적인 Core DOM의 중요한 요소 기술이 되며, HTML은 HTML DOM의 기반 기술이다. 또한 자바, CORBA, ECMAScript 등은 DOM의 언어 바인딩이 되는 것으로 현재 DOM 표준에서는 CORBA IDL 및 자바 등으로 그 예를 보이고 있다.
또한 스타일 관련 기술 (CSS 및 XSL)은 차후 DOM의 필요한 요소 기술이 된다.