W3C

XPointer xmlns() Scheme

W3C Recommendation 25 March 2003

현재 버전:
http://www.w3.org/TR/2003/REC-xptr-xmlns-20030325/
최신 버전:
http://www.w3.org/TR/xptr-xmlns/
이전 버전:
http://www.w3.org/TR/2002/PR-xptr-xmlns-20021113/
저자:
Steven J. DeRose <sderose@acm.org>
Ron Daniel Jr. <rdaniel@taxonomystrategies.com>
Eve Maler, Sun Microsystems <eve.maler@sun.com>
Jonathan Marsh, Microsoft <jmarsh@microsoft.com>
번역자:
김남형 <pastime@ece.uos.ac.kr>
번역일:
2003-05-12

공식적인 정오표를 포함하는 이 문서의 errata 페이지를 참고하기 바란다.

이 문서는 다음과 같은 비표준적(Non-normative)인 형태로 이용할 수 있다: XML.

이 명세의 공식적인 버전은 영어로 작성된 문서이다. 비표준적인 번역 문서는 translations 에서 이용가능하다.


개요

XPointer xmlns() scheme 은 XPointer Framework [XPtrFrame] 와 함께 pointer 내에서 이름공간 접두어(prefix) 를 올바르게 해석하는 방법을 제공하기 위한 목적으로 만들어 졌다. 예를 들어, scheme data 내의 이름공간이 한정된 (namespace-qualified) scheme name 과 이름공간이 한정된 원소나 속성 이름 등의 사용을 말한다.

본 문서의 상태

이 절에서는이 문서의 발행 당시 상태(status)에 대해서 설명하고 있다. 이 문서는 다른 문서로 대체될 수 있다. 이 문서 시리즈의 최근 상황은 W3C 에 의해 관리된다.

이 문서는 W3C 의 권고안 (REC) 이다. 즉 W3C 멤버들과 다른 관련된 그룹들의 검토를 거쳤으며 임원회의 승인을 거쳐 W3C 권고안으로 인정되었다. 이 문서는 안정된 버전으로서 다른 문서에서 이 문서를 참고 문헌으로 사용하거나 인용할 수 있다. 권고안을 제정하는 데 있어 W3C 의 역할은 명세에 관심을 끌어들이는 일과 이러한 사항들이 널리 사용될 수 있도록 촉진하는 데 있다. 이를 통해 Web 의 유용성과 상호 운용성은 더욱 높아질 것이다.

이 문서는 W3C XML Linking Working Group 에 의해 XML Activity 작업의 일환으로서 만들어 졌다. 이것은 원래의 XPointer requirements 의 일부분을 나타낼 목적으로 만들어 졌으며, XML Media type 을 위한 부분 식별자 (fragment identifier) 문법의 일부로서 XPointer Framework, XPointer element() Scheme 명세와 함께 제공된다.

이 문서에 관련하여 의견을 제시하는 것은 환영한다. 공개 메일링 리스트인 다음 주소로 의견을 보내주기 바란다. www-xml-linking-comments@w3.org (archive).

이 명세나 XPointer element() Scheme, XPointer xmlns() Scheme 에 관련된 정보나 구현 사항등은 Implementation Report 에서 찾아볼 수 있다.

이 문서의 특허권과 라이센스는 W3C policy를 따르는 XPointer IPR Statement 페이지에서 찾아볼 수 있다.

현재 W3C 권고안과 다른 기술문서 목록은 http://www.w3.org/TR/ 을 참고하기 바란다. W3C 의 발표 문서들은 언제라도 다른 문서로 업데이트되거나, 교체되거나, 폐기될 수 있다.

목차

1 서론
2 다른 명세와의 일치
3 언어와 처리방법

부록

A 표준 참조문서
B 비표준 참조문서 (Non-Normative)


1 서론

XPointer xmlns() scheme 은 XPointer Framework [XPtrFrame] 와 함께 scheme data 내에 나타나는 이름공간이 한정된 scheme name 과 원소 혹은 속성 이름 등과 같은 pointer 내의 이름공간 접두어들을 올바르게 해석하기 위한 방법을 제공할 목적으로 만들어 졌다.

[정의: 이 명세에서 사용된 must, must not, required, shall, shall not, should, should not, recommended, may, optional 이라는 용어는 [RFC 2119] 에서 설명하는 대로 해석되어 진다.]

이 명세에서 사용된 pointer part, scheme, XPointer processor, error, namespace binding context 라는 용어는 XPointer Framework 명세에 정의되어 있다.

xmlns() scheme 의 형식 문법은 XML 권고안 [XML] 에서 설명하는 단순한 Extended Backus-Naur Form (EBNF) 표기법을 사용하여 제공된다.

2 다른 명세와의 일치

이 명세는 공식적으로 XPointer Framework [XPtrFrame] 명세에 의존한다.

xmlns() scheme 을 지원하는 XPointer processor 는 반드시 이 명세에서 정의되어진 대로 동작해야 하며 다른 추가적인 XPointer scheme 명세를 지원할 수도 있다.

3 언어와 처리방법

이 절에서는 xmlns() scheme 의 문법과 그 의미, 이 scheme 을 지원하는 XPointer processor 의 동작에 대해서 설명한다.

scheme 의 이름은 "xmlns" 이다. scheme data 의 문법은 아래와 같다. 만약 pointer part 내부의 scheme data 가 이 명세에서 정의된 xmlns() scheme 의 문법을 따르지 않는다면 pointer part 는 개체에게 namespace binding context 를 제공하지 않을 것이다.

xmlns() Scheme 문법
[1]    XmlnsSchemeData   ::=    NCName S? '=' S? EscapedNamespaceName
[2]    EscapedNamespaceName    ::=    EscapedData*

S 는 XML 명세 [XML] 에 정의되어 있으며, NCName 은 XML Namespaces specification [XML-Names] 에 정의되어 있고, EscapedData 는 XPointer Framework 명세 [XPtrFrame] 에 정의되어 있다.

xmlns() scheme 으로 구성된 pointer part 는 XML 이름공간 (꺽쇠로 escape 처리되지 않은 EscapedNamespaceName) 에 해당하는 이름공간 접두어 (NCName) 를 선언한다. 각각의 pointer part 는 xmlns() scheme 을 이용하여 namespace binding context 에 새로운 개체를 제공한다. 만약 pointer part 이미 존재하는 namespace binding context 개체에 새로운 이름공간 접두어를 정의한다면 새로 정의된 개체가 이전의 것을 덮어쓰게 된다.

예를 들어 다음의 pointer part 는 http://example.com/ns/abc 라는 이름공간에 abc 라는 접두어를 지정한다:

xmlns(abc=http://example.com/ns/abc)

xmlns() scheme 을 사용하는 pointer part 는 결코 하위자원을 가리킬 수 없으며 따라서 XPointer processor 는 항상 그 다음의 pointer part 를 이용하여 계산한다. 하지만, xmlns pointer part 의 계산은 그 오른쪽에 있는 pointer part 들에게 잠재적인 영향을 미친다.

XPointer Framework 와 이 명세에서는 맨 처음 pointer part 를 계산하기에 앞서 다음과 같은 초기 namespace binding context 를 지정하도록 한다: xml 접두어를 http:/www.w3.org/XML/1998/namespace 라는 URI 에 지정함. Framework 에 명시되어 있는 규칙에 따라 xmlns() scheme 을 이용하여 xml 접두어를 바꾸려는 시도는 namespace binding context 에 아무런 변화를 주지 못한다. 또 http:/www.w3.org/XML/1998/namespace 라는 이름공간에 접두어를 지정하려는 시도 역시 아무런 변화를 주지 못한다. xmlns 라는 접두어를 정의하려는 시도 또한 namespace binding context 에 아무런 변화를 주지 못한다. http://www.w3.org/2000/xmlns/ 라는 이름공간에 접두어를 지정하려는 시도 역시 아무런 변화를 주지 못한다.

pointer part 내에 사용된 접두어는 pointer part 가 가리키는 XML 자원 상에서 실제로 사용되는 접두어와 일치할 필요는 없다. (혹은 접두어를 사용하지 않았을 수도 있다) 예를 들어 다음과 같은 목표 XML 자원이 있다고 가정할 때:

<customer xmlns="http://example.org/customer">
 <name xmlns="http://example.org/personal-info">John Doe</name>
 </customer>

customer 를 참조하는 pointer part 를 계산할 때 http://example.org/customer 이라는 이름공간에 지정된 접두어가 없는 namespace binding context 인 경우 어떠한 하위자원도 가리키지 못할 것이다. 다음의 두 pointer part 는 오른쪽의 xpointer() [XPointer] part 에서 customer 원소 (c:customer) 와 name 원소 (p:name) 를 참조할 수 있도록 해준다:

xmlns(c=http://example.org/customer) xmlns(p=http://example.org/personal-info) xpointer(/c:customer/p:name)

A 표준 참조문서

RFC 2119
Scott Bradner, RFC 2119: Key words for use in RFCs to Indicate Requirement Levels. Internet Engineering Task Force, 1997.
XML
Tim Bray, Jean Paoli, C.M. Sperberg-McQueen, and Eve Maler, editors. Extensible Markup Language (XML) 1.0 (Second Edition). World Wide Web Consortium, 2000.
XPtrFrame
Paul Grosso, Eve Maler, Jonathan Marsh, and Norman Walsh, editors. XPointer Framework. World Wide Web Consortium, 2002.
XML-Names
Tim Bray, Dave Hollander, and Andrew Layman, editors. Namespaces in XML. World Wide Web Consortium, 1999.

B 비표준 참조문서 (Non-Normative)

XPointer
Steve DeRose, Eve Maler, and Ron Daniels, editors. XPointer xpointer() Scheme. World Wide Web Consortium, 2002. Work in progress.