1. DOM[Document Object Model]
DOM은 HTML과 XML 문서를 위한 API(Application Programming Interface )로서 문서의 물리적 구조(XML)와 문서(HTML)가 접근/다루어지는 방법을 정의한다.
웹 브라우저를 통한 확장성 생성 언어(XML) 문서의 상호 연동을 위한 객체 기반의 문서 모델 이다.
DOM은 HTML과 XML 문서를 연결시켜주는 프로그래밍적 인터페이스이다.
XML 문서를 열고 XML 데이터를 처리할 수 있는 방법을 정의하고 있다.
플랫폼과 언어 면에서 중립적인 인터페이스로서 프로그램과 스크립트에 의한 문서의 내용,구조,종류의 동적인 접근과 변경이 가능하며, 스크립트나 프로그램 언어에 웹 페이지를 연결해 준다.
웹 페이지를 조작,생성하기 위해 사용되는 속성, 방법 및 이벤트가 객체를 구성하는데, 이러한 객체들은 대부분의 웹 브라우저에서 스크립트 언어를 통해 접근할 수 있다.
DOM을 이용하면 개발자는 XML 문서를 만들 수 있고, XML 문서 구조를 내비게이션할 수 있으며, 그 요소들을 추가/수정/삭제할 수 있다.
DOM의 중요한 목적은 아주 다양한 환경과 애플리케이션에서 사용할 수 있는 표준적인 프로그래밍 인터페이스를 제공하는 것이다.
웹에서 문서 구조를 액세스하고 조작하는 좀 더 표준적인 방법을 만들기 위해서 W3C는 현재의 W3C DOM이라는 스펙을 내놓았다.
이는 HTML문서에 대한 객체 모델과 XML문서에 대한 좀 더 일반화된 모델을 제공한다.
W3C DOM은 언어 중립적(language-neutral)이고 플랫폼 중립적(platform-neutral)인 정의이다.
즉, DOM을 구성하는 다른 객체에 대해 인터페이스는 정의하지만, 구현에 대해서는 어떤 스펙도 제공하지 않는다.
DOM은 어떤 플랫폼에서 어떤 프로그래밍 언어로도 구현할 수 있다.
DOM 은 XML파서와 애플리케이션 사이의 계층에 놓여진다.
DOM은 SAX파서에서 얻어진 결과를 이용하여 문서 객체 모델인 DOM을 만들어 낸다.
DOM 생성 과정은 먼저, 파서는 DOM 에서 제공하는 DocumentBuilder 를 통해 원본 XML Document 를 파싱하기 위해 Document Handler를 생성하고, 파서는 SAX에서 제공하는 Document Handler를 통해 입력된 원본 XML 문서를 파싱하여 Document 객체를 생성시키고 엘리먼트와 문자열이 들어올 때마다 DOM자료 구조를 차례로 만들어 나간다.
DOM Level 1
- core, HTML, 그리고 XML 문서모델에 대한 내용이다.
- 레벨 1은 문서에 대하여 항해(navigation)하거나 조작(manipulation)하는 기능을 포함.
DOM Level 2
- 스타일 쉬트를 적용한 개체모델을 지원하고 문서에 스타일 정보를 조작하는 기능을 정의.
- 문서에 대한 풍부한 질의기능과 이벤트 모델에 대한 정의 기능도 포함.
DOM Level 3
- 윈도우즈 환경 하에서 사용가능한 사용자 인터페이스를 기술하는 것까지 포함, 이를 이용하여 사용자는 문서의 DTD를 조작하는 기능과 보안 레벨까지 정의
2. SAX[Simple Application Program Interface for Extensible Markup Language]
SAX는 철저한 이벤트 기반 인터페이스이다.
객체 기반 인터페이스인 DOM(Document Object Model)이 문서의 모든 정보 노드를 메모리상에 저장해야 하므로 많은 메모리 용량의 소모와 이로 인한 수행 속도가 다소 저하될 수 있는 반면, SAX는 파서가 문서를 파싱하는 동안에 발생하는 이벤트에 대해서만 반응하고 이를 따로 메모리에 저장하지 않으므로 빠른 수행속도를 가진다.
그러나 문서정보에 대한 이벤트 발생이 지나가면 이에 대한 정보를 저장하지 않으므로 응용프로그램에서 처리해야 할 부분이 DOM 보다 복잡해 질 수 있다는 단점이 있다.
이러한 점 때문에 DOM과 SAX는 그 응용분야가 구분되고 있다.
SAX는 문서의 내용을 생성,수정 하는 응용프로그램에서는 잘 쓰이지 않으며 주로 대용량의
문서 정보를 빠른 시간 안에 읽어 들이는 작업에 주로 이용 되고 있다.
객체 기반 인터페이스와 이벤트 기반 인터페이스의 커다란 차이점은 이벤트기반 인터페이스(SAX)는 문서 요소에 대해 트리구조를 생성하지 않는다는 것이다. 이러한 점으로 인해 응용프로그램에서는 이벤트에서 발생한 정보에 대한 처리가 다소 복잡해질 수 있다.
이벤트 기반 인터페이스는 객체 기반 인터페이스보다 하위 레벨에 속한다.
SAX의 XML 문서 생성 과정
- 1단계 : XML 문서를 취급하기 위하여 프로그램에서 XML 문서를 읽어들임
- 2단계 : DOM 처럼 불러들인 XML 문서를 XML 파서(XML Parser, XML 해석기)에 의해 트리구조로 만들지 않고 직접 프로그램상에서 XML문서를 차례로 읽으면서 그에 맞는 이벤트가 발생하였을 때 SAX API를 이용하여 사용자가 작성한 문서대로 XML 문서를 조작
- 3단계 : 조작되어진 XML 문서를 프로그램이 마무리하여 생성 혹은 갱신
Dom[Document Object Model]의 특징
- 객체 모델 기반 API
- 노드(Node)단위로 데이터 처리
- 문서의 구조 정보와 내용을 객체로 이용
- 메모리 적재방식
SAX[Simple API for XML]의 특징
- 이벤트 기반 API
- SAX Parser는 XML태그의 시작과 끝에서 이벤트 생성
- XML문서를 하나의 긴 문자열로 간주
- 라인 인터프리트방식
DOM과 SAX의 특징 비교
-SAX는 DOM에 비해 XML 문서에 대한 필요한(미리 정의한) 데이터 구조만 처리
-특정 부분 정보만 집중적으로 처리가 가능하므로 메모리 공간을 DOM 보다 효율적으로 사용가능
-Random Access 가 어렵고 DOM에 비해 프로그래머가 처리할 부분이 많다.
-메모리 내에 문서정보를 갖고 있지 않아서 구조 변경을 위해서는 별도 자료 구조를 구축해야 하는 단점이 있다.
-SAX는 XML 문서를 처리하는 데 아주 유용한 인터페이스의 역할을 한다.
XML문서가 파서내로 입력으로 들어올때 DOM파서는 XML문서 자체를 파싱하여 메모리에 올려놓고 요청되는 노드데이터를 메모리에서 끌어당겨서 쓰는 방식을 취한다.
그래서 PULL방식 이라 하고, SAX파서는 XML문서가 입력으로 들어오면 XML문서를 순차적으로 읽어들여 이벤트를 해당 프로그램에게 처리하라고 밀어주는 방식이다.
그래서 PUSH방식 이라고 한다.
DOM은 다음과 같은 상황에 적용이 가능하다.
- 문서를 수정,삭제,추가 하고자 할 때
- 앤덤 엑세스를 하고자 할 때
- 새로운 데이터 구조를 생성하고자 할 때
SAX는 다음과 같은 상황에 적용이 가능하다.
- 큰 문서를 핸들링 하고자 할 때
- 빠른 처리를 요 할 때
- 이벤트 스트링에서 문서를 필터링 하고자 할 때
- 데이터 일부만이 필요 할 때
- 문서 자체에 대한 변경이 필요하지 않을 때
DOM과 SAX의 기술적 특징 비교
DOM | SAX | |
파싱방식 | tree-walking 방식 | 이벤트 처리 방식 |
재사용성 | 데이터 재가공 용이 | 한번 처리되면 다시 수정불가 |
접근방식 | 랜덤 엑세스 방식 | 스트리밍 방식 |
처리속도 | SAX가 DOM보다는 처리속도가 빠르다. | |
사용정도 | SAX가 DOM보다는 사용하기가 어렵다. | |
문서크기 | 비교적 저용량 문서에 적합 | 대용량 문서처리에 편리 |
구조변경 | 데이터 구조 변경 가능 | 데이터 구조 변경 불가(Read Only) |
호출방식 | 사용자에 의한 특정 함수 호출 방식 | 자동 호출 방식 |
1. 1. DOM[Document Object Model]
DOM is an application programming interface (API) for HTML and XML documents, defining how the physical structure of a document (XML) and the document (HTML) are accessed and handled.
It is an object-based document model for interworking of extensibility generation language (XML) documents through web browsers.
DOM is a programming interface that connects HTML and XML documents.
It defines how XML documents can be opened and XML data can be processed.
As a neutral interface in terms of platform and language, it is possible to dynamically access and change the contents, structure, and types of documents by programs and scripts, and connects web pages to scripts or program languages.
Properties, methods, and events used to manipulate and generate web pages constitute objects, which can be accessed through script language in most web browsers.
DOM allows developers to create XML documents, navigate XML document structures, and add/modify/delete elements.
The important purpose of DOM is to provide a standard programming interface that can be used in a wide variety of environments and applications.
In order to create a more standard way to access and manipulate document structures on the web, W3C has come up with the specification of the current W3CDOM.
This provides an object model for HTML documents and a more generalized model for XML documents.
W3CDOM is a language-neutral and platform-neutral definition.
In other words, the interface defines other objects constituting the DOM, but does not provide any specifications for implementation.
DOM can be implemented on any platform and in any programming language.
The DOM is placed in the layer between the XML parser and the application.
DOM uses the results obtained from the SAX parser to create a DOM, a document object model.
In the DOM creation process, the parser first creates a Document Handler to parse the original XML document through the DocumentBuilder provided by the DOM, and the parser parses the original XML document entered through the Document Handler provided by the SAX to create the Document object and create the DOM data structure in turn whenever elements and strings come in.
DOM Level 1
- It is about core, HTML, and XML document models.
- Level 1 includes the ability to navigate or manipulate documents.
DOM Level 2
- Define the ability to support object models with style sheets and manipulate style information in documents.
- Includes rich query functionality for documents and definition functionality for event models.
DOM Level 3
- Including describing user interfaces available under Windows environments, using this to define the ability and security level to manipulate the DTD of the document
2. 2. SAX[Simple Application Program Interface for Extensible Markup Language]
SAX is a thorough, event-based interface.
The document object model (DOM), an object-based interface, must store all information nodes in the document in memory, which can consume a lot of memory capacity and reduce the performance speed somewhat, while SAX responds only to events that occur while parsing the document and does not store them separately in memory, so it has a fast performance speed.
However, when an event for document information passes, the information is not stored, so the part to be handled in the application may become more complex than the DOM.
Because of this, the application fields of DOM and SAX are distinguished.
SAX is not commonly used in applications that create and modify the contents of documents, and it is mainly used in large amounts
It is mainly used for reading document information in a short time.
The big difference between object-based interfaces and event-based interfaces is that event-based interfaces (SAXs) do not create tree structures for document elements. Because of this, applications process information generated in events 1. DOM [Document Object Model]
DOM is an application programming interface (API) for HTML and XML documents, defining how the physical structure of a document (XML) and the document (HTML) are accessed and handled.
It is an object-based document model for interworking of extensibility generation language (XML) documents through web browsers.
DOM is a programming interface that connects HTML and XML documents.
It defines how XML documents can be opened and XML data can be processed.
As a neutral interface in terms of platform and language, it is possible to dynamically access and change the contents, structure, and types of documents by programs and scripts, and connects web pages to scripts or program languages.
Properties, methods, and events used to manipulate and generate web pages constitute objects, which can be accessed through script language in most web browsers.
DOM allows developers to create XML documents, navigate XML document structures, and add/modify/delete elements.
The important purpose of DOM is to provide a standard programming interface that can be used in a wide variety of environments and applications.
In order to create a more standard way to access and manipulate document structures on the web, W3C has come up with the specification of the current W3CDOM.
This provides an object model for HTML documents and a more generalized model for XML documents.
'리눅스와 웹개발' 카테고리의 다른 글
XML FAQ (4) | 2023.12.06 |
---|---|
XML 배경이야기 (4) | 2023.12.05 |
XML응용 분야의 예 (4) | 2023.12.03 |
Javascript로 XML 문서 핸들링 하기 (2) | 2023.12.01 |
XML (2) | 2023.11.30 |