네임스페이스 선언 범위
업데이트: November 2007
네임스페이스 선언에는 범위가 있습니다. 즉, 네임스페이스는 문서의 어느 위치에나 나타날 수 있지만 프로그래밍 변수와 같이 범위를 가지며 해당 범위에 적용됩니다. 네임스페이스 범위에는 기본 네임스페이스와 정규화된 네임스페이스의 두 가지가 있습니다.
기본 네임스페이스는 루트 요소에서 선언되는 네임스페이스입니다. 이 네임스페이스는 문서의 정규화되지 않은 모든 요소에 적용됩니다. 정규화된 네임스페이스는 보다 구체적인 네임스페이스가 문서의 일부를 재정의할 때 선언되는 네임스페이스입니다.
네임스페이스는 사용되기 전에 선언되어야 하지만 XML 문서의 맨 처음에 나타나야 하는 것은 아닙니다. 예를 들어, 다음 샘플에서는 데이터 중간에 BOOK 요소 수준에서 선언되는 정규화된 네임스페이스를 보여 줍니다. 이 네임스페이스는 모든 해당 하위 항목에만 적용됩니다.
<Author>Joe Smith</Author>
<BOOK xmlns:book="https://www.contoso.com">
<title>My Wonderful Day</title>
<price>$3.95</price>
</BOOK>
<Publisher>
<Name>MSPress</Name>
</Publisher>
BOOK 요소에서 정의된 네임스페이스는 Publisher 요소와 같은 BOOK 요소 외부의 요소에는 적용되지 않습니다. 네임스페이스가 문서에 나타나면 선언되고 있는 네임스페이스는 선언 지점부터 선언된 요소의 끝까지 유효함을 의미합니다.
네임스페이스가 Publisher 요소에 대해 선언되었으면 네임스페이스를 콜론과 함께 요소 앞에 두어 정규화해야 합니다. Publisher 요소가 mybook 네임스페이스에 속하는 경우에는 해당 요소가 <mybook:Publisher>로 선언됩니다.