Chap4. XPointer와 XLink 김만수 자바 개발자를 위한 XML Chap4. XPointer와 XLink 김만수
CHAPTHER 2 XPointer와 XLink XPointer XLink XML Base
4.1 XPointer XPointer 개념 XML Pointer Language XPath를 기반으로 XML 문서의 일부분에 주소를 부여할 수 있는 방법을 제공 XPath가 XML 문서의 노드에만 주소를 부여하는데 비해 XPointer는 문서의 노드, 범위, 글자 단위까지 주소를 부여 아직 표준화가 이뤄지지 않음 2001년 9월 11일 Candidate Recommendation이 최신
4.1 XPointer XPointer 개념 URI와 같이 사용 URI : XML 문서의 위치를 기술 http://arirang.pknu.ac.kr/mskim/family.xml#xpointer(/family/persion[position() > 2) XPointer expression XPointer fragment
4.1 XPointer XPointer 개념 Escape 문자가 사용되는 예 경 우 사용 예 원래 값 Xpointer(string-rang(//P,“a little hat ^”)) XPointer doc.xml@xpointer(string-rang(//P,“a little hat ^^”)) IURI XML 문서 doc.xml@xpointer(string-rang(//P,"a little hat ^^")) URI doc.xml@xpointer(string-rang(//P,%22a%20little%20hat%20%5E%22))
4.1 XPointer XPointer 개념 용어 정의 용어 설명 포인터(point) XML 문서에서 어떤 위치(position) 범위(range) 두 개의 포인터에 의해 지정할 수 있는 XML 문서의 범위 로케이션(location) 포인트, 범위, XPath의 node 중의 하나 종류 포인터 로케이션(Pointer Location) 범위 로케이션(Range Location) 로케이션 셋(location-set) 순서가 있는 로케이션들의 리스트 싱글톤(singleton) 단일 로케이션으로 구선된 로케이션 셋
4.1 XPointer XPointer 형태(form) 종류 - 주소부여방식 정식 형태(full form) 간략한 형태(shorthand form) xpointer나 xmlns 스킴(scheme)으로 시작 Scheme XPointer를 처리하는 응용프로그램이 어떻게 처리해야 한다는 것을 알려주기 위해서 사용하는 것 xpointer(id(“chap1”)) XML 문서에서 ID 타입의 속성 값이 “chap1”인 부분을 의미 XPointer 주소는 여러 개의 XPointer들로 구성 가능 XPointer 주소의 왼쪽에서 오른쪽으로 계산이 이루어짐 왼쪽 계산이 성공이면 오른쪽 계산을 처리 하지 않음
4.1 XPointer 정식 형태(full form) xpointer(id(“chap1”))xpointer(//*[@id=“chap1”]) DTD를 가지고 있지 않음 + ID 타입의 속성이 없음 왼쪽 xpointer 계산 실패 오른쪽 계산 수행 id라는 속성 이름을 가진 XML 문서 주소 검색 ▶ 잘못 사용된 예 xpointer(//x:a) ▶ 네임스페이스를 사용하는 경우 xmlns(x=http//arirang.pknu.ac.kr/)xpointer(//x:a)
4.1 XPointer 간략한 형태 단순 이름(bare name) XPointer 주소에서 XML 원소의 ID 타입의 속성 값을 이용해서 주소를 부여 XML 원소의 ID 타입의 속성 값은 id()라는 함수를 이용해서 얻을 수 있음 정식형태 xpointer(id(“chap1”)) 단순 이름 chap1
4.1 XPointer 간략한 형태 자식 순서(child sequence) / 문자와 정수를 이용해서 자식 노드에 주소를 부여하기 위한 방법 정수 n은 n번째 자식 노드를 의미 1/2 XML 문서의 가장 상위에서 첫 번째 자식의 두 번째 자식 노드 chap1/5/2 ID가 “chap1”인 원소의 5번째 자식 원소의 2번째 원소를 의미
4.1 XPointer XPointer 함수들 location-set range-to(location-set) 컨텍스트 로케이션에서 부터 rage-to() 함수에 의해 지정되는 로케이션까지 범위를 리턴 location-set string-range(location-set, string, number?, number?) 로케이션 셋에서 매개 변수로 주어진 문자열과 매치되는 문자열 범위들을 리턴 xpointer(string-range(//*, ‘helloworld’)) <a>hello</a><b>world<b> xpointer(string-range(//*, ‘helloworld’, 2, 3))
4.1 XPointer XPointer 함수들 location-set range(location-set) 매개 변수의 로케이션 셋을 커버하는 범위를 리턴 location-set range-inside(location-set) 매개 변수의 로케이션 셋에 있는 로케이션의 내용을 커버하는 범위(range)를 리턴 location-set start-point(location-set) location-set end-point(location-set)
1 2 3 4 5 xpointer(/family/person[1])xpointer(/family/person[2]) xpointer(id(“booja”)) or booja 3 xpointer(//*[1]/*[3]/*[4]) or /1/3/4 4 xpointer(id(“misook”)/*[2]) 5 xpointer(start-point(//family/person[5]))
4.1 XPointer Fujitsu XLink Tree Demo Application Download 설치 실행 http://www.labs.fujitsu.com/free/xlip/en/download2.html XLinkDemo14aen.exe 파일 Download 설치 XLinkDemo14aen.exe 파일을 실행 xlinkdemo-1.4a 폴더 생성 적절한 위치로 이동 (C:\JavaSoft\xlinkdemo-1.4a) 실행 설치 위치에서 java –jar XLinkDemo.jar
4.1 XPointer Fujitsu XLink Tree Demo Application D:\src\ch2\family/xml 을 Load XPointer 테스트 실행
4.1 XLink XLink 소개 HTML Link의 단점 XML Link 장점 XML Linking Language 자원들 사이에 링크를 기술하기 위하여 사용되는 표준 2001년 6월에 표준으로 제정 HTML Link의 단점 한 Link에 하나의 문서만 연결 문서 일부분만 link할 수 없고, 문서 전체를 link Link와 문서를 분리 불가 XML Link 장점 다 방향성(multidirectional) 임의의 원소도 link로 사용될 수 있음 Link는 문서의 임의의 위치에 연결 될 수 있음
4.1 XLink XLink 응용 프로그램 용어 정리 XLink 원소와 속성을 포함한 잘 정의된 XML 문서를 인터프리트 할 수 있는 소프트웨어 모듈 용어 정리 Resource 주소를 부여할 수 있는 정보나 서비스의 단위 파일, 이미지, 문서, 프로그램, 질의(query) 결과 Link 자원들간의 혹은 자원의 일부와의 명시적인 관계(explicit relationship)을 의미 Hyper Link 사람에게 보여주기 위해서 만들어진 Link
4.1 XLink 용어 정리 Arc 다 방향성(multidirectional) 지역 자원(local resource) 자원들 쌍에서 이동하는 방법에 관한 정보(방향, 응용프로그램의 행동) 다 방향성(multidirectional) 한 쌍의 자원이 시작 자원(resource)와 끝 자원이 서로 다른 두 아크를 가진 것 지역 자원(local resource) XML 원소나 XML 원소의 부모 원소를 link 원소로 가짐으로써 link에 참여하는 XML 원소 원격 자원(remote resource) URI 참조에 의해 주소를 부여 받아 link에 참여하는 자원
4.1 XLink 용어 정리 outbound arc inbound arc third-party arc local resource remote resource inbound arc remote resource local resource third-party arc remote resource remote resource link database or linkbase inbound와 third-party 아크들을 모아 놓은 문서
4.1 XLink XLink Name Space http://www.w3.org/1999/xlink 네임스페이스 사용 전역 속성(global attributes) 제공 XML 문서 작성자가 XML DTD에 XLink 속성을 추가함으로써 자유롭게 원소를 링크로 사용 속성의 의미 속성 예 타입 정의 속성 type 위치 지정(Locator) 속성 href 의미적(sematic) 속성 role, arcrole, title 행동(behavior) 속성 show, actuate 이동(traversal) 속성 label, from, to
4.1 XLink type 속성 XLink 원소의 타입을 결정 속성 값들 simple : 단순 링크 extended : 확장 링크 locator : 외부 자원을 가리키는 포인터 arc : 자원들 간에 이동 규칙(traversal rule) resource : 내부 자원 title : 다른 링크 원소를 위한 설명적인 타이틀 none XLink에서의 링크 종류
4.1 XLink 4.3.2. 단순 링크(simple link) HTML에서 <a> 테그를 이용한 link 생성과 유사 HTML의 <a> 태그는 link가 고정된 것에 XML에서는 임의의 원소에 전역 속성을 이용하여 link 설정 선언 방법 type 전역 속성의 값으로 “simple” 값 설정 기타 속성 actuate : link의 동작 시기를 기술 onRequest : 마우스를 클릭할 때 show : 외부 자원을 어떻게 보여줄 것인가를 기술 new : 새로운 창을 사용 replace : 현재 창
4.1 XLink 4.3.2. 단순 링크(simple link) href 속성 show 속성 simple, locator 타입에서 사용 속성의 값은 IETF RFC 2396에 정의된 URI 레퍼런스 show 속성 link가 활성화될 때 내용이 어떻게 화면에 보여질 것인가를 결정 값 설명 new 새로운 창에 내용을 표시 replace 현재 창에 내용을 표시 embed link의 끝 자원의 내용을 현재 문서에 내장시켜 보임 그림, 애플릿, 동영상 및 플러그인 프로그램을 실행 시키는 형태 none link의 처리를 전적으로 응용프로그램에 맡김 other link처리를 위해 응용프로그램이 다른 마크업 정보들을 참조
4.1 XLink 4.3.2. 단순 링크(simple link) actuate 속성 title 속성 role 속성 resource에 관련된 사항에 대한 정보를 제공 tool tip 형태로 처리할 수 있음 role 속성 resource를 좀더 자세히 기술하는 문서에 대한 URI를 포함 값 설명 onRequest 사용자가 요청하는 순간에 link 활성화 onLoad link가 포함하는 문서가 로드 되는 순간에 링크가 활성화 other link 활성화 처리 정보를 얻기 위해 응용프로그램이 다른 XML 문서를 참조 none link 활성화를 응용프로그램이 전적으로 책임
4.1 XLink movies.xml 네임 스페이스 설정 단순 연결 설정 remote resource link 이동 방법
4.1 XLink movies.xml XLinkDemo Application New Instance 오른쪽 마우스 버튼을 누름
4.1 XLink replace 속성 예 book2.xml 왼쪽 버튼을 누름 Focus가 아래로 이동
4.1 XLink 4.3.3. 확장 링크(extended link) XLink의 모든 기능을 사용 inbound와 third-party arc 여러 개의 자원들이 link에 참여 상당히 복잡한 규칙 resource 타입과 locator 타입 원소 link에 포함된 자원 resource : local xlink:type = “locator” locator : remote xlink:type = “resource”
4.1 XLink 4.3.3. 확장 링크(extended link) arc 타입 원소 resource간에 link로 이동할 수 있는 경로 선언 : xlink:type = “arc” xlink:from과 xlink:to 속성을 가짐 xlink:from은 arc가 시작되는 자원을 기술 xlink:to 는 arc의 끝 자원을 기술 xlink:label 속성의 값을 비교하여 해당 자원을 찾음
4.1 XLink
1 5 4 2 3
4.1 XLink 4.4 XML Base XML 문서에서 link를 생성할 때 기본URI를 지정하기 위해 사용