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
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가 생략될
