HTML문서의 태그들은 DOM에서 트리로 표현되는 계층적 구조를 갖는다.
W3C DOM 표준은 다음의 세 가지 모델로 구분된다.
Core DOM : 모든 문서 타입을 위한 DOM 모델
HTML DOM : HTML 문서를 위한 DOM 모델
XML DOM : XML 문서를 위한 DOM 모델
Hypertext Markup Language
eXtensible Markup Language = 확장 가능한 표시 언어
Markup Language의 다른 예로는 우리가 아는 언어인 HTML이 있다.
HTML은 이미 약속되어있는 태그만 사용이 가능하다.
반면, XML은 이름 그대로 '확장 가능하다'는 차이점이 있다.
XML의 태그는 사용자가 임의로 만들어 사용할 수 있다.
XML은 어떠한 데이터를 설명하기 위해 임의로 만든 태그로 해당 데이터를 감싼다.
즉, 태그를 통해 데이터를 설명하는 것이다.
XML의 특징
1. 다목적 마크업 언어이다.
2. 다른 시스템끼리 다양한 종류의 데이터를 솝쉽게 교환할 수 있도록 해준다.
3. 새로운 태그를 만들어 추가해도 계속해서 동작하므로, 확장성이 좋다.
4. 데이터를 전달하고 저장하는 것만을 목적으로 한다.
5. 텍스트 데이터 형식의 언어로, 모든 XML 문서는 유니코드* 문자로만 이루어진다.
* 유니코드 : 숫자와 글자, 즉 키와 값이 1:1로 매핑된 형태의 코드
DOM은 원본 HTML의 객체 기반 표현 방식이다. 둘은 서로 비슷하지만, DOM이 갖고 있는 근본적인 차이는 단순 텍스트로 구성된 HTML의 내용과 구조가 객체 모델로 변환되어 다양한 프로그램에서 사용될 수 있다는 점이다.
JavaScript는 DOM을 이용하여 다음과 같은 작업을 할 수 있다.
새로운 HTML 요소나 속성을 추가할 수 있다.
존재하는 HTML 요소나 속성을 제거할 수 있다.
HTML 문서의 모든 HTML 요소를 변경할 수 있다.
HTML 문서의 모든 HTML 속성을 변경할 수 있다.
HTML 문서의 모든 CSS 스타일을 변경할 수 있다.
HTML 문서에 새로운 HTML 이벤트를 추가할 수 있다.
HTML 문서의 모든 HTML 이벤트에 반응할 수 있다.