노드
노드(node)
W3C XML DOM 표준에 따르면 XML 문서 내의 모든 것은 노드(node)라고 불리는 계층적 단위에 정보를 담고 있습니다.
XML DOM은 이러한 노드들을 정의하고, 그들 사이의 관계를 설명해 주는 역할을 합니다.
노드의 종류
W3C XML DOM 표준에 따르면 XML 문서 내에 존재하는 모든 것은 노드입니다.
XML 문서를 구성하는 대표적인 노드의 종류는 다음과 같습니다.
노드 | 설명 |
---|---|
문서 노드(document node) |
XML 문서 전체를 나타내는 노드임. |
요소 노드(element node) |
모든 XML 요소는 모두 요소 노드이며, 속성 노드를 가질 수 있는 유일한 노드임. |
속성 노드(attribute node) |
XML 요소의 속성은 모두 속성 노드이며, 요소 노드에 관한 정보를 가지고 있는 노드임. 하지만 속성 노드는 해당 요소 노드의 자식 노드(child node)에 포함되지는 않음. |
텍스트 노드(text node) | XML 문서 내의 텍스트는 모두 텍스트 노드임. |
주석 노드(comment node) |
XML 문서 내의 주석은 모두 주석 노드임. |
노드 트리(node tree)
XML 문서의 정보는 노드 트리라고 불리는 계층적 구조에 저장됩니다.
이러한 노드 트리는 노드들의 집합으로, 노드 간의 관계를 나타냅니다.
예제
<?xml version="1.0" encoding="UTF-8"?>
<programming_languages>
<language>
<name>CSS</name>
<category>web</category>
<developer>W3C</developer>
<version status="stable">3.0</version>
<priority rating="3">high</priority>
</language>
</programming_languages>
다음 그림은 위의 XML 파일을 노드 트리로 표현한 그림입니다.
노드 트리는 최상위 레벨인 루트 노드(root node)로부터 시작하여 가장 낮은 레벨인 텍스트 노드까지 뻗어 내려갑니다.
XML DOM을 이용하면 노드 트리에 포함된 모든 노드에 접근할 수 있습니다.
노드 간의 관계
노드 트리의 모든 노드들은 서로 계층적 관계를 맺고 있습니다.
노드 트리의 최상위에는 단 하나의 루트 노드(root node)만이 존재합니다.
루트 노드를 제외한 모든 노드는 단 하나의 부모 노드(parent node)를 가집니다.
모든 요소 노드는 자식 노드(child node)를 가질 수 있습니다.
형제 노드(sibling node)란 같은 부모 노드를 가지는 모든 노드를 가리킵니다.
조상 노드(ancestor node)란 부모 노드를 포함해 계층적으로 현재 노드보다 상위에 존재하는 모든 노드를 가리킵니다.
자손 노드(descendant node)란 자식 노드를 포함해 계층적으로 현재 노드보다 하위에 존재하는 모든 노드를 가리킵니다.