XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

55
7 7 ㅎㅎ • XPath 개개개 개개 • XLink 개개개 개개 • XPointer 개개개 개개 Xpath, Xlink, XPoint

description

ㅎㅎ. Xpath, Xlink, XPoint. XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용. 7 장 . Xpath, Xlink, XPoint. 학습목표 XPath 개념과 활용 방법 학습 XPath 함수 사용법 학습 XLink 개념과 활용 방법 학습 XPointer 개념과 활용 방법 학습. XPath 개념 XML 문서의 특정 부분의 위치를 찾을 때 사용하는 언어 문서를 노드로 표현한 결과는 트리 형태임 트리 최상위에 한 개의 루트 노드가 있음 - PowerPoint PPT Presentation

Transcript of XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

Page 1: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

77 장장 ㅎㅎ

• XPath 개념과 사용• XLink 개념과 사용• XPointer 개념과 사용

Xpath, Xlink, XPointXpath, Xlink, XPoint

Page 2: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

2

학습목표 XPath 개념과 활용 방법 학습 XPath 함수 사용법 학습 XLink 개념과 활용 방법 학습 XPointer 개념과 활용 방법 학습

7 장 . Xpath, Xlink, XPoint

Page 3: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

3

XPath 개념XML 문서의 특정 부분의 위치를 찾을 때 사용하는 언어문서를 노드로 표현한 결과는 트리 형태임

트리최상위에 한 개의 루트 노드가 있음나머지 노드는 모두 루트 노드에 연결관계는 여러 개의 트리로 나눠 표현 가능

Section 01 XPath 개념과 사용

Page 4: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

4

XML 계층 구조를 갖는 트리 구조

Section 01 XPath 개념과 사용

루트 노드(root node)

하위 노드(terminal node)

하위 노드(terminal node)

노드(node)

노드(node)

노드(node)

노드(node)

노드(node)

하위 노드(terminal node)

하위 노드(terminal node)

하위 노드(terminal node)

루 트 노드(root node)

노드(node)

하위 노드(terminal node)

하위 노드(terminal node)

최상위 노드 레벨

최하위 노드 레벨

분기

Page 5: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

5

XPath 모델의 노드 유형루트 노드요소 노드텍스트 노드속성 노드네임스페이스 노드수행 명령 노드주석 노드

Section 01 XPath 개념과 사용

Page 6: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

6

루트 노드최상위 노드 . 모든 노드는 루트 노드의 자손 노드

요소 노드트리는 XML 문서의 모든 요소를 요소 노드로 갖는다 .

요소 노드 이름 = 문서의 요소 이름요소 노드의 자식 노드는 요소의 컨텐츠 안에 있는 것으로 요소 노드 , 수행 명령 노드 , 주석 노드 , 텍스트 노드가 될 수 있다 .

요소 노드는 고유한 식별자를 가질 수 있다 .

DTD 를 사용하면 ID 타입의 속성이 요소에 정의될 수 있다 .

요소가 id 속성을 가질 경우 XPath 에서 노드를 선택하는데 사용 가능

Section 01 XPath 개념과 사용

Page 7: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

7

속성 노드요소의 속성이 속성 노드로 표현속성 노드와 요소 노드는 동등한 레벨표현할 때는 자식 노드와 동일한 레벨

텍스트 노드XML 문서의 문자 데이터는 텍스트 노드로 표현문자 데이터는 요소의 텍스트 컨텐츠 , CDATA 섹션 포함속성값 , 주석 , 수행 명령 내의 텍스트는 텍스트 노드가 될 수 없음항상 텍스트 노드는 하나 이상의 문자를 가지며 , 원하는 만큼 텍스트를 포함할 수 있다 .

Section 01 XPath 개념과 사용

Page 8: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

8

Section 01 XPath 개념과 사용

네임스페이스 노드각 요소는 요소가 속한 범위의 모든 네임스페이스에 대해 네임스페이스를 가진다 .

네임스페이스 노드와 요소 노드와의 관계는 속성 노드와 요소 노드와의 관계와 유사하다 .

요소 노드는 네임스페이스 노드의 부모 노드지만 네임스페이스 노드는 요소 노드의 자식 노드가 아니다 . 따라서 네임스페이스 노드를 포함한 트리를 표현하면 네임스페이스와 속성은 대개 요소와 같은 레벨에서 표현된다 .

Page 9: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

9

수행 명령 노드트리는 문서의 모든 수행 명령을 수행 명령 노드로 표현단 , DTD 내의 수행 명령은 해당하지 않음

주석 노드문서의 모든 주석이 주석 노드로 표현단 , DTD 에 있는 주석은 표현하지 않음

Section 01 XPath 개념과 사용

Page 10: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

10

XPath 모델의 지역 경로지역 경로는 문서의 구조로부터 경로를 어떤 식으로 사용할 것인지 나타내는 개념지역 경로 예

Section 01 XPath 개념과 사용

[ 그림 7-2] XML 문서의 노드 유형과 경로

<students>    <student>        <sno> s100</sno>        <name> 고소영 </name>       <address> 서울 </address>   </student> </students>

Page 11: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

11

Section 01 XPath 개념과 사용

지역 경로 구분문서 루트• 최상위 노드 역할을 하는 가상 노드 (virtual node)

• 보통은 XML 문서 자체를 의미• 문서 루트를 나타내려면 ‘ /’( 슬래시 ) 로 표현

절대 경로• 문서 루트로부터 시작되는 경로를 표현

상대 경로• 문서 루트부터 시작되는 경로가 아니라 현재 문맥 노드를 기준으로

경로를 표현한 것

Page 12: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

12

XPath 사용XPath 의 기본 구성은 표현식표현식 값을 구한 결과를 객체 혹은 인스턴스로 부름XPath 객체 종류

Section 01 XPath 개념과 사용

객체 종류 설명

노드 집합 중복이 없고 순서에 상관 없는 노드 목록

부울린형 결과로 참 (true) 또는 거짓 (false) 값으로 반환

숫자 실수 숫자 ( 양의 정수 또는 음의 정수 또는 10 진수 ) 로 반환

문자열 문자 데이터로 반환

Page 13: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

13

Section 01 XPath 개념과 사용

XPath 표현식문맥 (context) : XPath 표현식의 값을 구하는 곳XPath 정보 종류

정보 종류 설명

문맥 노드 표현식을 사용하여 애플리케이션이 값을 구한 현재 노드

문맥 노드의 길이와 위치 문서 노드의 개수나 위치를 0 이 아닌 양의 정수로 나타냄

변수 변수 이름 값에 매핑

XPath 함수 라이브러리 함수를 사용하여 문서의 노드나 속성 정보 등

네임스페이스 선언 표현식에 적용하는 이름공간 선언의 집합

Page 14: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

14

Section 01 XPath 개념과 사용

XPath 표현식에 쓰는 위치 경로

① 축• 위치 단계와 문맥 노드에 의해 선택된 노드간 관계• 문서 일부분이 존재하는 방향

② 노드 테스트• 위치 단계에서 선택된 노드들의 타입과 이름을 표현• 찾을 내용에 해당되는 노드 이름

③ 서술• 조건을 표현한다• 위치단계에서 선택된 노드 집합에서 조건에 맞는 노드만 반환하기

위해사용

axes :: nodetest [predicate]①축 ②노드 테스트 ③서술

Page 15: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

15

XPath 조건표현과 트리

Section 01 XPath 개념과 사용

[ 표 7-3] XPath 조건 표현

XPath 조건 표현 의미

student[name] 자식요소로 <name> 을 가지고 있는 모든 <student> 요소

student[@sno] 속성이 sno 인 모든 <student> 요소

name[.=' 고소영‘ ] 요소 내용이 “고소영”인 모든 <name> 요소

student[@sno='s100'] sno 속성값이 s100 인 모든 <student> 요소

[ 그림 7-3] XPath 조건 표현식

Page 16: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

16

축XML 문서 트리에서 현재 노드와 노드 간 관계나 방향 표현XPath 에는 13 가지 축이 정의되어 있음

Section 01 XPath 개념과 사용

[ 그림 7-4] 축 정의

Page 17: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

17

노드 테스트노드 타입과 이름을 기술하기 위해 사용노드 테스트 함수

Section 01 XPath 개념과 사용

함수 이름 설명

name() 노드 이름을 반환하는 함수

text() 텍스트 노드에 대해서 참 (true) 값을 반환

comment()주석 노드에 대해서 참 (true) 값을 반환하는 함수 ( 주석을 반환하는 함수 )

processing-instruction()

처리 명령어에 대해서 참 (ture) 을 반환하는 함수매개 변수를 가질 수 없다 . 이 경우에는 처리 명령어가 동일한 이름을 사용하는 경우에만 참이 된다 .

node() 임의의 노드에 대해서 참을 반환하는 함수 ( 노드 자신을 반환하는 함수 )

Page 18: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

18

서술자축을 기준으로 노드 집합을 필터링해서 새로운 노드 집합을 생성위치 경로에 의해 선택된 노드 집합을 거르는 역할 수행노드 테스트의 오른쪽 부분에서 대괄호로 묶어 사용

• child::name 요소에 의해 추출되는 노드 집합은 문맥 노드의 모든 <name> 요소를 포함

• 서술자인 [position()=3] 이 추가된 새로운 위치 경로는 이들 중 세 번째 name 자식 요소만 선택

Section 01 XPath 개념과 사용

child::name[position()=3]

Page 19: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

19

축약형 위치 경로 표현XPath 표현식이 길어지는 것을 막기 위해 개발축약형 문법은 표준 XPath 보다 직관적이고 직접적임

Section 01 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] 축약형 표현

Page 20: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

20

Section 01 XPath 개념과 사용

XPath 함수모든 XPath 프로세스는 코어 함수 라이브러리라 불리는 표준 함수의 집합을 지원함수는 이름과 반환 타입 , 파라미터를 가질 수 있는데 , 매개 변수에 물음표 (?) 가 붙은 경우에는 매개 변수를 생략할 수 있음XPath 함수 종류• 노드 집합 관련 함수• 부울린 관련 함수• 숫자 관련 함수• 문자열 관련 함수

Page 21: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

21

노드 집합 관련 함수 : 노드 집합을 반환하기 위해 사용

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() 현재 노드의 문맥 위치 값을 반환

Page 22: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

22

Section 01 XPath 개념과 사용

부울린 관련 함수 : 조건의 참 또는 거짓을 알아보기 위해 사용

반환형 함수명 설명

boolean boolean(object)

매개 변수를 부울린 값으로 변환object 가 숫자일 때는 0 만 아니면 참이고 , object 가 노드 셋일 때는 공집합만 아니면 참이며 , object 가 문자열일 때는 문자열 길이가 0 만 아니면 참이다 .

boolean not(boolean) 부울린 값을 역으로 변환해서 반환

boolean true() 참을 반환

boolean false() 거짓을 반환

boolean lang(string)문맥 노드에 설정된 xml:lang 속성이 string 값으로 주어진 값과 같은 경우에 참을 반환

Page 23: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

23

숫자 관련 함수 : 숫자를 편하게 사용할 수 있게 하는 함수

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 의 반올림값을 구한다 .

Page 24: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

24

문자열 관련 함수 1: 문자열 값을 선택 , 조작하기 위해 사용

Section 01 XPath 개념과 사용

반환형 함수명 설명

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' 로 반환 한다 .

Page 25: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

25

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 을 반환한다 .

Page 26: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

26

Section 02 XLink 개념과 사용

XLink자원들 사이에 링크를 표현하기 위하여 사용되는 XML 관련 표준링크 개념과 사용

[ 그림 7-5] 링크 개념과 사용

Page 27: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

27

HTML  링크와 XLink 비교

XLink 기본 기능지역 자원에서 원격 자원으로 가는 링크를 지원한다 .

링크는 하나의 도착점으로 연결된다 .

링크는 사용자에 의해 활성화 또는 선택 된다 .

원격 자원은 URL 로 지정된다 .

Section 02 XLink 개념과 사용

HTML 링크 XLink

단방향 링크만 가능 단방향과 양방향 링크가 모두 가능

단락 구 분 의 문 서 세 부 위 치 지 정 링크가 가능

문자 단위의 문서 세부 위치 지정 링크가 가능(좀더 세밀한 링크 지원 )

링크 정보만 따로 문서화해서 관리하는 것이 불가능 링크 정보만 따로 문서화해서 관리하는 것이 가능

링크에 의미 부여가 불가능 링크에 의미 부여가 가능

Page 28: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

28

XLink 추가 기능XML 은 개발자가 자신만의 링크를 정의할 수 있기 때문에 모든 요소는 링크 요소가 될 수 있어야 한다 .

링크는 사람과 기계 모두 이해하기 쉬워야 한다 . 이 개념은 향후에 시맨틱 웹을 발전시킨 원동력이기도 하다 .

개발자는 링크가 처리되는 방법에 관한 특정 정보를 가지는 XLink 애플리케이션을 제공할 수 있어야 한다 .

링크 작용은 사용자에 의해 다른 방법으로 활성화 될 수 있다 .

링크는 단 방향 링크일 필요는 없다 .

링크는 링크가 연결하는 자원의 외부로부터 표현될 수 있다 .

링크는 하나 이상의 자원을 포함할 수 있다 .

링크 내의 시작 자원과 목표 자원은 다른 링크 작용을 가질 수 있다 .

Section 02 XLink 개념과 사용

Page 29: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

29

XLink 설계 원칙XLink 는 인터넷 상에서 바로 사용 가능해야 한다 .

XLink 는 다양한 종류의 링크를 사용하는 도메인과 링킹 애플리케이션에 의해 사용가능 해야 한다 .

XLink 표현 언어는 XML 의 표준을 따른다 .

XLink 설계는 빠르게 준비되어야 한다 .

Xlink 설계는 형식에 맞고 간결해야 한다 .

XLink 는 사람이 인식하기 쉬워야 한다 .

Xlink 의 링크는 참여 자원이 존재하는 문서의 외부에 존재할 수도 있다 .

Xlink 는 추상 구조와 링크의 의미를 나타내야 한다 .

Xlink 는 구현하기 편리해야 한다 .

Section 02 XLink 개념과 사용

Page 30: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

30

XLink 에서 사용되는 링크의 구조

지역 자원 : XML 원소나 XML 원소의 부모 원소를 링크 원소로 가짐으로서 링크에 참여하는 XML 원소 .

원격 자원 : URI 참조에 의해 주소를 부여 받음으로서 링크에 참여하는 자원

Section 02 XLink 개념과 사용

[ 그림 7-6] XLink 의 구조

Page 31: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

31

XLink 속성XLink 원소와 속성 사용 : XLink 네임스페이스 선언해야 함XLink 네임스페이스 형식

XLink 를 이용해서 XML 문서에 링크를 하려면 XML 문서에 포함된 각각의 요소에 전역 속성을 사용전역 속성을 사용해서 임의의 XML 원소도 링크로 만들 수 있음

Section 02 XLink 개념과 사용

xmlns:xlink="http://www.w3.org/1999/xlink"

Page 32: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

32

XLink 전역 속성

Section 02 XLink 개념과 사용

속성명 내용

type XLink 종류 지정 (총 6 가지 종류 지원 )

href URL 지정

role, arcrole링크와 관련된 사항을 의미적으로 명시하지만 , 컴퓨터가 자체적으로 이해할 수 있는 방식으로 명시

title링크와 관련된 사항을 의미적으로 명시하지만 , 인간이 이해할 수 있는 방식으로 명시

show, actuate 링크가 되었을 때 어떻게 보여질 것인가를 명시

from, to, label 링크 방향 지정

Page 33: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

33

Section 02 XML 스키마 사용

단순 링크 HTML 에서 <a> 태그를 사용해서 링크를 생성하는 것과 같은 개념<a> 태그와 다른 점은 , HTML 이 고정된 <a> 태그만을 사용하고 , 의미를 부여할 수 없는 반면 , 단순 링크는 임의의 원소에 전역 속성을 이용해서 링크를 연결할 수 있고 의미를 부여할 수 있음HTML 에서의 <a> 나 <img> 와 같은 간단한 기능을 기본적으로 제공단순 링크는 type 속성을 simple 속성값을 지정

Page 34: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

34

단순 링크 사용 예

Section 02 XML 스키마 사용

[ 그림 7-10] XLip 에서 실행한 화면

[ 그림 7-11] XLip 에서 실행한 화면

Page 35: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

35

Section 02 XML 스키마 사용

전역 속성 : href 속성링크가 가리키는 곳의 URL

여러 개를 사용할 수 있음simple 타입 사용 가능locator 타입에서도 사용 가능

[ 그림 7-12] 실행 결과

Page 36: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

36

전역 속성 : show 속성링크된 자원을 가져올 때 어떻게 보여줄지를 지정

속성 값에 new, replace, embed, other, none 을 지정• new: 새로운 창을 띄워서 자원 보여주기

• replace: 현재 문서 창에 보여주기

• embed: 자원이 XLink 요소와 대치

• other: XLink 를 어떻게 처리할 것인지 정보를 제공하지 않음– 애플리케이션이 링크를 어떻게 처리 할 것인지 결정하기 위해서 문서의

다른 마크업 정보들을 찾아보아야 한다는 의미

• none: 애플리케이션이 링크를 처리 방법과 관련한 정보를 XML

문서에 제공되지 않는다는 의미

Section 02 XML 스키마 사용

Page 37: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

37

전역 속성 : show 속성 사용 결과

Section 02 XML 스키마 사용

[ 그림 7-13] 실행 결과

Page 38: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

38

전역 속성 : actuate 속성자원을 검색할 시점을 지정할 때 사용

속성값은 onload, onRequest, other, none 중 하나 사용

• onload: 문서가 로딩되면 링크가 지정한 자원을 가져옴

• onRequest : 클릭했을 때 자원을 가져옴

• other: XLink 가 링크 활성화에 관한 정보를 제공하지 않기 때문에 애플리케이션이 링크 활성화에 대한 정보를 얻기 위해서 XML

문서의 다른 부분을 찾아야 한다 .

• none: 링크 활성화에 대한 정보가 없기 때문에 애플리케이션에서 링크 활성화에 대해 알아서 처리하도록 한다 .

Section 02 XML 스키마 사용

Page 39: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

39

Section 02 XML 스키마 사용

전역 속성 : role 속성애플리케이션을 이해하는 방법으로 자원 이름 할당

전역 속성 : title 속성링크에 대한 설명 표현

[ 그림 7-14] 실행 결과

Page 40: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

40

전역 속성 : from 속성과 to 속성from, to 속성은 링크가 어디서 어디를 가르키는지 알려주기 위해 사용하는 속성링크 방향을 정의할 때 사용

전역 속성 : label 속성자원 이름을 명시하는 속성자원의 label 속성 값은 아크 (arc) 에서 참조

Section 02 XML 스키마 사용

Page 41: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

41

확장 링크선언할 때는 type 속성 값을 extended 로 지정XLink 의 모든 기능을 사용 가능 . 원격 자원을 지칭하기 위한 요소 , 로컬 자원을 포함하는 요소 , 아크 요소 , 사람이 읽을 수 있는 자원 요소 등을 지원

Section 02 XML 스키마 사용

[ 그림 7-15] 확장 링크 개념

Page 42: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

42

타입별 사용 가능 /불가능 속성

Section 02 XML 스키마 사용

속성 / 타입 simple extended locator arc resource title

type required required required required required required

href optional 

required     

role optional optional optional 

optional 

arcrole optional   

optional   

title optional optional optional optional optional 

show optional   

optional   

actuate optional   

optional   

label   

optional 

optional 

from     

optional   

to     

optional   

Page 43: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

43

타입별 사용 가능 /불가능 속성locator 속성• 확장 링크 요소들의 자식 요소에서만 사용 가능한 속성이다 . 확장

링크와 관련이 있으면서도 떨어져 있는 자원들을 지정할 때 사용한다 .

resource 속성• 로컬에서 링크를 사용하기 위해서 사용한다 . 즉 extended 속성을

가지고 있는 요소의 자식 요소 중에서 type 속성 값을 resource 라고 정해주면 된다 .

arc 속성• from 과 to 속성을 사용하여 링크가 진행되는 방향을 정의하여 준다 . 즉 arc 속성은 자원들 간에 오가는 링크들 사이에서 어디서 어디로 향하는 링크인지를 알려주는 속성이다 .

title 속성• type 의 값으로 title 을 지정할 경우 이 기능은 XLink 의 title 속성이

하는 일과 같다 . 하지만 이렇게 type 을 title 로 지정함으로써 이득이 되는 것은 이 요소를 다른 요소의 자식으로 사용할 수 있게 하는 것이다 .

Section 02 XML 스키마 사용

Page 44: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

44

<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>

XML Base 활용Xlink 를 사용할 때 기본 URI 를 지정하기 위해서 XML BASE 개념을 사용 .

XML BASE 는 base 속성을 표현해서 사용사용 예

Section 02 XML 스키마 사용

xlink_base.xml

Page 45: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

45

XPointer 개념XPath 를 기반으로 XML 문서의 일부분에 주소를 부여할 수 있는 방법을 제공하는 언어XML 문서의 구조가 복잡하고 길때 유용문서의 일부 데이터를 다른 XML 문서에서 링크하거나 , 문서 내의 일부 데이터를 검색하고자 할 때 사용하면 편리XPath 가 XML 문서의 노드에만 주소를 부여할 수 있는데 반해 , XPointer 는 문서 노드 , 범위 , 글자 단위에도 주소를 부여할 수 있음

Section 03 XPointer 개념과 사용

Page 46: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

46

Section 03 XPointer 개념과 사용

XPointer 사용 방법URI 와 같이 사용XML 문서의 위치를 표현할 때는 URI 를 , 문서 내에서 일부분의 주소를 표현할 때는 XPointer 가 사용

[ 그림 7-20] URI 와 XPointer 를 사용하는 방법

Page 47: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

47

문서간에 XLink 와 Xpointer 의 관계 개념

Section 03 XPointer 개념과 사용

[ 그림 7-21] 문서 간에 XLink 와 XPointer 의 관계 개념

Page 48: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

48

Section 03 XPointer 개념과 사용

노드와 포인트 넘버링

[ 그림 7-22] 노드와 포인트 넘버링

Page 49: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

49

XPointer 관련 용어포인트 (poinht)• 문서 내의 한 지점을 의미• xml 문서의 조각과 조각 사이 또는 문자와 문자 사이에 위치• 노드 포인트와 문자 포인트로 분류 가능

범위 (range)• 두 개의 포인트로 지정할 수 있는 XML 문서의 범위를 지정• 어느 문자열 혹은 문서의 어느 부분을 가리킬 때에 매우 유용

로케이션 (location) • XPath 의 노드를 일반화한 개념• 로케이션은 포인트 , 범위 , XPath 의 노드 중 하나

로케이션 셋 (location-set)• 로케이션의 목록 집합싱글톤 (singleton) • 단일 로케이션으로 구성된 로케이션 셋

서브 리소스 (sub-resource)• XPointer 에 의해 식별되는 XML 자원의 부분

Section 03 XPointer 개념과 사용

Page 50: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

50

XPointer 사용처음에 절대 위치를 지정한 후 , 상대 위치 지정절대 위치 지정

상대 위치 지정은 XPath 에서 사용하는 축 정의를 사용요소 지정에는 개별 요소명 뿐만 아니라 종류를 나타내기 위해 키워드도 지정 가능

Section 03 XPointer 개념과 사용

지정 함수 포인트하는 장소

root() 문서의 루트 요소

origin() 링크 이동이 발생할 때의 링크의 시작점

id(id 속성값 ) 지정한 id 장소

Page 51: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

51

Section 03 XPointer 개념과 사용

XPointer 사용요소 지정

요소 지정 의미

#element 요소를 선택한다 . 이름이나 종류는 묻지 않는다 .

#comment 커멘트 요소를 포인터 대상으로 한다 .

#cdata CDATA 섹션 부분을 포인터 범위로 한다 .

#text요소 내용 또는 CDATA 섹션중의 문자열을 포인터 범위로 한다 .

#pi 처리 명령을 포인터 대상으로 한다 .

#all CDATA 섹션 내의 모든 내용을 포인터 범위로 한다 .

요소명 지정 요소명을 가진 요소를 포인터 대상으로 한다 .

Page 52: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

52

Section 03 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 를 결과 로케이션 셋의

포인트 타입으로 추가

Page 53: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

53

Xpointer 사용 예

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

Page 54: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

54

Xpointer 사용 결과

Section 03 XPointer 개념과 사용

[ 그림 7-24] 실행 화면

Page 55: XPath 개념과 사용 XLink 개념과 사용 XPointer 개념과 사용

Thank you