다음에 나오는 DOM 노드 트리를 기억해 두자:
38.9 -77.03
이러한 구조는 노드 인터페이스를 통해 부모, 자식, 그리고 형제 링크 사이를 옮겨 다닐 수 있다. 이름공간 지원 DOM Level 2에 새로 부가된 특성 중 가장 중요한 것은 XML 권고안의 이름공간을 지원할 수 있다는 것으로, XML 권고안은 1999년 1월 14일에 승인되었다. 이름공간을 이용하면, 하나의 문서에 여러 개의 XML 용어를 섞어서 사용할 수 있다. 가령 XHTML 페이지에
접두사는 태그 이름의 URI를 사용하는 단축키이다. 접두사를 사용하면 입력하는 시간을 많이 줄일 수 있으며, 대부분의 URI에는 유효한 XML 이름 토큰이 없다. 그래서 접두사를 사용하기 전에는 특별한 xmlns 속성 접두사를 사용하여 정의를 해 두어야 한다. 다음의 예를 보자:
xmlns:svg 속성을 파싱하고 나면, svg: 접두사는 태그와 속성을 가지게 된다. DOM Level 1은 이름공간이 지원하지 않기 때문에 DOM으로 접두사가 있는 특정 태그의 이름을 알아내는 것은 애플리케이션의 몫이었다. DOM Level 2는 Level 1 메소드에서 새로운 이름공간인식 버전을 제공해서 이름공간을 지원한다:
각각의 새로운 이름공간 메소드는 namespaceURI라는 매개 변수를 더해서 메소드의 기본 버전을 확장한다. 단순히 태그 이름을 지나치는 것뿐만 아니라, 권한이 부여된 이름(이름공간 접두사가 있는 이름), 그리고 관련 URI를 지나치는 것도 가능하다. DOM은 분명히 필요한 xmlns 속성을 삽입한다. 검색 속성과 엘리먼트를 찾아내는 메소드 역시 이름공간 인식 버전을 가지고 있는데, 이를 이용하면 조회하고 있는 XML 애플리케이션과 일치하는 태그와 속성만을 찾아낸다. 앞에서 예로 들었던 XHTML 문서를 예로 들어 보자. 이 문서에는
Element elXHTMLTitle = document.이와 똑같은 과정으로 특정 애플리케이션에 속하는 속성을 찾을 수 있다. 수정하기 DOM Level 1 Core의 큰 한계중 한 가지는 프로그램에 입각해서 새로운 빈 문서 인스턴스를 만들 수 없다는 것이었다. 문서 객체의 인스턴스를 얻는 유일한 방법은 지금 있는 문서를 파싱하는 것인데, 그러면 다른 애플리케이션이 제대로 작동하지 않을 수도 있다. DOMImplementation 인터페이스에는 createDocument()와 createDocumentType()이라는 두 가지 메소드가 있다. 이를 이용해서 새로운 빈 문서와 관련 DTD(문서 타입 정의)를 생성한다. 그리고 DTD는 다큐먼트 인터페이스로 조작한다. 하지만 아직도 DocumentType 인터페이스에서 DTD를 수정하지는 못하기 때문에, DOM만을 사용하여 완벽한 특성을 지니는 문서 편집기를 구현하는 것도 아직은 불가능하다. 한번에 여러 문서 띄우기 DOM API의 기본 개념 중 하나는 부모 문서 밖에는 어떤 문서 트리(하나의 노드가 있는 객체 인스턴스)도 없다는 것이다. 한 번에 여러 개의 문서를 열어 놓을 수는 있지만, 하나의 트리에서 노드를 제거하고 열어 놓은 다른 문서로 삽입하는 것은 불가능하다. Level 2는 다큐먼트 인터페이스의 새로운 importNode()를 제공한다. 임포팅하는 대신에 소스 다큐먼트의 명시된 부분을 복사해서 타겟 문서 내에서 사용할 수 있도록 한다. 맺음말 Level 2에서는 이름공간과 문서 편집을 지원한다는 것 외에도 Level 1에서 발생하는 큰 문제(특정 Attr 노드가 속하는 엘리먼트를 결정할 수 없는 것과 같은 문제)를 많이 수정했다. DOM이 최종 목표에 도달하려면 아직 갈 길이 멀지만, XML의 인기가 급상승하고 있기 때문에 새로운 특성에 대한 요구도 함께 증가할 것이다. 하지만 XML의 인기와 새로운 애플리케이션과 함께 사용할 수 있는 구현의 수도 많다는 것을 감안하면, 앞으로 DOM은 모든 XML 프로그래머의 툴킷의 중요한 일부가 될 것이다.
getElementsByTagNameNS("http://www.w3.org/1999/xhtml", "title");
이전 글 : 오라일리 엔터프라이즈 자바 컨퍼런스 현장
다음 글 : Learning XML의 저자 에릭 레이와의 인터뷰
최신 콘텐츠