W3C

XPointer element() Scheme

W3C Recommendation 25 March 2003

현재 버전:
http://www.w3.org/TR/2003/REC-xptr-element-20030325/
최신 버전:
http://www.w3.org/TR/xptr-element/
이전 버전:
http://www.w3.org/TR/2002/PR-xptr-element-20021113/
저자:
Paul Grosso, Arbortext, Inc. <paul@arbortext.com>
Eve Maler, Sun Microsystems <eve.maler@sun.com>
Jonathan Marsh, Microsoft <jmarsh@microsoft.com>
Norman Walsh, Sun Microsystems <Norman.Walsh@Sun.COM>
번역자:
김남형 <pastime@ece.uos.ac.kr>
번역일:
2003-05-12

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

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

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


개요

XPointer element() scheme 은 XPointer Framework [XPtrFrame] 과 함께 XML 원소를 가리키는 기본적인 방법을 제공하기 위한 목적으로 만들어졌다.

본 문서의 상태

이 절에서는이 문서의 발행 당시 상태(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 xmlns() 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 표준 참조문서


1 서론

XPointer element() scheme 은 XPointer Framework [XPtrFrame] 과 함께 XML 원소를 가리키는 기본적인 방법을 제공하기 위한 목적으로 만들어 졌다.

[정의: 이 명세에서 사용된 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 명세에 정의되어 있다.

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

2 다른 명세와의 일치

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

element() scheme 을 지원하는 XPointer processor 는 최소한 XML Information Set [Infoset] 과 XML Schema [XMLSchema] information items 과 XPointer Framework 명세에 나열된 속성들을 지원하는 XML 자원들을 보여주는(expose) 능력에 의존한다.

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

3 언어와 처리방법

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

scheme 의 이름은 "element" 이다. scheme data 의 문법은 아래와 같다. 만약 pointer part 내부의 scheme data 가 이 명세에서 정의된 element() scheme 의 문법을 따르지 않는다면 pointer part 는 하위 자원을 가리키지 못한다.

element() Scheme 문법
[1]    ElementSchemeData    ::=    (NCName ChildSequence?) | ChildSequence
[2]    ChildSequence    ::=    ('/' [1-9] [0-9]*)+

scheme data 는 NCName (XML namespaces specification [XML-Names] 에 정의되어 있음) 이나 child sequence 둘 중의 하나, 혹은 둘 다로 이루어 진다.

NCName 하나만 있을 경우는 shorthand pointer 라고 하며 (XPointer Framework [XPtrFrame] 명세에 정의되어 있음) 오직 하나의 원소 만을 가리킨다. 오직 한가지 차이점은 원소를 찾아내는 것을 실패한 경우에는 XPointer Framework error 가 발생하지 않고 단순히 아무런 하위 자원(원소)도 가리키지 않는다는 점이다.

예를 들어 다음의 pointer part 는 "intro" 라는 ID (XPointer Framework 에 정의되어 있음) 를 가지는 원소를 가리킨다:

element(intro)

child sequence 하나만 있을 경우는 단계적인 탐색에 의해 원소를 가리키는 것이다. 이는 슬래시 (/) 로 구분된 정수들의 나열로 이루어지며, 각각의 정수 n 은 이전의 원소의 n 번째 자식을 가리킨다. 맨처음 슬래시 다음의 정수는 n 번째의 최상위 원소를 가리킨다. 이는 유일한 document element 이거나 ([document element] 속성, 자원이 XML 문서일 경우 이 값은 항상 1 이다.) 여러개의 루트 원소 중의 하나일 수 있다 (자원이 외부의 분석된 개체(external parsed entity) 인 경우 루트 원소(들)). 예를 들면, XML 자원이 그 문서 전체라고 할 때 다음의 pointer part 는 문서의 루트 원소 내의 두번째 자식을 가리킨다:

element(/1/2)

NCName 다음에 child sequence 가 나오는 경우에도 단계적인 탐색이 이루어지며 이 때 주어진 노드에서부터 탐색이 시작된다. 예를 들어 다음의 pointer part 는 "intro" 라는 값으로 찾은 첫번째 원소의 세번째 자식 의 첫번째 자식을 가리킨다:

element(intro/3/1)

만약 NCName 이나 child sequence 가 어떤 원소도 가리키지 못한다면, pointer part 전체도 아무런 원소를 가리키지 못한다.

element() scheme 은 qualified name 을 지원하지 않기 때문에 namespace binding context 를 사용하지 않는다.

표준 참조문서

Infoset
John Cowan and Richard Tobin, editors. XML Information Set. World Wide Web Consortium, 2001.
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.
XML-Names
Tim Bray, Dave Hollander, and Andrew Layman, editors. Namespaces in XML. World Wide Web Consortium, 1999.
XPtrFrame
Paul Grosso, Eve Maler, Jonathan Marsh, and Norman Walsh, editors. XPointer Framework. World Wide Web Consortium, 2002.
XMLSchema
Henry S. Thompson et al., editors. XML Schema Part 1. World Wide Web Consortium, 2001.