시간이 지나면 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>