XML원리와응용 - GNUJAVA

Download Report

Transcript XML원리와응용 - GNUJAVA

XML 원리와 응용
XML, DTD, XML 스키마, XSLT
chapter 07.
XPath, XLink, XPoint
학습목표




XPath 개념과 활용방법 학습
XPath 함수 사용법 학습
XLink 개념과 활용방법 학습
XPointer 개념과 활용방법 학습
1. XPath 개념과 사용
XPath 개념
XML 문서의 특정 부분의 위치를 찾을 때 사용하는 언어
문서를 노드로 표현한 결과는 트리 형태임
트리
최상위에 한 개의 루트 노드
나머지 노드는 모두 루트 노드에 연결
관계는 여러 개의 트리로 나눠 표현 가능
1. XPath 개념과 사용
XML 계층 구조를 갖는 트리 구조
루트 노드
(root node)
최상위 노드 레벨
노드
(node)
노드
(node)
노드
(node)
분기
노드
(node)
노드
(node)
하위 노드
(terminal node)
노드
(node)
하위 노드
하위 노드
하위 노드
하위 노드
(terminal node)
(terminal node)
(terminal node)
(terminal node)
최하위 노드 레벨
루트 노드
(root node)
하위 노드
하위 노드
(terminal node)
(terminal node)
1. XPath 개념과 사용
XPath 모델의 노드 유형
루트 노드
요소 노드
텍스트 노드
속성 노드
네임스페이스 노드
수행 명령 노드
주석 노드
1. XPath 개념과 사용
루트 노드
최상위 노드. 모든 노드는 루트 노드의 자손 노드
요소 노드
트리는 XML 문서의 모든 요소를 요소 노드로 갖는다.
요소 노드 이름 = 문서의 요소 이름
요소 노드의 자식 노드는 요소의 컨텐츠 안에 있는 것으로
요소 노드, 수행 명령 노드, 주석 노드, 텍스트 노드가 될
수 있다.
요소 노드는 고유한 식별자를 가질 수 있다.
DTD를 사용하면 ID 타입의 속성이 요소에 정의될 수 있다.
요소가 id 속성을 가질 경우 XPath에서 노드를 선택하는데
사용 가능
1. XPath 개념과 사용
속성 노드
요소의 속성이 속성 노드로 표현
속성 노드와 요소 노드는 동등한 레벨
표현할 때는 자식 노드와 동일한 레벨
텍스트 노드
XML 문서의 문자 데이터는 텍스트 노드로 표현
문자 데이터는 요소의 텍스트 컨텐츠, CDATA 섹션 포함
속성값, 주석, 수행 명령 내의 텍스트는 텍스트 노드가 될
수 없음
항상 텍스트 노드는 하나 이상의 문자를 가지며, 원하는 만
큼 텍스트를 포함할 수 있다.
1. XPath 개념과 사용
네임스페이스 노드
각 요소는 요소가 속한 범위의 모든 네임스페이스에 대해
네임스페이스를 가진다.
네임스페이스 노드와 요소 노드와의 관계는 속성 노드와
요소 노드와의 관계와 유사하다.
요소 노드는 네임스페이스 노드의 부모 노드지만 네임스페
이스 노드는 요소 노드의 자식 노드가 아니다. 따라서 네임
스페이스 노드를 포함한 트리를 표현하면 네임스페이스와
속성은 대개 요소와 같은 레벨에서 표현된다.
1. XPath 개념과 사용
수행 명령 노드
트리는 문서의 모든 수행 명령을 수행 명령 노드로 표현
단, DTD 내의 수행 명령은 해당하지 않음
주석 노드
문서의 모든 주석이 주석 노드로 표현
단, DTD에 있는 주석은 표현하지 않음
1. XPath 개념과 사용
XPath 모델의 지역 경로
지역 경로는 문서의 구조로부터 경로를 어떤 식으로 사용
할 것인지 나타내는 개념
지역 경로 예
<students>
<student>
<sno> s100</sno>
<name> 고소영 </name>
<address> 서울 </address>
</student>
</students>
문서 루트
(가상 노드)
/
루트 노드
students
요소 노드
student
절대 경로
상대 경로
요소 노드
sno
name
address
텍스트 노드
s100
고소영
서울
1. XPath 개념과 사용
지역 경로 구분
문서 루트
최상위 노드 역할을 하는 가상 노드(virtual node)
보통은 XML 문서 자체를 의미
문서 루트를 나타내려면 ‘/’(슬래시)로 표현
절대 경로
문서 루트로부터 시작되는 경로를 표현
상대 경로
문서 루트부터 시작되는 경로가 아니라 현재 문맥 노드를 기준으로
경로를 표현한 것
1. XPath 개념과 사용
XPath 사용
XPath의 기본 구성은 표현식
표현식 값을 구한 결과를 객체 혹은 인스턴스로 부름
XPath 객체 종류
객체 종류
설명
노드 집합
중복이 없고 순서에 상관 없는 노드 목록
부울린형
결과로 참(true) 또는 거짓(false) 값으로 반환
숫자
실수 숫자(양의 정수 또는 음의 정수 또는 10진수)로 반환
문자열
문자 데이터로 반환
1. XPath 개념과 사용
XPath 표현식
문맥(context) : XPath 표현식의 값을 구하는 곳
XPath 정보 종류
정보 종류
설명
문맥 노드
표현식을 사용하여 애플리케이션이 값을 구한 현재 노드
문맥 노드의 길이와 위치
문서 노드의 개수나 위치를 0이 아닌 양의 정수로 나타냄
변수
변수 이름 값에 매핑
XPath 함수 라이브러리
함수를 사용하여 문서의 노드나 속성 정보 등
네임스페이스 선언
표현식에 적용하는 이름공간 선언의 집합
1. XPath 개념과 사용
 XPath 표현식에 쓰는 위치 경로
axes :: nodetest [predicate]
①축
②노드 테스트 ③서술
①축
위치 단계와 문맥 노드에 의해 선택된 노드간 관계
문서 일부분이 존재하는 방향
② 노드 테스트
위치 단계에서 선택된 노드들의 타입과 이름을 표현
찾을 내용에 해당되는 노드 이름
③ 서술
조건을 표현한다
위치단계에서 선택된 노드 집합에서 조건에 맞는 노드만 반환하기 위해사
용
1. XPath 개념과 사용
XPath 조건표현과 트리
XPath 조건 표현
의미
student[name]
자식요소로 <name>을 가지고 있는 모든 <student> 요소
student[@sno]
속성이 sno인 모든 <student> 요소
name[.='고소영‘]
요소 내용이 “고소영”인 모든 <name> 요소
student[@sno='s100']
sno 속성값이 s100인 모든 <student> 요소
/
student[name]
student[@sno='s100']
students
SNO=’s100'
student
student
student
SNO=’s300'
phone
address
name
address
name
address
123-3456
서울
고소영
서울
김현주
대전
name[.='고소영‘]
student[@sno]
1. XPath 개념과 사용
축
XML문서 트리에서 현재 노드와 노드 간 관계나 방향 표현
XPath에는 13가지 축이 정의되어 있음
ancestor
노드
ancestor-or-self
parent
preceding
-sibling
self
Following
-sibling
child
노드
노드
노드
노드
노드
preceding
descendant
descendant-or-self
following
1. XPath 개념과 사용
노드 테스트
노드 타입과 이름을 기술하기 위해 사용
노드 테스트 함수
함수 이름
설명
name()
노드 이름을 반환하는 함수
text()
텍스트 노드에 대해서 참(true)값을 반환
comment()
주석 노드에 대해서 참(true) 값을 반환하는 함수(주석을
반환하는 함수)
processinginstruction()
처리 명령어에 대해서 참(ture)을 반환하는 함수
매개 변수를 가질 수 없다. 이 경우에는 처리 명령어가
동일한 이름을 사용하는 경우에만 참이 된다.
node()
임의의 노드에 대해서 참을 반환하는 함수(노드 자신을 반
환하는 함수)
1. XPath 개념과 사용
서술자
축을 기준으로 노드 집합을 필터링해서 새로운 노드 집합
을 생성
위치 경로에 의해 선택된 노드 집합을 거르는 역할 수행
노드 테스트의 오른쪽 부분에서 대괄호로 묶어 사용
child::name[position()=3]
child::name 요소에 의해 추출되는 노드 집합은 문맥 노드의 모든
<name> 요소를 포함
서술자인 [position()=3]이 추가된 새로운 위치 경로는 이들 중 세
번째 name 자식 요소만 선택
1. XPath 개념과 사용
축약형 위치 경로 표현
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]
1. XPath 개념과 사용
XPath 함수
모든 XPath 프로세스는 코어 함수 라이브러리라 불리는 표
준 함수의 집합을 지원
함수는 이름과 반환 타입, 파라미터를 가질 수 있는데, 매
개 변수에 물음표(?)가 붙은 경우에는 매개 변수를 생략할
수 있음
XPath 함수 종류
노드 집합 관련 함수
부울린 관련 함수
숫자 관련 함수
문자열 관련 함수
1. 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()
현재 노드의 문맥 위치 값을 반환
1. XPath 개념과 사용
부울린 관련 함수:
반환형
함수명
조건의 참 또는 거짓을 알아보기 위해 사용
설명
boolean
boolean(object)
매개 변수를 부울린 값으로 변환
object가 숫자일 때는 0만 아니면 참이고, object가 노드
셋일 때는 공집합만 아니면 참이며, object가 문자열일 때는
문자열 길이가 0만 아니면 참이다.
boolean not(boolean)
부울린 값을 역으로 변환해서 반환
boolean true()
참을 반환
boolean false()
거짓을 반환
boolean lang(string)
문맥 노드에 설정된 xml:lang 속성이 string 값으로 주어진
값과 같은 경우에 참을 반환
1. 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. XPath 개념과 사용
문자열 관련 함수 1:
문자열 값을 선택, 조작하기 위해 사용
반환형 함수명
설명
string string(object?)
object를 문자열로 변환한다. object가 노드셋인 경우에는 노드 셋에서
첫 번째 노드의 문자열 값을 문자열로 변환한다. 첫 번째 노드가 문자열
값을 가지고 있지 않은 경우에는 공백 문자열이 반환된다. 숫자인 경우
에는 양의 무한대는 “infinity", 음의 무한대는 ”-infinity"문자열을 반환
한다. 부울린인 경우에는 참이면 “true", 거짓인 경우에는 ”false"를 반
환 한다.
string concat(string,
문자열을 결합해서 반환한다.
string, string*)
string substringbefore(string, string)
첫 번째 매개 변수에서 두 번째 매개 변수가 포함된 위치보다 앞에 있는
내용을 반환한다.
예) substring-before("2003/10/15","/")는 “2003”년을 반환한다.
string substringafter(string, string)
첫 번째 매개 변수에서 두 번째 매개 변수가 포함된 위치보다 뒤에 있는
내용을 반환한다.
예) substring-before("2003/10/15","/")는 “10/15”를 반환한다.
string normalizespace(string?)
매개 변수의 문자열에서 공백을 제거한다.
예)normalize-space(‘ Study XML’)은 ’StudyMXL'로 반환 한다.
1. 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 stringlength(string?)
문자열에서 문자의 개수를 리턴한다.
예) string-length('XML')은 3을 반환한다.
1. XPath 개념과 사용
XLink
자원들 사이에 링크를 표현하기 위하여 사용되는 XML 관
련 표준
링크 개념과 사용
2. XLink 개념과 사용
HTML 링크와 XLink 비교
HTML 링크
XLink
단방향 링크만 가능
단방향과 양방향 링크가 모두 가능
단락 구분의 문서 세부 위치 지정 링크 문자 단위의 문서 세부 위치 지정 링크가 가능
가 가능
(좀더 세밀한 링크 지원)
링크 정보만 따로 문서화해서 관리하는
링크 정보만 따로 문서화해서 관리하는 것이 가능
것이 불가능
링크에 의미 부여가 불가능
링크에 의미 부여가 가능
XLink 기본 기능
지역 자원에서 원격 자원으로 가는 링크를 지원한다.
링크는 하나의 도착점으로 연결된다.
링크는 사용자에 의해 활성화 또는 선택 된다.
원격 자원은 URL로 지정된다.
2. XLink 개념과 사용
XLink 추가 기능
XML은 개발자가 자신만의 링크를 정의할 수 있기 때문에 모든 요소는
링크 요소가 될 수 있어야 한다.
링크는 사람과 기계 모두 이해하기 쉬워야 한다. 이 개념은 향후에 시
맨틱 웹을 발전시킨 원동력이기도 하다.
개발자는 링크가 처리되는 방법에 관한 특정 정보를 가지는 XLink 애
플리케이션을 제공할 수 있어야 한다.
링크 작용은 사용자에 의해 다른 방법으로 활성화 될 수 있다.
링크는 단 방향 링크일 필요는 없다.
링크는 링크가 연결하는 자원의 외부로부터 표현될 수 있다.
링크는 하나 이상의 자원을 포함할 수 있다.
링크 내의 시작 자원과 목표 자원은 다른 링크 작용을 가질 수 있다.
2. XLink 개념과 사용
XLink 설계 원칙
XLink는 인터넷 상에서 바로 사용 가능해야 한다.
XLink는 다양한 종류의 링크를 사용하는 도메인과 링킹 애
플리케이션에 의해 사용가능 해야 한다.
XLink 표현 언어는 XML의 표준을 따른다.
XLink 설계는 빠르게 준비되어야 한다.
Xlink 설계는 형식에 맞고 간결해야 한다.
XLink는 사람이 인식하기 쉬워야 한다.
Xlink의 링크는 참여 자원이 존재하는 문서의 외부에 존재
할 수도 있다.
Xlink는 추상 구조와 링크의 의미를 나타내야 한다.
Xlink는 구현하기 편리해야 한다.
2. XLink 개념과 사용
 XLink에서 사용되는 링크의 구조
이동(traversal)
자원
(resource)
앵커
링크(link)
아크(arc)
지역 자원
자원
(resource)
앵커
앵커
링크(link)
원격 자원
시작 자원
끝 자원
지역 자원 : XML 원소나 XML 원소의 부모 원소를 링크 원소로 가짐으로서
링크에 참여하는 XML 원소.
원격 자원 : URI 참조에 의해 주소를 부여 받음으로서 링크에 참여하는 자
원
2. XLink 개념과 사용
XLink 속성
XLink 원소와 속성 사용: XLink 네임스페이스 선언해야 함
XLink 네임스페이스 형식
xmlns:xlink="http://www.w3.org/1999/xlink"
XLink를 이용해서 XML 문서에 링크를 하려면 XML 문서에
포함된 각각의 요소에 전역 속성을 사용
전역 속성을 사용해서 임의의 XML 원소도 링크로 만들 수
있음
2. XLink 개념과 사용
XLink 전역 속성
속성명
내용
type
XLink 종류 지정(총 6가지 종류 지원)
href
URL 지정
role, arcrole
링크와 관련된 사항을 의미적으로 명시하지만, 컴퓨터가 자체적으로
이해할 수 있는 방식으로 명시
title
링크와 관련된 사항을 의미적으로 명시하지만, 인간이 이해할 수 있는
방식으로 명시
show, actuate
링크가 되었을 때 어떻게 보여질 것인가를 명시
from, to, label
링크 방향 지정
2. XLink 개념과 사용
단순 링크
HTML에서 <a> 태그를 사용해서 링크를 생성하는 것과 같
은 개념
<a> 태그와 다른 점은, HTML이 고정된 <a> 태그만을 사
용하고, 의미를 부여할 수 없는 반면, 단순 링크는 임의의
원소에 전역 속성을 이용해서 링크를 연결할 수 있고 의미
를 부여할 수 있음
HTML에서의 <a>나 <img>와 같은 간단한 기능을 기본적
으로 제공
단순 링크는 type 속성을 simple 속성값을 지정
2. XLink 개념과 사용
단순 링크 사용 예
2. XLink 개념과 사용
전역 속성: href 속성
링크가 가리키는 곳의 URL
여러 개를 사용할 수 있음
simple 타입 사용 가능
locator 타입에서도 사용 가능
2. XLink 개념과 사용
전역 속성: show 속성
링크된 자원을 가져올 때 어떻게 보여줄지를 지정
속성 값에 new, replace, embed, other, none을 지정
new: 새로운 창을 띄워서 자원 보여주기
replace: 현재 문서 창에 보여주기
embed: 자원이 XLink 요소와 대치
other: XLink를 어떻게 처리할 것인지 정보를 제공하지 않음
– 애플리케이션이 링크를 어떻게 처리 할 것인지 결정하기 위해서 문서
의 다른 마크업 정보들을 찾아보아야 한다는 의미
none: 애플리케이션이 링크를 처리 방법과 관련한 정보를 XML 문
서에 제공되지 않는다는 의미
2. XLink 개념과 사용
전역 속성: show 속성 사용 결과
2. XLink 개념과 사용
전역 속성: actuate 속성
자원을 검색할 시점을 지정할 때 사용
속성값은 onload, onRequest, other, none 중 하나 사용
onload: 문서가 로딩되면 링크가 지정한 자원을 가져옴
onRequest : 클릭했을 때 자원을 가져옴
other: XLink가 링크 활성화에 관한 정보를 제공하지 않기 때문에
애플리케이션이 링크 활성화에 대한 정보를 얻기 위해서 XML 문서
의 다른 부분을 찾아야 한다.
none: 링크 활성화에 대한 정보가 없기 때문에 애플리케이션에서
링크 활성화에 대해 알아서 처리하도록 한다.
2. XLink 개념과 사용
전역 속성: role 속성
애플리케이션을 이해하는 방법으로 자원 이름 할당
전역 속성: title 속성
링크에 대한 설명 표현
2. XLink 개념과 사용
전역 속성: from 속성과 to 속성
from, to 속성은 링크가 어디서 어디를 가르키는지 알려주
기 위해 사용하는 속성
링크 방향을 정의할 때 사용
전역 속성: label 속성
자원 이름을 명시하는 속성
자원의 label 속성 값은 아크(arc)에서 참조
2. XLink 개념과 사용
확장 링크
선언할 때는 type 속성 값을 extended로 지정
XLink의 모든 기능을 사용 가능. 원격 자원을 지칭하기 위
한 요소, 로컬 자원을 포함하는 요소, 아크 요소, 사람이 읽
을 수 있는 자원 요소 등을 지원
arc
locator A
arc
locator E
확장 링크
locator B
resource
arc
locator D
arc
locator C
arc
2. XLink 개념과 사용
타입별 사용 가능/불가능 속성
속성/타입
simple
extended
locator
arc
resource
title
type
required
required
required
required
required
required
href
optional
role
optional
arcrole
optional
title
optional
show
optional
optional
actuate
optional
optional
label
required
optional
optional
optional
optional
optional
optional
optional
optional
optional
optional
from
optional
to
optional
2. XLink 개념과 사용
 타입별 사용 가능/불가능 속성
locator 속성
확장 링크 요소들의 자식 요소에서만 사용 가능한 속성이다. 확장 링크와
관련이 있으면서도 떨어져 있는 자원들을 지정할 때 사용한다.
resource 속성
로컬에서 링크를 사용하기 위해서 사용한다. 즉 extended 속성을 가지고
있는 요소의 자식 요소 중에서 type 속성 값을 resource라고 정해주면 된
다.
arc 속성
from과 to 속성을 사용하여 링크가 진행되는 방향을 정의하여 준다. 즉 arc
속성은 자원들 간에 오가는 링크들 사이에서 어디서 어디로 향하는 링크인
지를 알려주는 속성이다.
title 속성
type의 값으로 title을 지정할 경우 이 기능은 XLink의 title 속성이 하는 일
과 같다. 하지만 이렇게 type을 title로 지정함으로써 이득이 되는 것은 이
요소를 다른 요소의 자식으로 사용할 수 있게 하는 것이다.
2. XLink 개념과 사용
XML Base 활용
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
3. XPointer 개념과 사용
XPointer 개념
XPath를 기반으로 XML 문서의 일부분에 주소를 부여할
수 있는 방법을 제공하는 언어
XML 문서의 구조가 복잡하고 길때 유용
문서의 일부 데이터를 다른 XML 문서에서 링크하거나, 문
서 내의 일부 데이터를 검색하고자 할 때 사용하면 편리
XPath가 XML 문서의 노드에만 주소를 부여할 수 있는데
반해, XPointer는 문서 노드, 범위, 글자 단위에도 주소를
부여할 수 있음
3. XPointer 개념과 사용
XPointer 사용 방법
URI와 같이 사용
XML 문서의 위치를 표현할 때는 URI를, 문서 내에서 일부
분의 주소를 표현할 때는 XPointer가 사용
3. XPointer 개념과 사용
문서간에 XLink와 Xpointer의 관계 개념
XML 문서
XML 문서
절대위치
Link (URI)
상대위치
pointer
3. XPointer 개념과 사용
노드와 포인트 넘버링
3. XPointer 개념과 사용
 XPointer 관련 용어
포인트(poinht)
문서 내의 한 지점을 의미
xml 문서의 조각과 조각 사이 또는 문자와 문자 사이에 위치
노드 포인트와 문자 포인트로 분류 가능
범위(range)
두 개의 포인트로 지정할 수 있는 XML 문서의 범위를 지정
어느 문자열 혹은 문서의 어느 부분을 가리킬 때에 매우 유용
로케이션(location)
XPath의 노드를 일반화한 개념
로케이션은 포인트, 범위, XPath의 노드 중 하나
로케이션 셋(location-set)
로케이션의 목록 집합
싱글톤(singleton)
단일 로케이션으로 구성된 로케이션 셋
서브 리소스(sub-resource)
XPointer에 의해 식별되는 XML 자원의 부분
3. XPointer 개념과 사용
XPointer 사용
처음에 절대 위치를 지정한 후, 상대 위치 지정
절대 위치 지정
지정 함수
포인트하는 장소
root()
문서의 루트 요소
origin()
링크 이동이 발생할 때의 링크의 시작점
id(id속성값)
지정한 id 장소
상대 위치 지정은 XPath에서 사용하는 축 정의를 사용
요소 지정에는 개별 요소명 뿐만 아니라 종류를 나타내기
위해 키워드도 지정 가능
3. XPointer 개념과 사용
요소 지정
요소 지정
의미
#element
요소를 선택한다. 이름이나 종류는 묻지 않는다.
#comment
커멘트 요소를 포인터 대상으로 한다.
#cdata
CDATA 섹션 부분을 포인터 범위로 한다.
#text
요소 내용 또는 CDATA 섹션중의 문자열을 포인터 범위로 한다.
#pi
처리 명령을 포인터 대상으로 한다.
#all
CDATA 섹션 내의 모든 내용을 포인터 범위로 한다.
요소명
지정 요소명을 가진 요소를 포인터 대상으로 한다.
3. XPointer 개념과 사용
 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를 결과 로케이션 셋의 포인트
타입으로 추가
3. XPointer 개념과 사용
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)
3. XPointer 개념과 사용
Xpointer 사용 결과
Thank you