XML 네임스페이스

XML 네임스페이스(XML namespace)는 XML 문서에서 고유하게 명명된 요소와 속성을 제공하는 데 사용된다. 이는 W3C 권장 사항에 정의되어 있다. XML 인스턴스에는 둘 이상의 XML 어휘의 요소 또는 속성 이름이 포함될 수 있다. 각 어휘에 네임스페이스가 제공되면 동일한 이름의 요소나 속성 간의 모호성을 해결할 수 있다.

간단한 예는 고객과 주문한 제품에 대한 참조가 포함된 XML 인스턴스를 고려하는 것이다. 고객 요소와 제품 요소 모두 id라는 하위 요소를 가질 수 있다. 따라서 id 요소에 대한 참조는 모호하다. 이를 다른 네임스페이스에 배치하면 모호함이 제거된다.

 네임스페이스 선언 
XML 네임스페이스는 예약된 XML 속성 xmlns 또는 xmlns:prefix를 사용하여 선언되며 해당 값은 유효한 네임스페이스 이름이어야 한다.

예를 들어, 다음 선언은 "xhtml:" 접두사를 XHTML 네임스페이스에 매핑한다.

<nowiki>xmlns:xhtml="http://www.w3.org/1999/xhtml"</nowiki>

이름이 "xhtml:" 접두사로 시작하는 모든 요소나 속성은 해당 요소 또는 조상이 위의 네임스페이스 선언을 갖고 있는 경우 XHTML 네임스페이스에 있는 것으로 간주된다.

기본 네임스페이스를 선언하는 것도 가능하다. 예를 들어:

<nowiki>xmlns="http://www.w3.org/1999/xhtml"</nowiki>

이 경우 네임스페이스 접두사가 없는 모든 요소는 해당 요소 또는 상위 항목에 위의 기본 네임스페이스 선언이 있는 경우 XHTML 네임스페이스에 있는 것으로 간주된다.

범위에 기본 네임스페이스 선언이 없으면 네임스페이스 이름에는 값이 없다. 이 경우 명시적인 네임스페이스 접두사가 없는 요소는 어떤 네임스페이스에도 없는 것으로 간주된다.

속성에는 기본 네임스페이스가 적용되지 않는다. 명시적인 네임스페이스 접두사가 없는 특성은 어떤 네임스페이스에도 없는 것으로 간주된다.

 같이 보기 
 이름공간

 각주 

 외부 링크 
 Namespaces in XML 1.0 (Third Edition)
 Namespaces in XML 1.1 (Second Edition)
 Namespaces Crash Course (Mozilla Developer Network)

분류:XML