BLOG main image
분류 전체보기 (86)
낙서장 (8)
구입했어요 (4)
운동합시다 (16)
사진 (7)
ISLAB (15)
프로그래밍 (6)
테마 (0)
스마트폰 (1)
미투데이 (27)
여행 (0)
продавам апарта..
잡다한 이ì•..
navy blue fascinator clip
잡다한 이ì•..
fanduel promo code
잡다한 이ì•..
turquoise blue fascinator
잡다한 이ì•..
singapore pr application
잡다한 이ì•..
597,842 Visitors up to today!
Today 39 hit, Yesterday 68 hit
daisy rss
tistory 티스토리 가입하기!
'XML'에 해당되는 글 5건
2009.06.16 10:05

http://www.word.pe.kr/bbs/zboard.php?id=xml

신고
jibjabst | 2016.02.24 18:15 신고 | PERMALINK | EDIT/DEL | REPLY
a00bxaek

w3j53j0j

b38d0s0fa

dvv6qh4e

hrag2gqi
Name
Password
Homepage
Secret
2009.06.16 08:47

XPath Demo 웹사이트

http://dmag.upf.edu/contorsion/query.jsp


XPath

XML 문서를 트리 형태로 취급

위치경로 : Step/Step/.../Step의 형태.

절대경로 : /부터 시작(Root부터)

상대경로 : 현재 Context Node부터

Location Step : Path를 이루는 단위

- Axis::Node-Test(predicate)*형태

- step간 관계::Node-Test(필터)*

XPath Axis


① child:: 바로 하위 자식 노드들. 생략 가능.

② descendant:: 하위 구조를 이루는 모든 자손 노드들.

③ parent:: 부모노드

④ accestor:: 상위 구조를 이루는 직계 노드들.

⑤ following-sibling:: Context의 동생 노드

⑥ preceding-sibling:: 형 노드들.

⑦ following:: 문서에 나타나는 순서에서 context노드 다음에 기술되는 노드. 자손 노드는 아님.

⑧ preceding:: 문서에 나타나는 순서에서 context노드 이전에 기술되는 노드. 선조 노드는 아님.

⑨ ancestor-or-self:: 현재 노드를 포함한 선조노드들.

⑩ descendant-or-self:: 현재 노드를 포함한 자손노드들.

⑪ attribute:: 현재 노드가 가진 속성 노드들.

⑫ namespace:: 현재 노드가 가진 네임스페이스 노드.

⑬ self:: 현재 노드.



Abbreviated XPath Syntax

/ : 루트노드.

// : 현재 노드로부터 위치에 상관하지 않고 선택된 값과 맞는(match) 노드들을 선택한다.

name : 주어진 이름을 가진 자식(child::) 엘레먼트들.

@ : attribute를 선택한다.

. : 현재 context 노드

.. : 현재 노드의 부모 노드

* : 어떤 element 노드라도 match된다.



predicate

조건(필터)의 역할을 한다.

[(조건식)] 형태로 표현.

연산자 사용 가능 <=, <, >=, >, =, !=, and, or



XPath 함수
: http://www.w3schools.com/xpath/xpath_functions.asp

신고
Name
Password
Homepage
Secret
2009.06.12 16:53


XSL (eXtensible Stylesheet Language) 이란?


XML 문서를 presentation 해주기 위한 포맷팅 언어.

xml 문서이다.

1. XSL 의 구성

1)
XSLT ( XSL Transformation )
   : xml 문서의 구조를 다른 구조로 변환하기 위한 마크업 언어.
2)
XPath ( XSL Path Language )
   : xml 문서 내에서 특정 part (엘리먼트 or 속성)을 찾아가기 위한 경로 표기 언어.
3)
XSL-FO ( XSL Formatting Objects )
   : Formatter 프로그램을 통해 XML 문서를 비 XML 문서로 변환하기 위한 마크업 언어.


2. XSL 처리 과정

▪ Transformation : XML 문서를 다른 구조의 XML 문서로 구조를 변환하는 과정.
▪ Formatting       : XML
문서를 특정 S/W, H/W에 맞는 비 XML 문서로 변환하는 과정.

사용자 삽입 이미지

XSL Transform 의 결과물은 파일 형태의 문서가 아닌, 메모리 상에서 트리를 이루는 DOM 객체들로 생성된다. 이것을 Result Tree 라 한다.

3. XSLT 문서의 구성

▪ XML 선언 (optional)
▪ XSLT stylesheet 선언
▪ Top-level element
▪ Template과 Literal result element



◆ XSL 문서의 루트 엘리먼트와 최상위 엘리먼트

1. Root Element
: stylesheet or transform

 

<?xml version="1.0" encoding="euc-kr"?>                

<xsl:stylesheet

version="1.0"                          

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 

</xsl:stylesheet>


▪ version 필수 선언.
http://www.w3.org/1999/XSL/Transform : XSLT 1.0 의 public namespace URI
  cf.
http://www.w3.org/1999/TR/WD-xsl  :  XSLT 1.0 공식 권고안이 나오기 이전 MS에서 사용하던 것.

2. Top-level Element
: 루트 엘리먼트의 자식 엘리먼트

-  xsl 문서의 결합
▪  import 엘리먼트
▪  include 엘리먼트


- result tree 문서 종류 결정
▪ output 엘리먼트

- result tree의 엘리먼트 내용을 담고 있는 Top-level Element
▪ template 엘리먼트

- 기타
▪ strip-space 엘리먼트
▪ preserve-space 엘리먼트
▪ key 엘리먼트
▪ decimal-format 엘리먼트
▪ namespace-alias 엘리먼트
▪ attribute-set 엘리먼트
▪ variable 엘리먼트
▪ param 엘리먼트





◆ output 엘리먼트

: Result Tree 의 문서 종류를 지정한다.
  생략되었거나, 있어도 method 속성이 없으면
  default 값은 xml이다.
  ( result tree 의 root element 이름이 namespace 접두사가 없는 'html'일 경우에만 default 값이 'html' )

<xsl:output 속성명="속성값" 속성명="속성값"/>

ex.
<xsl:output method="xml" version="1.0" encoding="euc-kr" indent="yes"/>



속 성 명

  

속성값 유형

method

Result tree 문서 종류 지정

xml, html, text

version

Result tree XML 문서일 경우 XML 권고안 버전

1.0

encoding

Result tree의 인코딩 방식 지정

String(ex:euc-kr,UTF-8)

omit-xml-declaration

Result tree XML 선언 생략 여부.

출력 방법이 'xml'이면 default는 'no'

yes, no

standalone

Result tree의 외부 문서 참조 여부

yes, no

doctype-public

Result tree가 문서 유형 선언을 포함할 경우 PUBLIC 식별자 지정

String

doctype-system

Result tree 가 문서 유형 선언을 포함할 경우 SYSTEM 식별자 지정

String

cdata-section-elements

Result tree에서 CDATA 섹션으로 사용되어야 할 노드 지정

method="xml" 인 경우만 해당.

Qname

indent

Result tree에 화이트스페이스(태그와 태그 사이의 공백)를 포함할 지 여부

yes, no

media-type

media-type 지정

String



사용자 삽입 이미지















 

◆ 노드 및 노드셋


XML 문서

<?xml version=”1.0”>

<musiclist>

     <title>사랑 하나면 돼</title>

<title>착한 거짓말</title>

<title>물끄러미</title>

</musiclist>

루트 노드 : 문서 자체를 뜻하는 노드

 

루트 엘리먼트 노드

title  

    title     노드 셋 : 같은 엘리먼트 이름을 가진 노드들.

    title                   

 

 





Template Rule


어떤 구조를 다른 구조로 바꾸는 방법.

▪ 원본 XML 문서의 노드(엘리먼트)들을 다른 구조의 노드(엘리먼트)로 바꾸는 역할.


1. 정의
==============================================================================================

<xsl:template match="pattern">   

             <!-- Content: (xsl:param*, template) -->

</xsl:template>

ex.

        <xsl:template match="//book">       ← XSLT 엔진이 소스 트리에서 <book> 엘리먼트 발견할    

             .....                                            때마다 처리한다. node-set에 템플릿 룰을 적용해 변환.

        </xsl:template>


▪ match 속성 : 소스 트리의 하나의 패턴을 규정한다.
                     패턴에 매치하는 어떤 노드에도 적용될 수 있다.

▪ pattern : XML 문서에서 변환되어야 할 대상 노드 지정.

              Xpath 표현식 중, 한 개 노드 or 노드셋을 가리키는 표현식.

   

   

/

루트 노드(문서 자체) 지정.

/노드명/…/노드명

특정 경로의 노드() 지정.

//노드명 or 노드명

경로 상관없이 같은 이름의 노드() 지정.

/노드명/노드명[@속성명=’속성값’]

특정 속성값을 가지는 노드() 지정.

/노드명/노드명[@속성명!=’속성값’]

특정 속성값과 다른 속성값을 가지는 노드() 지정.


▪ Xpath expression Vs Xpath pattern

)  /name/first


1) Xpath express : document root 로 가서 <name> 자식 요소를 찾은 후, <first> 자식 요소로 가라
2) Xpath pattern  : <name> 요소의 한 자식인 어떤 <first> 요소와 일치시켜라. 이것은 document root 의 자식이어야 한다.



2. 적용

==============================================================================================
: 템플릿 룰을 통해 변환된 result tree의 어떤 부분에 포함할 것인지 알려준다.
 

 

<xsl:apply-templates select="node-set-expression">

              <!-- Content: (xsl:sort | xsl:with-param)* -->
<xsl:apply-templates>

ex. <xsl:apply-templates select="book">


▪ select 속성 : 모든 children을 처리하는 대신 선택된 노드만 처리한다.

▪ XSL 변환기의 동작

① select 속성에 지정된 노드와 동일한 노드를 match 속성으로 갖는 템플릿 룰을 찾는다.
② 템플릿 룰을 적용해 변환된 내용을 xsl:apply-templates 엘리먼트와 대치시킨다.

③ select 속성 생략시, 모든 템플릿 룰을 적용해 변환된 내용을 xsl:apply-templates 엘리먼트와 대치시킨다.


3. name 속성
==============================================================================================
: XSL 문서내에서 반복 적용되는 내용을 한 개의 템플릿 룰로 만들고,

  그 템플릿 룰명으로 다른 템플릿 룰에서 참조해서 적용할 경우에 사용된다.
 
템플릿 룰은 match와 name 속성 중 하나를 반드시 기술해야 한다.


1) 정의

<xsl:template name="Template Rule name">

                   <!-- Content: (xsl:param*, template) -->

</xsl:template>


ex.

<xsl:template name="tYear">

         <font color="red">2007년</font>
</xsl:template>  


2) 적용

<xsl:call-template name="Template Rule name">

             <!-- Content: xsl:with-param* -->
<xsl:call-template/>

ex. <xsl:call-template name="tCompany"/>



4. priority 속성
==============================================================================================
: XML 문서의 대상 노드를 변환시키는 템플릿 룰이 여러 개 있을 경우 우선선위가 높은 템플릿 룰이 적용되도록 한다.

priority number 가 클 수록 우선순위가 높다.

name 속성을 갖는 template rule 에서는 사용할 수 없다.


<xsl:template match="pattern" priority="number”>

         <!-- Content: (xsl:param*, template) -->


</xsl:template>


ex.

<xsl:template match="musiclist" priority="1”>

<th>title</th>

</xsl:template>

 

<xsl:template match="/musiclist /music" priority="2">

<th>price</th>

</xsl:template>



5. mode 속성
==============================================================================================
: 소스 트리의 같은 부분이 한 번 이상 처리되어야 할 때 사용한다.
name 속성을 갖는 template rule 에서는 사용할 수 없다.  (match 속성만 가능)

1) 정의

<xsl:template match="pattern" mode="Mode Name">

             <!-- Content: (xsl:param*, template) -->

</xsl:template>


ex.

<xsl:template match="title" mode="modeA">

               <xsl:value-of select="author"/>

</xsl:template>


2) 적용

<xsl:apply-templates select="node-set-expression" mode="Mode Name"/>


ex.
<xsl:apply-templates select="/musiclist/title[@genre=
jazz']" mode="modeA"/>

<xsl:apply-templates select="/musiclist/title[@genre=dance']" mode="modeB"/>





◆ XML 문서의 내용 가져오기


1. 엘리먼트의 컨텐트 내용 or 속성값 가져오기 : value-of

==============================================================================================

1) 엘리먼트의 컨텐트 내용 가져오기

<xsl:template match="대상 노드">

               <xsl:value-of select="대상 노드 자신 or 자식 노드명"
                                 disable-output-escaping="yes or no"/>

</xsl:template>

ex.
<xsl:template match="/musiclist/music">

               <xsl:value-of select="."/>          // title 노드 자신의 컨텐트 내용을 가져와 대치한다.

</xsl:template>


<!-- 컨텐트 내용이 숫자일 경우 -->
<xsl:template match="/musiclist/music">

               <xsl:value-of select="format-number(price, '###,###')"/>         
</xsl:template>



2) 속성값 가져오기

<xsl:template match="대상 노드">

               <xsl:value-of select="@속성명"/>

</xsl:template>

ex.
<xsl:template match="/musiclist/music">

               <xsl:value-of select="@genre"/>        
</xsl:template>


disable-output-escaping 속성
: XSLT processor 에게 이스케이프 문자 ("&amp;", "&lt;") 대신 "&", "<" 문자를 출력하라고 지시한다.
  default는 'no' 로, 보통은 XSLT processor가 출력시 자동으로 이런 문자로 바꾸어준다.
  xsl:value-of 와 xsl:text 엘리먼트의 속성으로 사용된다.

ex. <name>&amp;</name>

<xsl:value-of select="name" disable-output-escaping="yes"/>

→ 결과는 &

<xsl:value-of select="name" disable-output-escaping="no"/>

→ 결과는 &amp;




2. 엘리먼트 or 속성 복사해서 가져오기 : copy-of
==============================================================================================
: 원본 XML 문서의 일부분을 구조 변경 없이 복사해서 변환될 XML 문서에 붙인다.

<xsl:template match="대상 노드">

               <xsl:copy-of select="(복사할)자식노드명 or @속성명"/>

</xsl:template>

ex.

<xsl:template match="music">

               <xsl:copy-of select="title"/>

               <xsl:copy-of select="@genre"/>


</xsl:template>



◆ 정렬 (Sort)

<xsl:apply-templates select="대상 노드">

        <xsl:sort select="자식노드명 or @속성명"
                     data-type="number | text"
                     order="ascending | descending"
                     case-order="upper-first | lower-first"/>

</xsl:apply-templates>


ex.

<xsl:apply-templates select="/musiclist/music">

          <xsl:sort select="price" data-type="number" order="ascending"/>

</xsl:apply-templates>


default
   data-type : text
   order : ascending
   case-order : document에 사용되는 언어를 정의하는 lang 속성에 의존.
                     (upper-first일 경우 "A B a b" -> "A a B b")
▪ xsl:apply-templates 엘리먼트와 xsl:for-each 엘리먼트의 자식엘리먼트로 작성된다.

▪ 2차 정렬
: 1차로 컬럼을 먼저 정렬시키고, 정렬된 상태에서 다른 컬럼을 2차로 정렬시키는 것.

<xsl:apply-templates select="/musiclist/music">

              <!-- 1차 정렬 -->

              <xsl:sort select="@genre"/>

              <!-- 2차 정렬 -->

              <xsl:sort select="price" data-type="number" order="ascending"/>

</xsl:apply-templates>





◆ 번호 매기기

: XSL 변환기는 result tree 생성시 자동으로 번호를 매겨 삽입할 수 있다.
  이 기능을 이용해 XSL 문서에서 번호가 삽입되는 위치에 xsl:number 엘리먼트를 작성한다.

<xsl:template match="대상 노드">
              <xsl:number format="
번호 형식">
</xsl:template>

ex.
<xsl:template match="music">
   <tr>
      <td><xsl:number format="1"></td>
      <td><xsl:value-of select="title"></td>
   </tr>             

</xsl:template>


번호 형식 : '1', 'a', 'A', 'i', 'I', '(1)'




◆ 제어 엘리먼트


1. xsl:if 엘리먼트
==============================================================================================
: 조건식이 참이면 변환 내용을 적용한다.

<xsl:template match="xml 대상 노드">

        <xsl:if test="조건식">

                   <!-- Content: template -->
    
</xsl:if>

</xsl:template>


▪ 조건식에 자주 오는 XPath 표현식

조건식

설명

노드명=’문자열

컨텐트 내용이 문자열을 가지면 참

@속성명=’속성값

주어진 속성값을 가지면 참

@속성명!=’속성값

주어진 속성값이 아닌 다른 값을 가지면 참

start-with(노드명,’문자열’)

컨텐트 내용이 문자열로 시작하면 참

contains(노드명,’문자열’)

컨텐트 내용이 문자열을 포함하면 참




2. xsl:choose 엘리먼트
==============================================================================================

<xsl:template match="music">
     
<xsl:choose>
           
<xsl:when test="조건식1">       

                  <!-- Content: template -->
           
</xsl:when>

                           
           
<xsl:when test="조건식2">

                  <!-- Content: template -->           
            </xsl:when>

                         
           
<xsl:otherwise>                    <!-- 생략 가능 -->

                   <!-- Content: template -->
           
</xsl:otherwise>
     
</xsl:choose>

</xsl:template>

test 표현 중 하나라도 참이 되면 <xsl:choose>를 빠져나간다.


3. xsl:for-each 엘리먼트
==============================================================================================
: 대상 노드 숫자만큼 반복해서 변환시킨다.
  반드시 템플릿 룰 안에서 작성되어야 한다.

<xsl:template match="대상 노드">

     <xsl:for-each select="대상 노드">

       변환 내용
     </xsl:for-each>

</xsl:template>


ex.
<xsl:for-each select="/musiclist/music">

<tr>

<td><xsl:value-of select="title"/></td>

<td><xsl:value-of select="@genre"/></td>

</tr>

</xsl:for-each>





◆ 변수와 파라미터


1. 변수
==============================================================================================

1) 변수 선언

<xsl:variable name="변수명" select="변수값"/> 

<xsl:variable name="변수명">변수명</xsl:variable>


<!-- 변수값으로 빈 문자값을 줄 경우 -->
<xsl:variable name="변수명" select="''"/> 
<xsl:variable name="변수명"/>

ex.

<xsl:variable name="vList" select="'책목록'"/>  <!--select 속성값 지정시, 문자열인 경우 반드시 ''-->

<xsl:variable name="vKind">
       <!-- Content: template -->
</xsl:variable>



2) 변수 사용
▪ 변수값(=단순한 문자열) & result tree의 컨텐트 내용으로 사용될 경우

<엘리먼트> <xsl:value-of select="$변수명"/> </엘리먼트>

ex.
  <xsl:template match="music">
             <xsl:value-of select="$변수명"/>
      </xsl:template>


▪ 변수값(=단순한 문자열) & result tree의 속성값으로 사용될 경우

속성명="{$변수명}"

ex.
<font size="{$vGenre}"> .... </font>


▪ 변수값(=단순한 문자열) & XPath 표현식에서 사용될 경우

[노드명=$변수명] or [@속성명=$변수명]

ex.
<xsl:for-each select="//music[@genre=$vGenre]">


▪ 변수값이 result tree의 일부분을 이루는 엘리먼트들로 구성되어 있을 경우

<엘리먼트> <xsl:copy-of select="$변수명"/> </엘리먼트>

ex. <xsl:copy-of select="$vSize"/>



3) 변수 사용 범위
▪ global variable : top-level Element 로 작성. Template Rule 위에 작성해도 좋고, 아래에 작성해도 좋다.
▪ local variable : Template Rule 내에서 작성


4) 변수 예제
▪ xml 예제

more..


▪ xsl 예제

<?xml version="1.0" encoding="euc-kr"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 

 <!-- 글로벌 변수 선언  -->

 <xsl:variable name="vList" select="'쇼핑목록'"/>

 <xsl:variable name="vKind">computer</xsl:variable>

 <xsl:variable name="vSize" select="10"/>

 <xsl:variable name="vCompany">

       <font color="blue">Cheap</font> Company
 </xsl:variable>

 

 <!-- 시작 템플릿   -->

 <xsl:template match="/">

    <html>

       <body>

          <!-- 컨텐트 내용으로 사용  -->

          <h2><xsl:value-of select="$vList"/></h2> 

                   

          <!-- XPath 표현식에서 사용 -->

          <xsl:for-each select="//product[@kind=$vKind]">

                          

             <!-- 속성값으로 사용  -->

             <font size="{$vSize}"> 

                 <xsl:value-of select="title"/>

             </font>

             <br/>

          </xsl:for-each>

                   

           <!-- result tree 일부분을 이루는 엘리먼트로 구성될 변수값 사용 -->

          <xsl:copy-of select="$vCompany"/>

       </body>

</html>

</xsl:template>

</xsl:stylesheet>


▪ 결과
사용자 삽입 이미지

▪ <xsl:copy-of select="$vCompany"/> → <xsl:value-of select="$vCompany"/> 로 변경하면
font가 적용되지 않고 텍스트만 결과로 출력된다.


2. 파라미터
==============================================================================================

: 현재 템플릿 룰에서 다른 템플릿 룰을 적용할 때 전달하고 싶은 데이터가 있을 경우

1) 파라미터 선언

<xsl:param name="파라미터명" select="파라미터값"/> 


<!-- 파라미터값으로 빈 문자값을 줄 경우 -->
<xsl:param name="파라미터명" select="''"/> 
<xsl:param name="파라미터명"/>


2) 파라미터 전달

▪ xsl:with-param 엘리먼트는 xsl:apply-templates엘리먼트와 xsl:call-template 엘리먼트의 자식 엘리먼트로 작성된다.

▪ select 속성값으로 엘리먼트 노드, 텍스트 노드 모두 가능하다.
  또한 꼭 소스 트리에서 올 필요는 없고, 문자열을 넘겨도 좋다.
  ex. 엘리먼트 노드일 때 : <xsl:with-param name="pTitle" select="title"/>
        텍스트 노드일 때   : <xsl:with-param name="pTitle" select="title/text()"/>
        문자열일 때           : <xsl:with-param name="pTitle" select="'문자열 파라미터이다'"/>
   
▪ xsl:apply-templates엘리먼트 : match 속성 갖는 다른 템플릿 룰을 적용
<xsl:apply-templates match="대상 노드">
        <xsl:with-param name="파라미터명" select="전달할 데이터"/>
</
xsl:apply-templates>


▪ xsl:call-templates엘리먼트   : name 속성 갖는 다른 템플릿 룰을 적용

<xsl:call-template name="Template Rule name">
        <xsl:with-param name="파라미터명" select="전달할 데이터"/>
</
xsl:apply-template>


3) 파라미터 사용

<xsl:template ~>
       <!-- 파라미터 선언 -->
      <xsl:param name="파라미터명"/>
       <!-- 파라미터 사용 -->
         .....
<xsl:template>


4) 예제

<xsl:template match="book">

          <!-- 파라미터 값 전달 -->

          <xsl:call-template name="tBook">

                  <xsl:with-param name="pTitle" select="title"/>

          </xsl:call-template>

</xsl:template>

 

<xsl:template name="tBook">

          <!-- 파라미터 선언 -->

          <xsl:param name="pTitle"/>   
         
<!-- 파라미터 사용 -->       
         
<xsl:value-of select="$pTitle"/>

</xsl:template>





◆ XSL 문서의 결합

: 외부 XSL 문서를 참조

1. xsl:include 엘리먼트
==============================================================================================
: Top-level 엘리먼트로서 작성된다.
  다른 Top-level 엘리먼트 (ex. Template Rule) 의 정의가 앞이나 뒤에 있어도 상관 없다.
<xsl:include href="uri-reference"/>



2. xsl:import 엘리먼트
==============================================================================================
: 다른 Top-level 엘리먼트보다 먼저 작성되어야 한다.
  여러 개 작성할 수 있다.

<xsl:import href="uri-reference"/>

신고
Favicon of http://www.leilighet-berlin.no/no/canada-goose-kensington-parka.html BlogIcon BoVHXewipC | 2014.09.26 20:08 | PERMALINK | EDIT/DEL | REPLY
이용약관위배로 관리자 삭제된 댓글입니다.
Name
Password
Homepage
Secret
2009.06.12 11:04

■ URI(Uniform Resource Identifier)

 

- 인터넷 상의 자원을 표현하기 위한 방법

 

 

■ URI= URN + URL

 

○URN(Uniform Resource Name)

 

   - 인터넷 상의 자원을 이름으로 표시한 것

   - 홍길동

 

 

○URL(Uniform Resource Locator)

 

   - 인터넷 상의 자원을 자원이 존재하는 위치로 표현하는 방법

   - 두번째에서 3번째 있는 놈

 

 

※ XML에서 네임스페이스 값(네임스페이스가 정의된 태그가 속한 곳)으로 URL을 사용함

 

 

URI는 그것이 텍스트의 한 페이지나, 비디오 또는 사운드 클립이든, 정지 화상이든 동영상이든, 또는 프로그램이든 상관없이, 이러한 콘텐츠 들 중 어느 하나를 인식하기 위한 수단이다. 가장 보편적인 형태의 URI가 바로, 웹페이지 주소 즉, URL인데, 이는 URI의 특별한 형태이자 부분집합이라 할 수 있다. URI는 대체로 다음과 같이 설명할 수 있다.

 

  • 자원에 접근하기 위해 사용되는 절차
  • 어떤 자원을 가지고 있는 특정한 컴퓨터
  • 컴퓨터 상의 특정 자원의 이름 (파일 이름)

예를 들어 아래의 URI는 웹프로토콜 애플리케이션HTTP를 사용하여 액세스될 수 있는 파일을 인식하며, 그 파일은 유일한 인터넷 주소로 사상될 수 있는 www.w3.org라는 이름을 가진 컴퓨터에 존재한다.

http://www.w3.org/Icons/WWW/w3c_main.gif

 

컴퓨터의 디렉토리 구조에서, 그 파일은 "/Icons/WWW/w3c_main.gif"에 위치해 있다. FTP 주소와 전자우편 주소들을 인식하는 문자열들도 역시 URI이다 (그리고 HTTP 주소처럼, 이것들도 URL이라고 불리는 URI의 부분집합이다). URI의 또다른 종류 중 하나는 URN이다. URN은 "제도적인 영속성"을 갖는 URI의 한 형태로서, 그것의 정확한 위치는 때로 변할 수 있지만, 일부 에이전시가 그것을 찾을 수 있다는 것을 의미한다.

IETF의 RFC 1630에 반포된 URI 구문 규칙은 모든 인터넷 주소에 적용된다.


※ 관련 사이트

신고
Name
Password
Homepage
Secret
2009.06.11 21:08

RDF(Resource Description Framework)


  XML이 가진 비정규적 논리적 구조와 사용자들의 다양한 표현을 이용한 데이타를 기계가 이해하기는 쉽지 않다. 따라서 풍부하며 정확한 결과를 얻는 것은 매우 어렵다. 이에 해결책으로 제시된 것은 웹에 수록된 데이타를 기술하기 위해 메타데이타를 사용하는 것이다. 이를 위해 메타데이타에 대한 표준화의 많은 연구가 진행 되었는데 W3C에서는 메타데이타를 위한 표준에 대한 연구로 RDF를 표준안으로 제시하였다. 기존의 HTML이나 XML이 가지고 있는 장점과 더불어 메타데이타를 기술할 수 있는 장점을 더한 것이 RDF라 할 수 있다.

 
이처럼 RDF는 메타데이타를 처리하기 위한 기초를 제공한다. 즉, 정보 리소스들의 의미와 이들 사이의 연관성을 기술하기 위한 수단을 제공해 주기 위해 개발됐다. RDF 형태의 문서는 소스/속성/값이라는 반복된 구조로 구성되어 있다. 리소스는 RDF에 의하여 표현되는 모든 것, 표현의 대상을 나타낸다. 리소스는 모든 웹페이지, 혹은 웹페이지의 일정 부분, 도서, 정보 등 거의 모든 것이 그 대상이다. 속성은 리소스를 잘 기술하기 위한 특정한 면, 특성, 관계 등을 의미한다. 각 속성은 의미를 지니고, 값을 지닌다. 값은 속성이 지니는 실제의 값을 의미한다. 여기서 값은 리터럴 값인 경우도 있고, 반면에 또 다른 리소스를 의미할 때도 있다. RDF는 표준화된 용어의 사용과 데이타간의 의미적 관계에 대한 기술이 가능하기 때문에 현재의 HTML과 XML 문서가 주류를 이루는 인터넷 데이타 환경은 RDF 형태로 변형될 조짐을 보이고 있다.

RDF 제안

  RDF는 XML을 기반으로 웹상의 분산된 다양한 자원들을 기술하기 위한 구조이고, 웹 상의 자원을 대상으로 메타데이타의 표준화 작업과 효율적이고 체계적인 관리를 위하여 W3C에서 제안하였다. RDF는 웹 자원 검색을 위한 상이한 메타데이타를 효율적으로 교환하고 공유할 수 있는 상호운영을 목적으로 한다. 또한 RDF는 웹 자원의 자동화 처리와 컴퓨터가 이해할 수 잇는 정보 교환 수단을 제공한다. W3C는 RDF모델 및 구문을 1999sus 2월에 권고안으로 제정하였고, RDF 스키마를 2000년 4월에 후보 권고안으로 제정하였다.

RDF 데이터 모델

  RDF는 W3C에서 제정한 것으로서 기술하고자 하는 대상에 대한 부가정보, 데이타간의 상하 및 연관 관계 등을 기술하는 능력을 가진다. 즉 데이타를 정의하고 그 데이타에 대한 설명이나 관계를 기술함으로써 온톨로지를 구축할 수 있는 방법을 제공한다. RDF는 기본적으로 주어(subject), 서술(predicate), 목적(object)의 트리플(triple)모델로 기술된다. 주어란 표현하고자 하는 데이타를 의미하며, 서술은 주어에 대해 기술하거나 주어와 목적의 관계를 의미한다. 목적이란 서술에 대한 내용이나 값을 의미한다. 또한 각 내용들에 대해서 URI를 통해 기술할 수 있다.

주어(subject) http://www.w3.org/Home/Lassila
서술(predicate) Creator
목적(object) "Ora Lassila"

위의 도표를 RDF 구문으로 표현하면

  RDF는 이와 같은 트리플을 연속적으로 기술함으로써 정보를 표현한다. RDF에서는 이와 같이 실제 데이터를 기술하는것 뿐만 아니라 데이타에서 사용되는 용어의 종류와 용어간의 관계를 기술하는 스키마인 RDF 스키마(RDF Schema)를 지원한다.

RDF 스키마(Schema)

  RDF 스키마는 자원들 사이의 속성과 관계를 포함한 정보 집합인 타입 시스템을 제공하고 RDF 문장들을 해석하기 위해 응용된다. 또한 특정 분야의 정보 자원에 대한 속성을 표현하는 요소들을 선언하기 위해 사용되고, 기계가 이해할 수 있는 요소들을 정형화함으로써 다른 메타데이타에서 사용된 요소들을 재사용하거나 교환할 수 있다. 다른 메타데이타 스키마를 구별하기 위하여 RDF의 이름공간 개념을 사용한다. RDF 스키마에 대한 자원과 클래스들의 집합과 요소들을 표현하면 아래 그림과 같다. 그림에서 둥근 직사각형은 클래스를 나타내며, 큰 점들은 각 자원을, 화살표는 자원이 정의하는 클래스를 나타낸다. 그리고 서브클래스는 슈퍼클래스에 둘러싸여 있다.

  RDF 자원은 클래스, 프로퍼티, 제한조건, 설명부분으로 구성된다.



[출처] [펌]RDF(Resource Description Framework)|작성자 탱글탱구

신고
Name
Password
Homepage
Secret
prev"" #1 next

티스토리 툴바