스타일시트 언어 비교

Comparison of stylesheet languages

컴퓨팅에서 두 가지 주요 스타일시트 언어는 CSS(Cascading Style Sheet)와 XSL(Extensible Stylesheet Language)입니다.두 언어 모두 스타일시트 언어라고 불리지만, 그 목적과 작업 방식은 매우 다릅니다.

캐스케이드 스타일 시트

CSS는 마크업 언어로 구조화문서, HTML 및 XML(XHTML 및 SVG 포함) 문서의 스타일링을 중심으로 설계되었습니다.그것은 그런 목적으로 만들어졌다.코드 CSS는 스타일링하는 문서의 다양한 요소에 대한 스타일 정보를 정의하는 비 XML 구문입니다.

문서를 구조화하기 위한 언어(마크업 언어)는 CSS의 예비 언어입니다.HTML이나 XUL보다 작은 마크업 언어에서는 문서를 굵은 글씨로 스타일링하기 위한 몇 가지 기본 요소를 정의할 수 있습니다.예를 들어 <empassis>는 굵은 글씨로 나타냅니다.CSS 투고는 문서를 "스크린 미디어" 또는 "페이징 미디어"로 스타일링합니다.

1페이지(하이퍼링크 포함)로 표시되는 화면 미디어로, 가로 폭은 고정되어 있지만 세로 높이는 거의 무제한입니다.화면 미디어의 일부를 표시하기 위해서는 스크롤이 선택되는 경우가 많습니다.이것은, 복수의 페이지가 있는 「페이징 미디어」와는 대조적으로, 각각 일정한 수평 치수와 수직 치수를 가지고 있습니다.페이징된 미디어를 스타일링하는 데는 스크린 미디어와는 다른 다양한 복잡성이 수반됩니다.CSS는 원래 스크린 미디어용으로 설계되었기 때문에 페이징 기능이 부족했다.

CSS 버전 3.0에는 페이지 표시용으로 문서를 보다 적절하게 스타일링할 수 있는 신기능이 준비되어 있습니다.

확장 가능한 스타일시트 언어

XSL은 당초의 디자인에서, 본래의 목적과는 전혀 다른 것으로 비약적으로 진화했습니다.XSL의 원래 아이디어는 페이지 표시 매체에 대한 XML 기반 스타일링 언어를 만드는 것이었습니다.이 작업을 수행하는 데 사용된 메커니즘은 프로세스를 두 단계로 나누는 것이었습니다.

먼저 XML 문서가 중간 형식으로 변환됩니다.이 변환을 실행하는 프로세스는 XSL 사양에 정의된 XSL 스타일시트에 의해 관리됩니다.이 변환의 결과, XSL-FO(XSL 사양으로도 정의)라고 불리는 중간 언어의 XML 문서가 됩니다.

그러나 변환 단계를 설계하는 과정에서 일반적인 XML 변환 언어가 단순히 XML 문서의 프레젠테이션을 만드는 것 이상에 유용하다는 것을 깨달았습니다.따라서 새로운 작업 그룹이 XSL 작업 그룹에서 분리되고 XSL Transformations(XSLT) 언어는 XSL-FO 문서의 스타일링 정보와는 별도로 간주되었습니다.XPath가 XSLT와 강하게 연계되어 있지만, XPath가 독자적인 사양이 되었을 때, 그 분할도 확대되었습니다.

XSLT와 XSL-FO의 조합은 CSS보다 훨씬 복잡하지만 강력한 스타일링 언어를 만듭니다.XSLT는 튜링 완전 언어이지만 CSS는 그렇지 않습니다.이것은 CSS에는 없는 파워와 유연성을 나타냅니다.또한 XSLT는 책의 장에서만 자동으로 목차를 작성하거나 책에서 용어집만 생성하는 등의 콘텐츠를 삭제/선택할 수 있습니다.EXSLT 확장기능을 갖춘 XSLT 버전 1.0 또는 XSLT 버전 2.0은 책의 장을 각각의 개별 페이지로 분할하는 등 여러 문서를 생성할 수도 있습니다.반면 CSS는 콘텐츠를 표시하지 않고 선택적으로 삭제할 수 있습니다.

XSL-FO는 XSL-FO 문서가 단독이라는 점에서 CSS와 다릅니다.CSS는 첨부된 문서를 수정하지만 XSL-FO 문서(통상 원본 문서의 XSLT에 의한 변환 결과)에는 순수하게 프레젠테이션 형식으로 표시되는 모든 콘텐츠가 포함되어 있습니다.페이지 형식 및 고품질 조판과 관련하여 다양한 사양 옵션을 제공합니다.그러나 페이지 자체는 명시되어 있지 않습니다.HTML+CSS가 포맷된 상태로 표시되려면 웹 브라우저를 통과해야 하는 것과 마찬가지로 XSL-FO 문서는 최종 페이지 미디어를 생성하는 XSL-FO 프로세서 유틸리티를 통과해야 합니다.

XSL-FO의 복잡성은 문제가 됩니다.주로 FO 프로세서의 실장이 매우 어렵기 때문입니다.웹 브라우저에서의 CSS 실장은 아직 서로 완전히 호환되지 않으며 FO 프로세서보다 CSS 프로세서를 쓰는 것이 훨씬 간단합니다.단, 풍부한 지정 페이징 매체의 경우 다양한 조판 문제를 해결하기 위해서는 최종적으로 이러한 복잡성이 요구됩니다.

「 」를 참조해 주세요.

외부 링크