본문 바로가기
프로그래밍

XML namespace 이해하기

by 탁구치는 개발자 2012. 11. 6.

시간이 지나면 xml namespace에 대해서 자꾸 까먹어 블로그에 정리 한다.

  • XML 문서 내에서 유일한 엘리먼트 이름이나 속성 이름을 제공하기 위해 사용된다.
  • XML은 사용자가 자유롭게 엘리먼트를 정의할 수 있는 장점을 가지고 있지만 사용되는 엘리먼트가 XML 문서에서 중복될 수도 있다.
  • 이름이 같은 엘리먼트에 의해 발생할 수 있는 이름 충돌을 해결하기 위해 사용되는 것이 namespace이다.
  • 네임스페이스를 사용하기 위해 "xmlns"라는 속성을 사용한다.
  • "xmlns" 속성값은 네임스페이스를 식별하기 위한 네임스페이스 이름이며, XML문서 내에서는 유일해야 한다.

<엘리먼트이름 xmlns=”URI_Reference”>

  • 엘리먼트 이름은 기본 네임스페이스를 선언하는 엘리먼트 명을 지정하고 xmlns 속성은 기본 네임스페이스를 지정하기 위한 속성이다. 
  • 기본 네임스페이스는 접두어를 따로 기술하지 않고 기본 네임스페이스를 지정하면 해당 엘리먼트와 하위 엘리먼트가 모두 네임스페이스에 속하게 된다.
  • 기본 네임스페이스는 네임스페이스 접두어를 붙이지 않은 엘리먼트에만 적용되고 네임스페이스 접두어가 있는 속성에는 적용되지 않는다.

다음의 xml은 기본 네임스페이스와 prof 네임스페이스를 사용한 예이다.

<?xml version="1.0" encoding="euc-kr" standalone="yes"?>

<school xmlns="http://www.hankook.ac.kr/student" 

xmlns:prof="http://www.hankook.ac.kr/professor">

<student>

<name>kyu</name>

<email>xml@test.com</email>

<address>방이동</address>

</student>

<professor>

<prof:name>tom</prof:name>

<prof:email>xml1@test.com</prof:email>

<prof:address>성내동</prof:address>

</professor>

</school>