• XSL 2020.11.30
  • DTD 2020.11.18
  • XML 2020.11.18

○XSL (Extensible Stylesheet Language)

 ▷XML문서를 다른 텍스트 기반의 문서로 바꾸는 XML 문서

 ▷XSLT : XSL Transformation

 

 ▶선행 지시자

  ▷namespace =  http://www.w3.org/1999/XSL/Transform 

  ▷output

   ▷속성 method : 바꿀 문서 Type

   ▷속성 doctype-system = about:legacy-compact

  ▷template

   ▷속성 match =  "/" -> root에 맞춘다?

 

 ▶XPath

  ▷XML요소의 위치를 알려주는 주소.

  ▷모든 노드의 Tree 구조를 해석하지 않고, 주소를 따라 찾아간다.

  ▷모든 노드가 정상적으로 구성되어야 한다. (Schema, DTD의 문법을 어겨서는 안됨)

  ▷XML문서 직접 연결 -> xml:stylesheet processing instruction

 

  ▶규칙

   ▷/ : Root, 주소 구분자. (자식 요소)

    ▷Absolute address : /로 시작

    ▷Relative address : /로 시작하지 않음

   ▷~//* : ~의 모든 자식 노드들.

 

   ▷@~ : 속성값

 

   ▷name() : tag명

   ▷text() : start ~ end 태그 사이의 값.

 

   ▷기타

 

 ▶문법

  ▶<xsl:template match="Expression"/> : 특정 노드가 일치할 때, 해당 노드에 적용할 규칙들

   ▷<xsl:template match="/"> : 템플릿 전체를 문서와 연결

 

 

  ▶<xsl:value-of select="Expression"/> : element의 값

    ▷주소 -> @atName : attribute의 값

  ▶<xsl:apply-templates/> : 해당 node, node의 자식에 대해 template을 적용시킴.

   ▷속성 select="Expression" : Expression에 맞는 node의 자식에 대해 template을 적용시킴.

 

  ▶<xsl:for-each select="Expression"> : Expression에 맞는 자식 node들을 순회한다.

 

  ▶<xsl:sort select="Expression"> : Expression에 맞는 자식들을 정렬한다

   ▷속성 data-type : 해당 데이터 타입으로 해석한다.

    ▷number : 수 / text : 문자열 (사전순)

   ▷속성 order : 내림차(descending), 오름차(ascending)을 정한다.

 

  ▶<xsl:variable name = "varName" select="Expression"> : Expression을 만족하는 node의 값을 변수로 저장한다.

   ▷sum(v) : 만족하는 Expression의 값들의 합

'컴퓨터 언어 > XML' 카테고리의 다른 글

DTD  (0) 2020.11.18
XML  (0) 2020.11.18

○DTD (Document Type Definition)

 ▷XML에서 태그들의 규칙을 정의해주는 문서

 

 ▶사용

  ▷XML문서에서 SYSTEM에서 사용할 dtd를 정의한다.

  ▷문서 내부에서도 DTD를 정의가능하지만, 잘 사용하지는 않는다.

 

 ▶DTD 문서 정의

  ▶기호

   ▶연결자

    ▷,으로 연결: 순서대로 있어야 한다.

    ▷|으로 연결: 여러개 중 하나만 있으면 된다.

   ▶후첨자

    ▷+: 최소 하나 이상 있어야 한다.

    ▷*: 있던 없던 상관없다.

    ▷?: 없거나 하나 있다.

 

  ▶가질 수 있는 값

   ▷#CDATA: 글자들 (letters)

   ▷#PCDATA: 해석 가능한 글자들 (letters, numbers, entity references)

    ▷<: &lt, >: &gt, &: &amp

   ▷EMPTY: 값이 올 수 없음

 

 

  ▶<!ELEMENT name ( ... )>

   ▷name 태그가 가질수 있는 값을 정의한다.

   ▷다른 태그가 올 수 있다. (계층구조)

   ▷내용이 오는것을 추천한다.

 

  ▶<!ATTLIST name attribute ( ... )>

   ▷name 태그가 가질 수 있는 속성을 정의한다.

   ▷Identifier (식별자)가 오는 것을 권장한다.

 

   ▶modifier

    ▷#REQUIRED: 반드시 가져야 하는 속성

    ▷#IMPLIED: 생략 가능한 속성

    ▷#FIXED: 고정된 값을 가지는 속성

 

 

  ◎Examples

   ▷letter.dtd

 

   

 

 

'컴퓨터 언어 > XML' 카테고리의 다른 글

XSL  (0) 2020.11.30
XML  (0) 2020.11.18

○XML (eXtensible Markup Language)

 ▷여러 특수목적의 마크업 언어를 만드는 용도에서 권장되는 다목적 마크업 언어

 ▷DTD, schema를 통해 사용자가 마크업 언어를 만들고, 규칙을 설정할 수 있음.

 ▷<?xml version = "1.0"?> 을 통해 xml임을 알림. (1.0이후로 나오지 않았다.)

 

 ▶규칙

  ▷<~>  </~>의 태그들로 묶음.

  ▷태그들은 계층 구조를 어길 수 없음 (하위 계층이 모두 닫히고, 상위 계층이 닫힌다.)

  ▷이름에는 letters, underscores, hyphens, periods이 들어갈 수 있다.

   ▷처음에는 letters, underscores만 들어갈 수 있고, xml로 시작할 수 없다.

 

 ▶namespace

  ▷이름의 충돌을 방지하기 위해 namespace를 활용할 수 있다.

  ▷URI형태로 표현된다.

  ▷~: 을  통해 사용한다. (xmlns:~ = "URI"을 통해 정의)

  ▷default namespace를 정의할 수 있다. (xmlns = "URI"을 통해 정의)

'컴퓨터 언어 > XML' 카테고리의 다른 글

XSL  (0) 2020.11.30
DTD  (0) 2020.11.18

+ Recent posts