xslt はかなり新しく、PDF 生成用の xslt テンプレートを作成しようとしています。
着信 xml のスニペットを次に示します。
<element name="rootElement">
<attributes />
<elements>
<element name="childElement">
<attributes>
<attribute name="attributename" value="Yes" />
</attributes>
</element>
</elements>
</element>
すべての要素名と対応する値を表形式で出力するだけでなく、各子要素に固有のテキストを表示する必要があります。
いくつかの調査を行った後、テンプレートの一致とモード属性の設定を組み合わせることでこれを達成できると考えました。ここに私が書いたコードがあります:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="DOCUMENT">
<xsl:apply-templates select="DATA" />
</xsl:template>
<xsl:template match="DATA">
<xsl:apply-templates select="element" />
<xsl:apply-templates select="element" mode="test" />
</xsl:template>
<xsl:template match="element">
<fo:block font-size="18.0pt" font-family="Arial"
font-weight="bold">
Display something I.
</fo:block>
</xsl:template>
<xsl:template match="element" mode="test">
<fo:block font-size="18.0pt" font-family="Arial"
font-weight="bold">
Display something II.
</fo:block>
</xsl:template>
</xsl:stylesheet>
実行後の出力は次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" font-size="18.0pt" font-family="Arial" font-weight="bold">
Display something I.
</fo:block>
テンプレートとモードの一致が実行されなかった理由を誰か教えてください。
どんな考え/解決策/洞察も大歓迎です。