tohokuaikiのチラシの裏

技術的ネタとか。

XSLTのoutput要素では変数を使えないが、result-documentでは変数を使える件

Saxon-bの9あたりで。

XSLT

    <xsl:output 
        method="xml" omit-xml-declaration="yes" encoding="UTF-8" indent="yes"
		doctype-system="{$dtd_path}"/>

って書くと、

<!DOCTYPE ac:counfluence
  SYSTEM "$dtd_path">

ってまんまでちゃうのに、

<xsl:template match="/">
    <xsl:result-document
		doctype-system="{$dtd_path}"
		method="xml"
		omit-xml-declaration="no" encoding="UTF-8" indent="yes"
		>

って書くと、ちゃんと変数展開してくれる。

まぁ、templateタグ内だから当たり前かっていう気がしなくもない。。。