티스토리 뷰

XML Developer/XSL

XSLT 소개

미니~ 2011. 11. 10. 08:45
반응형


이번에는 XSLT에 대해서 간략히 살펴보려고 합니다.

XSLT와 XSL-FO가 있는데요.. 
XSLT는 XML문서를 다른 XML 문서로 바꾸는 것을 이야기 하구요. 
XSL-FO는 XML 문서를 다른 문서(PDF, DOC 등)로 바꾸는 것을 이야기 합니다. 
즉, FO는 Formatting Object의 약자이네요.. 
 
XSLT란?
 
- XSLT는 XSL Transformation을 의미합니다.
- XSLT는 XSL의 가장 중요한 부분입니다.
- XSLT는 XML 문서를 다른 XML 문서로 변환합니다.
- XSLT는 XML 문서를 탐색하기 위해서 XPath를 사용합니다.
- XSLT는 W3C의 표준입니다.
 
계속해서 반복되는 말들입니다. 자꾸 듣다 보면 익숙해지겠죠.. ^^
 
XSLT = XSL Transformations
 
지난번에 XSL은 세 가지 부분으로 구성되어 있다고 했습니다.
XSLT, XPath, XSL-FO...
 
이 중에서 XSLT가 가장 중요한 부분이라고 할 수 있습니다.
 
XSLT는 XML 문서를 다른 XML 문서로 변환하기도 하구요..
브라우저가 인식할 수 있는 XHTML이나 HTML과 같은 문서로 변환하기도 합니다.
 
보편적으로 XSLT를 XML 문서를 (X)HTML 문서로 변환하는데 많이 사용하고 있습니다.
 
그럼.. 변환이라는 것은 무엇을 한다는 것일까요?
XML 문서에 새로운 엘리먼트나 속성을 추가/삭제할 수도 있구요.
기존의 엘리먼트를 재정렬 할 수도 있구, 특정 엘리먼트를 보여줄지 말지 테스트를 통해서 결정할 수도 있습니다.
 
보다 정확하게 말하면, XSLT는 XML 소스 트리 구조를 XML 결과 트리 구조로 변환하는 겁니다.

 
XSLT는 XPath를 활용
 
XSLT는 XML 문서 내부의 정보를 검색하기 위해서 XPath를 사용합니다.
XPath는 XML 문서의 엘리먼트나 속성을 탐색하기 위해 사용되는 표준을 말합니다.
 
요~ XPath는 예전 강좌에서도 조금 다뤘는데요..
XSLT에 대한 이야기가 완료되면 살펴보기로 하죠.. 
 


XSLT의 동작 방법
 
XSLT에서는 템플릿이라는 것을 사용하는데요..
이 템플릿과 일치하는 엘리먼트나 속성들을 찾습니다.
뭘로 찾을까요?
당연히 XPath로 검색하겠죠.. ^^
(엘리먼트나 속성들이라고 표현한 것은 여러개를 찾을 수도 있기 때문입니다.)
 
템플릿과 일치하는 엘리먼트나 속성들이 있으면,
XML 결과 트리 구조에 따라서 이 부분을 변경하게 됩니다.
 
이런 역할을 하는 것이 바로 XSLT 프로세서입니다.
 
그럼 대표적인 XSLT 프로세서는 무엇이 있을까요?
바로 웹 브라우저입니다.
 
XSLT 브라우저들
 
모질라 파이어폭스 (Mozilla Firefox)
요즘 불여우를 사용하시는 분들이 점차 늘어나고 있는데요..
파이어폭스는 버전 1.0.2부터 XML과 XSLT를 지원하고 있습니다.
 
모질라 (Mozilla)
모질라는 XML 파싱 모듈을 포함하고 있는데요..
기본적으로 XML과 CSS를 지원한다고 합니다. 또한 네임스페이스도 지원하구요..
 
XSLT에 대한 구현도 할 거라고 되어있는데요..
이미 구현하지 않았을까 하네요.. ^^
 
넷스케이프 (Netscape)
넷스케이프 버전 8부터 모질라와 동일한 엔진을 사용하고 있다고 합니다.
그럼.. 위와 같겠죠
 
오페라 (Opera)
버전 9부터 XML과 XSLT, CSS를 지원한다고 합니다.
버전 8은 XML과 CSS만 지원했다고 하네요..
 
인터넷 익스플로러 (Internet Explorer)
버전 6부터 XML, 네임스페이스, CSS, XSLT, XPath를 지원하고 있습니다.
IE 버전 5는 W3C의 표준이 아닌 자기들만의 XML을 지원했었죠..

반응형

'XML Developer > XSL' 카테고리의 다른 글

XSLT <for-each>  (0) 2011.11.30
XSLT <value-of>  (0) 2011.11.25
XSLT <template>  (0) 2011.11.21
XSLT 변환(Transform)  (0) 2011.11.16
XSL에 대하여  (0) 2011.11.08
TAG
, ,
댓글
댓글쓰기 폼