0

パラメータを利用するテンプレートを出力するスタイルシートを動的に生成しようとしていますが、パーサーは最初のステップで2番目のステップ用の変数を補間しようとしています。XSLT から XSLT (別名 axsl) へ、そして XSL-FO へ

<xsl:template match="/">
    <axsl:stylesheet version="1.0" xmlns:fo="http://www.w3.org/1999/XSL/Format">
        <axsl:template match="/">

            <axsl:param name="region-before-height" select="'1.75in'"/>

            <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
                <fo:layout-master-set>
                    <fo:simple-page-master master-name="single-transcript" axsl:use-attribute-sets="page-portrait">
                        <fo:region-body />
                        <fo:region-before extent="{$region-before-height}"/>

                    </fo:simple-page-master>
                </fo:layout-master-set>
                <axsl:apply-templates/>
            </fo:root>
        </axsl:template>
    </axsl:stylesheet>
</xsl:template>

「変数 'region-before-height' が宣言されていません」という実行時エラーが発生します。{$region-before-height} が 2 番目の変換中にのみ解釈されるようにするための正しい構文は何ですか?

4

1 に答える 1

2

二重中括弧が必要だと思います:

<fo:region-before extent="{{$region-before-height}}"/>
于 2012-12-05T03:18:51.390 に答える