属性「style」を持つxmlノード「item」があります。これは「Header1」です。ただし、このスタイルは変更される可能性があります。xsl:foを介して生成された、PDFでこれがどのように表示されるかを定義するHeader1という名前の属性セットがあります。
これは機能します(use-attribute-setsはfo:table-cellノードでインラインで言及されています):
<xsl:template match="item[@type='label']">
<fo:table-row>
<fo:table-cell xsl:use-attribute-sets="Header1">
<fo:block>
<fo:inline font-size="8pt" >
<xsl:value-of select="." />
</fo:inline>
</fo:block>
</fo:table-cell>
</fo:table-row>
</xsl:template>
しかし、これはそうではありません(たとえば、属性@styleはHeader2になることもあるため、xsl:attributeを使用します)。エラーは発生せず、PDFは作成されますが、属性は適用されません。
<xsl:template match="item[@type='label']">
<fo:table-row>
<fo:table-cell>
<xsl:attribute name="xsl:use-attribute-sets">
<xsl:value-of select="@style" />
</xsl:attribute>
<fo:block>
<fo:inline font-size="8pt" >
<xsl:value-of select="." />
</fo:inline>
</fo:block>
</fo:table-cell>
</fo:table-row>
</xsl:template>
誰かが理由を知っていますか?そして、できれば長いxsl:ifまたはxsl:whenを使わずに、これをどのように達成できるでしょうか。