Xpath, Xlink, XPoint ㅎㅎ XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용
학습목표 7장. Xpath, Xlink, XPoint XPath 개념과 활용 방법 학습 XPath 함수 사용법 학습 XPointer 개념과 활용 방법 학습
XPath 개념 트리 Section 01 XPath 개념과 사용 XML 문서의 특정 부분의 위치를 찾을 때 사용하는 언어 문서를 노드로 표현한 결과는 트리 형태임 트리 최상위에 한 개의 루트 노드가 있음 나머지 노드는 모두 루트 노드에 연결 관계는 여러 개의 트리로 나눠 표현 가능
XML 계층 구조를 갖는 트리 구조 Section 01 XPath 개념과 사용 루트 노드 최상위 노드 레벨 (root node) 하위 노드 (terminal node) 노드 (node) 최상위 노드 레벨 최하위 노드 레벨 분기
XPath 모델의 노드 유형 Section 01 XPath 개념과 사용 루트 노드 요소 노드 텍스트 노드 속성 노드 네임스페이스 노드 수행 명령 노드 주석 노드
루트 노드 요소 노드 Section 01 XPath 개념과 사용 최상위 노드. 모든 노드는 루트 노드의 자손 노드 트리는 XML 문서의 모든 요소를 요소 노드로 갖는다. 요소 노드 이름 = 문서의 요소 이름 요소 노드의 자식 노드는 요소의 컨텐츠 안에 있는 것으로 요소 노드, 수행 명령 노드, 주석 노드, 텍스트 노드가 될 수 있다. 요소 노드는 고유한 식별자를 가질 수 있다. DTD를 사용하면 ID 타입의 속성이 요소에 정의될 수 있다. 요소가 id 속성을 가질 경우 XPath에서 노드를 선택하는데 사용 가능
속성 노드 텍스트 노드 Section 01 XPath 개념과 사용 요소의 속성이 속성 노드로 표현 속성 노드와 요소 노드는 동등한 레벨 표현할 때는 자식 노드와 동일한 레벨 텍스트 노드 XML 문서의 문자 데이터는 텍스트 노드로 표현 문자 데이터는 요소의 텍스트 컨텐츠, CDATA 섹션 포함 속성값, 주석, 수행 명령 내의 텍스트는 텍스트 노드가 될 수 없음 항상 텍스트 노드는 하나 이상의 문자를 가지며, 원하는 만큼 텍스트를 포함할 수 있다.
네임스페이스 노드 Section 01 XPath 개념과 사용 각 요소는 요소가 속한 범위의 모든 네임스페이스에 대해 네임스페이스를 가진다. 네임스페이스 노드와 요소 노드와의 관계는 속성 노드와 요소 노드와의 관계와 유사하다. 요소 노드는 네임스페이스 노드의 부모 노드지만 네임스페이스 노드는 요소 노드의 자식 노드가 아니다. 따라서 네임스페이스 노드를 포함한 트리를 표현하면 네임스페이스와 속성은 대개 요소와 같은 레벨에서 표현된다.
수행 명령 노드 주석 노드 Section 01 XPath 개념과 사용 트리는 문서의 모든 수행 명령을 수행 명령 노드로 표현 단, DTD 내의 수행 명령은 해당하지 않음 주석 노드 문서의 모든 주석이 주석 노드로 표현 단, DTD에 있는 주석은 표현하지 않음
XPath 모델의 지역 경로 Section 01 XPath 개념과 사용 지역 경로는 문서의 구조로부터 경로를 어떤 식으로 사용할 것인지 나타내는 개념 지역 경로 예 <students> <student> <sno> s100</sno> <name> 고소영 </name> <address> 서울 </address> </student> </students> [그림 7-2] XML 문서의 노드 유형과 경로
지역 경로 구분 Section 01 XPath 개념과 사용 문서 루트 절대 경로 상대 경로 최상위 노드 역할을 하는 가상 노드(virtual node) 보통은 XML 문서 자체를 의미 문서 루트를 나타내려면 ‘/’(슬래시)로 표현 절대 경로 문서 루트로부터 시작되는 경로를 표현 상대 경로 문서 루트부터 시작되는 경로가 아니라 현재 문맥 노드를 기준으로 경로를 표현한 것
XPath 사용 Section 01 XPath 개념과 사용 XPath의 기본 구성은 표현식 표현식 값을 구한 결과를 객체 혹은 인스턴스로 부름 XPath 객체 종류 객체 종류 설명 노드 집합 중복이 없고 순서에 상관 없는 노드 목록 부울린형 결과로 참(true) 또는 거짓(false) 값으로 반환 숫자 실수 숫자(양의 정수 또는 음의 정수 또는 10진수)로 반환 문자열 문자 데이터로 반환
XPath 표현식 Section 01 XPath 개념과 사용 문맥(context) : XPath 표현식의 값을 구하는 곳 정보 종류 설명 문맥 노드 표현식을 사용하여 애플리케이션이 값을 구한 현재 노드 문맥 노드의 길이와 위치 문서 노드의 개수나 위치를 0이 아닌 양의 정수로 나타냄 변수 변수 이름 값에 매핑 XPath 함수 라이브러리 함수를 사용하여 문서의 노드나 속성 정보 등 네임스페이스 선언 표현식에 적용하는 이름공간 선언의 집합
XPath 표현식에 쓰는 위치 경로 Section 01 XPath 개념과 사용 ① 축 위치 단계와 문맥 노드에 의해 선택된 노드간 관계 문서 일부분이 존재하는 방향 ② 노드 테스트 위치 단계에서 선택된 노드들의 타입과 이름을 표현 찾을 내용에 해당되는 노드 이름 ③ 서술 조건을 표현한다 위치단계에서 선택된 노드 집합에서 조건에 맞는 노드만 반환하기 위해사용 axes :: nodetest [predicate] ①축 ②노드 테스트 ③서술
XPath 조건표현과 트리 Section 01 XPath 개념과 사용 XPath 조건 표현 의미 student[name] 자식요소로 <name>을 가지고 있는 모든 <student> 요소 student[@sno] 속성이 sno인 모든 <student> 요소 name[.='고소영‘] 요소 내용이 “고소영”인 모든 <name> 요소 student[@sno='s100'] sno 속성값이 s100인 모든 <student> 요소 [표 7-3] XPath 조건 표현 [그림 7-3] XPath 조건 표현식
축 Section 01 XPath 개념과 사용 XML문서 트리에서 현재 노드와 노드 간 관계나 방향 표현 [그림 7-4] 축 정의
노드 테스트 Section 01 XPath 개념과 사용 노드 타입과 이름을 기술하기 위해 사용 노드 테스트 함수 함수 이름 설명 name() 노드 이름을 반환하는 함수 text() 텍스트 노드에 대해서 참(true)값을 반환 comment() 주석 노드에 대해서 참(true) 값을 반환하는 함수(주석을 반환하는 함수) processing-instruction() 처리 명령어에 대해서 참(ture)을 반환하는 함수 매개 변수를 가질 수 없다. 이 경우에는 처리 명령어가 동일한 이름을 사용하는 경우에만 참이 된다. node() 임의의 노드에 대해서 참을 반환하는 함수(노드 자신을 반환하는 함수)
서술자 Section 01 XPath 개념과 사용 축을 기준으로 노드 집합을 필터링해서 새로운 노드 집합을 생성 위치 경로에 의해 선택된 노드 집합을 거르는 역할 수행 노드 테스트의 오른쪽 부분에서 대괄호로 묶어 사용 child::name 요소에 의해 추출되는 노드 집합은 문맥 노드의 모든 <name> 요소를 포함 서술자인 [position()=3]이 추가된 새로운 위치 경로는 이들 중 세 번째 name 자식 요소만 선택 child::name[position()=3]
축약형 위치 경로 표현 Section 01 XPath 개념과 사용 XPath 표현식이 길어지는 것을 막기 위해 개발 축약형 표현 child::name name /child::address/child::city /address/city attribute::sno @sno /descendant-or-self::node()/ // /descendant-or-self::node()/child::name //name self::node() . parent::node() .. [position()=3] [3] /descendant::name[position()=2]/ancestor::*[position()=3] /descendant::name[2]/ancestor::*[3] self::node()/descendant-or-self//node()/child::name .//name child::student[attribute::sno and attribute::cno] student[@sno and @cno] [표 7-5] 축약형 표현
XPath 함수 Section 01 XPath 개념과 사용 함수는 이름과 반환 타입, 파라미터를 가질 수 있는데, 매개 변수에 물음표(?)가 붙은 경우에는 매개 변수를 생략할 수 있음 XPath 함수 종류 노드 집합 관련 함수 부울린 관련 함수 숫자 관련 함수 문자열 관련 함수
노드 집합 관련 함수: 노드 집합을 반환하기 위해 사용 Section 01 XPath 개념과 사용 노드 집합 관련 함수: 노드 집합을 반환하기 위해 사용 반환형 함수명 설명 number count(node-set) 선택된 요소의 수를 반환 node-set id(object) ID를 이용해서 원하는 노드를 찾는다. number last() 현재 노드에서 문맥 크기 값을 반환 즉 마지막 자식 요소를 반환한다. string name(node-set?) 노드 이름을 반환 string namespace-uri(node-set?) 네임스페이스의 URI를 반환 string local-name(node-set?) 노드의 지역 이름을 반환 노드 셋인 경우, 첫 번째 노드의 지역 이름을 반환한다. number position() 현재 노드의 문맥 위치 값을 반환
부울린 관련 함수: 조건의 참 또는 거짓을 알아보기 위해 사용 Section 01 XPath 개념과 사용 부울린 관련 함수: 조건의 참 또는 거짓을 알아보기 위해 사용 반환형 함수명 설명 boolean boolean(object) 매개 변수를 부울린 값으로 변환 object가 숫자일 때는 0만 아니면 참이고, object가 노드 셋일 때는 공집합만 아니면 참이며, object가 문자열일 때는 문자열 길이가 0만 아니면 참이다. boolean not(boolean) 부울린 값을 역으로 변환해서 반환 boolean true() 참을 반환 boolean false() 거짓을 반환 boolean lang(string) 문맥 노드에 설정된 xml:lang 속성이 string 값으로 주어진 값과 같은 경우에 참을 반환
숫자 관련 함수: 숫자를 편하게 사용할 수 있게 하는 함수 Section 01 XPath 개념과 사용 숫자 관련 함수: 숫자를 편하게 사용할 수 있게 하는 함수 number number(object?) 매개 변수를 숫자로 변환 object가 문자열인 경우에는 문자를 숫자로 변환하며, object가 부울린인 경우에는 참인 경우에는 1 거짓인경우에는 0을 반환한다. 만약 object가 노드 셋인 경우에는 string() 함수를 통해서 문자열로 변환해서 숫자가 계산된다. 반환형 함수명 설명 numbner sum(node-set) 노드의 문자열 값을 숫자로 변환해서 합계를 구함 numbner floor(number) number보다 크지 않은 가장 큰 정수를 반환 numbner ceiling(number) number보다 작지 않은 가장 작은 정수를 반환 boolean round(number) number의 반올림값을 구한다.
문자열 관련 함수 1: 문자열 값을 선택, 조작하기 위해 사용 Section 01 XPath 개념과 사용 문자열 관련 함수 1: 문자열 값을 선택, 조작하기 위해 사용 반환형 함수명 설명 string string(object?) object를 문자열로 변환한다. object가 노드셋인 경우에는 노드 셋에서 첫 번째 노드의 문자열 값을 문자열로 변환한다. 첫 번째 노드가 문자열 값을 가지고 있지 않은 경우에는 공백 문자열이 반환된다. 숫자인 경우에는 양의 무한대는 “infinity", 음의 무한대는 ”-infinity"문자열을 반환 한다. 부울린인 경우에는 참이면 “true", 거짓인 경우에는 ”false"를 반환 한다. string concat(string, string, string*) 문자열을 결합해서 반환한다. string substring-before(string, string) 첫 번째 매개 변수에서 두 번째 매개 변수가 포함된 위치보다 앞에 있는 내용을 반환한다. 예) substring-before("2003/10/15","/")는 “2003”년을 반환한다. string substring-after(string, string) 첫 번째 매개 변수에서 두 번째 매개 변수가 포함된 위치보다 뒤에 있는 내용을 반환한다. 예) substring-before("2003/10/15","/")는 “10/15”를 반환한다. string normalize-space(string?) 매개 변수의 문자열에서 공백을 제거한다. 예)normalize-space(‘ Study XML’)은 ’StudyMXL'로 반환 한다.
문자열 관련 함수 2: 문자열 값을 선택, 조작하기 위해 사용 Section 01 XPath 개념과 사용 문자열 관련 함수 2: 문자열 값을 선택, 조작하기 위해 사용 반환형 함수명 설명 string translate(string,string, string) 첫 번째 매개 변수의 내용을 두 번째와 세 번째 airi 변수의 변환 규칙을 이용해서 변환한다. 예)translate(‘12:30’,‘:’, ‘$’)은 ‘12$30’으로 반환 한다. string substring(string, number, number?) 첫 번째 매개 변수에서 두 번째 매개 변수가 지정하는 곳의 위치에서부터 세 번째 매개 변수 길이 만큼의 부분 문자열을 반환한다. 예)substring('ABCDEF',2,3)는 ‘BCD'를 반환 한다. boolean contains(string, string) 첫 번째 매개 변수가 두 번째 매개 변수를 포함하고 있으면 참을 반환한다. 예)contains(‘XML', 'M')는 참을 반환한다. boolean start-with(string, string) 첫 번째 매개 변수가 두 번째 매개 변수로 시작하는 경우에 참을 반환 한다. 예)start-with(‘XML','X')는 참을 반환한다. number string-length(string?) 문자열에서 문자의 개수를 리턴한다. 예) string-length('XML')은 3을 반환한다.
XLink Section 02 XLink 개념과 사용 자원들 사이에 링크를 표현하기 위하여 사용되는 XML 관련 표준 링크 개념과 사용 [그림 7-5] 링크 개념과 사용
HTML 링크와 XLink 비교 XLink 기본 기능 Section 02 XLink 개념과 사용 지역 자원에서 원격 자원으로 가는 링크를 지원한다. 링크는 하나의 도착점으로 연결된다. 링크는 사용자에 의해 활성화 또는 선택 된다. 원격 자원은 URL로 지정된다. HTML 링크 XLink 단방향 링크만 가능 단방향과 양방향 링크가 모두 가능 단락 구분의 문서 세부 위치 지정 링크가 가능 문자 단위의 문서 세부 위치 지정 링크가 가능 (좀더 세밀한 링크 지원) 링크 정보만 따로 문서화해서 관리하는 것이 불가능 링크 정보만 따로 문서화해서 관리하는 것이 가능 링크에 의미 부여가 불가능 링크에 의미 부여가 가능
XLink 추가 기능 Section 02 XLink 개념과 사용 XML은 개발자가 자신만의 링크를 정의할 수 있기 때문에 모든 요소는 링크 요소가 될 수 있어야 한다. 링크는 사람과 기계 모두 이해하기 쉬워야 한다. 이 개념은 향후에 시맨틱 웹을 발전시킨 원동력이기도 하다. 개발자는 링크가 처리되는 방법에 관한 특정 정보를 가지는 XLink 애플리케이션을 제공할 수 있어야 한다. 링크 작용은 사용자에 의해 다른 방법으로 활성화 될 수 있다. 링크는 단 방향 링크일 필요는 없다. 링크는 링크가 연결하는 자원의 외부로부터 표현될 수 있다. 링크는 하나 이상의 자원을 포함할 수 있다. 링크 내의 시작 자원과 목표 자원은 다른 링크 작용을 가질 수 있다.
XLink 설계 원칙 Section 02 XLink 개념과 사용 XLink는 인터넷 상에서 바로 사용 가능해야 한다. XLink 표현 언어는 XML의 표준을 따른다. XLink 설계는 빠르게 준비되어야 한다. Xlink 설계는 형식에 맞고 간결해야 한다. XLink는 사람이 인식하기 쉬워야 한다. Xlink의 링크는 참여 자원이 존재하는 문서의 외부에 존재할 수도 있다. Xlink는 추상 구조와 링크의 의미를 나타내야 한다. Xlink는 구현하기 편리해야 한다.
XLink에서 사용되는 링크의 구조 Section 02 XLink 개념과 사용 지역 자원 : XML 원소나 XML 원소의 부모 원소를 링크 원소로 가짐으로서 링크에 참여하는 XML 원소. 원격 자원 : URI 참조에 의해 주소를 부여 받음으로서 링크에 참여하는 자원 [그림 7-6] XLink 의 구조
XLink 속성 Section 02 XLink 개념과 사용 XLink 원소와 속성 사용: XLink 네임스페이스 선언해야 함 XLink를 이용해서 XML 문서에 링크를 하려면 XML 문서에 포함된 각각의 요소에 전역 속성을 사용 전역 속성을 사용해서 임의의 XML 원소도 링크로 만들 수 있음 xmlns:xlink="http://www.w3.org/1999/xlink"
XLink 전역 속성 Section 02 XLink 개념과 사용 속성명 내용 type href URL 지정 role, arcrole 링크와 관련된 사항을 의미적으로 명시하지만, 컴퓨터가 자체적으로 이해할 수 있는 방식으로 명시 title 링크와 관련된 사항을 의미적으로 명시하지만, 인간이 이해할 수 있는 방식으로 명시 show, actuate 링크가 되었을 때 어떻게 보여질 것인가를 명시 from, to, label 링크 방향 지정
Section 02 XML 스키마 사용 단순 링크 HTML에서 <a> 태그를 사용해서 링크를 생성하는 것과 같은 개념 <a> 태그와 다른 점은, HTML이 고정된 <a> 태그만을 사용하고, 의미를 부여할 수 없는 반면, 단순 링크는 임의의 원소에 전역 속성을 이용해서 링크를 연결할 수 있고 의미를 부여할 수 있음 HTML에서의 <a>나 <img>와 같은 간단한 기능을 기본적으로 제공 단순 링크는 type 속성을 simple 속성값을 지정
단순 링크 사용 예 Section 02 XML 스키마 사용 [그림 7-10] XLip에서 실행한 화면
전역 속성: href 속성 Section 02 XML 스키마 사용 링크가 가리키는 곳의 URL 여러 개를 사용할 수 있음 simple 타입 사용 가능 locator 타입에서도 사용 가능 [그림 7-12] 실행 결과
전역 속성: show 속성 Section 02 XML 스키마 사용 링크된 자원을 가져올 때 어떻게 보여줄지를 지정 링크된 자원을 가져올 때 어떻게 보여줄지를 지정 속성 값에 new, replace, embed, other, none을 지정 new: 새로운 창을 띄워서 자원 보여주기 replace: 현재 문서 창에 보여주기 embed: 자원이 XLink 요소와 대치 other: XLink를 어떻게 처리할 것인지 정보를 제공하지 않음 애플리케이션이 링크를 어떻게 처리 할 것인지 결정하기 위해서 문서의 다른 마크업 정보들을 찾아보아야 한다는 의미 none: 애플리케이션이 링크를 처리 방법과 관련한 정보를 XML 문서에 제공되지 않는다는 의미
Section 02 XML 스키마 사용 전역 속성: show 속성 사용 결과 [그림 7-13] 실행 결과
전역 속성: actuate 속성 Section 02 XML 스키마 사용 자원을 검색할 시점을 지정할 때 사용 속성값은 onload, onRequest, other, none 중 하나 사용 onload: 문서가 로딩되면 링크가 지정한 자원을 가져옴 onRequest : 클릭했을 때 자원을 가져옴 other: XLink가 링크 활성화에 관한 정보를 제공하지 않기 때문에 애플리케이션이 링크 활성화에 대한 정보를 얻기 위해서 XML 문서의 다른 부분을 찾아야 한다. none: 링크 활성화에 대한 정보가 없기 때문에 애플리케이션에서 링크 활성화에 대해 알아서 처리하도록 한다.
전역 속성: role 속성 전역 속성: title 속성 Section 02 XML 스키마 사용 애플리케이션을 이해하는 방법으로 자원 이름 할당 전역 속성: title 속성 링크에 대한 설명 표현 [그림 7-14] 실행 결과
전역 속성: from 속성과 to 속성 전역 속성: label 속성 Section 02 XML 스키마 사용 링크 방향을 정의할 때 사용 전역 속성: label 속성 자원 이름을 명시하는 속성 자원의 label 속성 값은 아크(arc)에서 참조
확장 링크 Section 02 XML 스키마 사용 선언할 때는 type 속성 값을 extended로 지정 XLink의 모든 기능을 사용 가능. 원격 자원을 지칭하기 위한 요소, 로컬 자원을 포함하는 요소, 아크 요소, 사람이 읽을 수 있는 자원 요소 등을 지원 [그림 7-15] 확장 링크 개념
타입별 사용 가능/불가능 속성 Section 02 XML 스키마 사용 속성/타입 simple extended locator arc resource title type required href optional role arcrole show actuate label from to
타입별 사용 가능/불가능 속성 Section 02 XML 스키마 사용 locator 속성 resource 속성 arc 속성 확장 링크 요소들의 자식 요소에서만 사용 가능한 속성이다. 확장 링크와 관련이 있으면서도 떨어져 있는 자원들을 지정할 때 사용한다. resource 속성 로컬에서 링크를 사용하기 위해서 사용한다. 즉 extended 속성을 가지고 있는 요소의 자식 요소 중에서 type 속성 값을 resource라고 정해주면 된다. arc 속성 from과 to 속성을 사용하여 링크가 진행되는 방향을 정의하여 준다. 즉 arc 속성은 자원들 간에 오가는 링크들 사이에서 어디서 어디로 향하는 링크인지를 알려주는 속성이다. title 속성 type의 값으로 title을 지정할 경우 이 기능은 XLink의 title 속성이 하는 일과 같다. 하지만 이렇게 type을 title로 지정함으로써 이득이 되는 것은 이 요소를 다른 요소의 자식으로 사용할 수 있게 하는 것이다.
XML Base 활용 Section 02 XML 스키마 사용 Xlink를 사용할 때 기본 URI를 지정하기 위해서 XML BASE 개념을 사용. XML BASE는 base 속성을 표현해서 사용 사용 예 <students xml:base="http://localhost:8080/" xmlns:xlink="http://www.w3.org/1999/xlink"> <student xml:base="/student/"> <name xlink:type="simple" xlink:href="gsy.xml" xlink:actuate="onRequest" xlink:show="new"> 고소영 </name> <address> 서울 압구정 </address> </student> </students> xlink_base.xml
Section 03 XPointer 개념과 사용 XPath를 기반으로 XML 문서의 일부분에 주소를 부여할 수 있는 방법을 제공하는 언어 XML 문서의 구조가 복잡하고 길때 유용 문서의 일부 데이터를 다른 XML 문서에서 링크하거나, 문서 내의 일부 데이터를 검색하고자 할 때 사용하면 편리 XPath가 XML 문서의 노드에만 주소를 부여할 수 있는데 반해, XPointer는 문서 노드, 범위, 글자 단위에도 주소를 부여할 수 있음
Section 03 XPointer 개념과 사용 URI와 같이 사용 XML 문서의 위치를 표현할 때는 URI를, 문서 내에서 일부분의 주소를 표현할 때는 XPointer가 사용 [그림 7-20] URI와 XPointer를 사용하는 방법
Section 03 XPointer 개념과 사용 문서간에 XLink와 Xpointer의 관계 개념 [그림 7-21] 문서 간에 XLink와 XPointer의 관계 개념
Section 03 XPointer 개념과 사용 노드와 포인트 넘버링 [그림 7-22] 노드와 포인트 넘버링
Section 03 XPointer 개념과 사용 포인트(poinht) 문서 내의 한 지점을 의미 xml 문서의 조각과 조각 사이 또는 문자와 문자 사이에 위치 노드 포인트와 문자 포인트로 분류 가능 범위(range) 두 개의 포인트로 지정할 수 있는 XML 문서의 범위를 지정 어느 문자열 혹은 문서의 어느 부분을 가리킬 때에 매우 유용 로케이션(location) XPath의 노드를 일반화한 개념 로케이션은 포인트, 범위, XPath의 노드 중 하나 로케이션 셋(location-set) 로케이션의 목록 집합 싱글톤(singleton) 단일 로케이션으로 구성된 로케이션 셋 서브 리소스(sub-resource) XPointer에 의해 식별되는 XML 자원의 부분
Section 03 XPointer 개념과 사용 처음에 절대 위치를 지정한 후, 상대 위치 지정 절대 위치 지정 상대 위치 지정은 XPath에서 사용하는 축 정의를 사용 요소 지정에는 개별 요소명 뿐만 아니라 종류를 나타내기 위해 키워드도 지정 가능 지정 함수 포인트하는 장소 root() 문서의 루트 요소 origin() 링크 이동이 발생할 때의 링크의 시작점 id(id속성값) 지정한 id 장소
Section 03 XPointer 개념과 사용 요소 지정 요소 지정 의미 #element 요소를 선택한다. 이름이나 종류는 묻지 않는다. #comment 커멘트 요소를 포인터 대상으로 한다. #cdata CDATA 섹션 부분을 포인터 범위로 한다. #text 요소 내용 또는 CDATA 섹션중의 문자열을 포인터 범위로 한다. #pi 처리 명령을 포인터 대상으로 한다. #all CDATA 섹션 내의 모든 내용을 포인터 범위로 한다. 요소명 지정 요소명을 가진 요소를 포인터 대상으로 한다.
Section 03 XPointer 개념과 사용 location-set string-range(location-set, string, number?, numner?) 전달된 location-set 값에서 지정된 문자열(string) 검색, 그리고 나서 함수는 찾아낸 문자열을 반환 location-set range-to(location-set) 문맥 로케이션에서부터 range-to()함수에 의해 지정되는 로케이션까지 범위를 반환 location-set range(location-set) 매개 변수의 로케이션 셋에 있는 로케이션의 내용을 포함하고 있는 범위를 반환 location-set start-point(location-set) 매개 변수의 로케이션 셋에 있는 로케이션 x를 로케이션 셋의 포인트 타입으로 추가 location-set end-point(location-set) 매개 변수의 로케이션 셋에 있는 로케이션 x를 결과 로케이션 셋의 포인트 타입으로 추가
Section 03 XPointer 개념과 사용 ① xpointer(/members/member[1]) 또는 xpointer(/members/member[2]) ② Xpointer(id("m002")) or m002 ③ xpointer(//*[1]/*[3]/*[2]) or /1/3/2 ④ xpointer(id("m003")/*[4]) ⑤ xpointer(start-point(string-range (//*,'홍 길동',1,3))) ⑥ xpointer(start- point(//members/member[2])) ⑦ xpointer(string-range(//*,'김진만',1,2)) ⑧ xpointer(string-range(//*.'광주487-9898')) ⑨ 모든 member원소 리턴 xpointer(//members/member) [그림 7-23] XML 문서와 XPointer
Section 03 XPointer 개념과 사용 [그림 7-24] 실행 화면