[홈으로] [게시판]

닥북 XSL 커스텀화

기초: XSLT 파일의 포함 또는 들여오기

한 XSL 스타일시트가 다른 XSLT 스타일시트를 포함할 수 있다. 다른 식으로 표현하면, 한 XSL 스타일시트 안에 다른 XSLT 스타일시트를 들여올(import) 수 있다.

<xsl:import> 요소가 그러한 기능을 수행한다.예를 들어 다음은 main.xsl을 driver.xsl이 포함하는 예이다.

파일 main.xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
  <xsl:apply-templates />
</xsl:template>

<xsl:template match="para">
<p>
<xsl:value-of select="."/>
</p>
</xsl:template>

</xsl:stylesheet>
파일 driver.xsl:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:import href="main.xsl"/>

</xsl:stylesheet>

이러한 포함 기능은 복잡한 변환 과제를 여러 개의 XSL 스타일시트들로 분할할 수 있게 한다. 예를 들면 공통적인 기능을 담은 XSL과 특수한 경우에 대한 XSL들을 분리하고 적절히 조합하는 등.

이러한 포함 기능에서 한 가지 중요한 특징은, 포함하는 XSL에 정의되어 있는 것이 포함되는 XSL의 것을 덮어쓴다는 것이다. 예를 들어 앞의 예에서 driver.xsl을 다음처럼 바꾼다고 하자.

파일 driver2.xsl:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:import href="main.xsl"/>

<xsl:template match="para">
<문단>
<xsl:value-of select="."/>
</문단>
</xsl:template>

</xsl:stylesheet>

main.xsl에는 para라는 요소의 내용을 <p>로 감싸는 템플릿이 있다. 그러나 driver2.xsl은 그 템플릿을 다른 것으로 바꾼다. 좀 더 구체적으로 이야기하면:

  1. <xsl:import href="main.xsl"/>에 의해 main.xsl의 템플릿들이 driver2.xsl에 포함된다. 그 중에는 para에 대한 템플릿이 있다.
  2. <xsl:template match="para">에 의해, main.xsl에서 가져온 그 para 템플릿을 driver2.xsl이 새롭게 정의한 para 템플릿(<문단>으로 감싸는 것)이 덮어쓴다.

이러한 기능에서 중요한 것은, 기존의 XSL 스타일시트를 전혀 건드리지 않고 그 XSL 스타일시트의 일부만을 변경할 수 있다는 점이다. 닥북 XSL 커스텀화는 이런 점을 기반을 둔 것이다.

닥북 XML 커스텀화의 기본적인 방법

파일 구성 - 커스텀화 계층

기존 스타일시트의 일부를 특정한 요구에 맞게 커스텀화하는 용도로 쓰이는 스타일시트들을 커스텀화 계층이라고 부른다. 앞의 예에 나온 driver.xsl, driver2.xsl이 바로 커스텀화 계층이다.

닥북 XSL의 경우 기존 스타일시트는 DocBook XSL 이라는 이름으로 http://docbook.sourceforg.net/ 에서 배포되는 스타일시트 패키지(이하 기본 닥북 XSL)가 바로 기존 스타일시트에 해당하며, 그 스타일시트를 직접 수정하지 않고 일부를 변경하는 것은 모두 닥북 XSL 커스텀화 계층이라 할 수 있다.

닥북 한국이 배포하는 패키지에 포함된(CVS를 통해서 따로 다운받을 수도 있다) dbk-???.xsl들이 닥북 XSL 커스텀화 계층의 좋은 예이다.

매개변수 바꾸기

닥북 XSL 매개변수 설정

템플릿 규칙 바꾸기

용도별 커스텀화 사례

제일 위로
최종 수정 일시: 07월 26일(2007년) 06:07 PM 편집 | 정보 | 차이 | 비슷한페이지 | DebugInfo
유용한 페이지들: 분류 분류 | 자유로운 연습장 SandBox | 무작위 페이지들 RandomPages | 인기있는 페이지들 MostPopular