XSL 엘리먼트 정리

CSS 에서는 엘리먼트의 데이터만 출력 가능하다.

CSS 에서는 한글을 지원하지 않기 때문에 엘리먼트 명을 한글로 하지 않도록 한다.

 

스타일 시트(CSS) 문제점과 XSL

1.       CSS 출력내용을 XML문서 구조 그대로 출력한다.

2.       CSS XML 문서에 없는 내용이나 계산된 결과 출력 불가능

3.       CSS XML 문서의 모든 내용 출력 불가능

 

XSL (Extensible Stylesheet Language)

1.       XSLT (XSL Transformation)

A.       XML 문서의 구조를 다른 구조로 변환시키는 마크업 언어
ex) XML -> HTML, XML -> WML, XML -> XML

2.       XPath (XML Path Language)

A.       XML 문서 내에서 특정 파트(element, attribute) 찾아가기 위해 사용되는 경로 표기 언어

B.       XSLT XPointer 사용하기 위해 설계

3.       XSL-FO (XSL Formatting Objects)

A.       Formatter 통해서 XML 문서를 XML 문서로 변환

B.       변환될 XML 문서는 XSL-FO 마크업 언어로 작성되어야 한다.

 

 

XSL 처리과정

1.       Transformation : XML 문서에서 다른 구조의 XML 문서로 구조를 변환하는 과정

2.       Formatting : XML 문서를 XML 문서로 변환하는 과정

 

Transformation

-          특정 마크업 언어로 작성된 XML 문서를 다른 마크업 언어로 작성된 XML 문서로 바꾸는 것을 말한다.

-          XSL 변환기의 결과물은 파일형태의 문서가 아니라, 메모리 상에서 트리를 이루는 DOM 객체들로 생성된다. (Result tree)

-          처리과정을 담당하는 XSL Transformer XSL Processor 프로그램에 포함

 

Formatting

-          XML 권고안 문법을 따라 작성된 텍스트 형식의 파일이 아닌 특정 포맷 형식으로 작성된 문서로 XML 문서를 변환

-          XML 문서는 XSL-FO 언어로 작성해야 한다.

-          처리과정을 담당하는 XSL Formatter XSL Processor 프로그램에 포함

-          만약 XML 문서가 XSL-FO 언어로 작성되어 있지 않다면, XSL 변환기를 거쳐서 XSL-FO 문서구조로 변경하고 Formatting 과정을 처리

 

XSL Processor

-          XSL 변환기와 Formatter 기능이 함께 있는 프로그램을 뜻한다.

-          하지만 현재 나와있는 XSL Processor XSL 변환 기능만 구현 (XSL-FO 권고안이 XSL 변환기에서 사용하는 XSLT 보다 늦게 권고안으로 채택)

 

XSL 문서의 루트 엘리먼트

1.       루트 엘리먼트

A.       stylesheet (주로 사용)

-          transform 사용할 수도 있다. (차이는 없음)

B.       접두사는 관례상 xsl 사용

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

D.       <?xml version="1.0" encoding="euc-kr" ?>
<xsl:stylesheet version="1.0"
    xmlns:xsl
="http://www.w3.org/1999/XSL/Transform">

   
자식 엘리먼트 (최상위 엘리먼트)
</xsl:stylesheet>

 

2.       루트 엘리먼트의 자식 엘리먼트

A.       최상위 엘리먼트라고도 한다.

B.       XSL 문서의 결합과 관련된 최상위 엘리먼트

-          Import

-          Include

C.       Result Tree 문서 종류를 결정하는 최상위 엘리먼트

-          Output

D.       Result Tree 엘리먼트 내용을 담고 있는 최상위 엘리먼트

-          *template

E.       기타 최상위 엘리먼트

-          strip-space

-          preserver-space

-          key

-          decimal-format

-          variable

-          param

-          attribute-set

 

 

1.        output 엘리먼트

-          Result Tree 문서 종류를 지정

-          종류 뿐만 아니라 XML  선언 기타 설정도 가능

-          <xsl:output 속성명="" 속성명="…/>

-          method : 문서 종류를 지정 (xml, html, text…) 생략되었을 경우 루트 엘리먼트가 html 이면 html 기본값, 루트엘리먼트가 html 아니면 xml 기본값이다.

-          version : XML 문서일 경우 version 표기

-          encoding : 인코딩 방식 지정

-          standalone : 외부 문서 참조 (yes, no)

-          indent : 화이트 스페이스 포함여부 (yes, no)

-          doctype-public : public 식별자 지정

-          doctype-system : system 식별자 지정

-          *method 생략될