2

http://www.w3.org/MarkUp/Forms/wiki/XForms_2.0#The_var_elementに基づいて、次の XForms ドキュメントを用意しました。

<?xml-stylesheet type="text/xsl" href="../xsltforms/xsltforms.xsl"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xf="http://www.w3.org/2002/xforms">
    <head>
        <title>var-demo</title>
        <xf:model>
            <xf:instance>
                <data xmlns="">
                    <PersonGivenName>Kilroy</PersonGivenName>
                </data>
            </xf:instance>
        </xf:model>
    </head>
    <body>
        <xf:output value="PersonGivenName"><xf:label>PersonGivenName=</xf:label></xf:output>

        <xf:var name="pg_name" value="PersonGivenName"/>
        <xf:output value="pg_name"><xf:label>pg_name=</xf:label></xf:output>
    </body>
</html>

それは非常に簡単です: Kilroy を 2 回出力する必要があります (私はそう思います)。最初にモデルから直接読み取り、次に変数に入れてその変数を出力します。

しかし、出力は

PersonGivenName=Kilroy
pg_name=

私はこれを eXist-db 2.0 と eXide バージョン 2.0 から試しました。上記のコードは XSLTforms によって処理されます。最初の行を省略して、betterForm によって処理されますが、結果は同じです。

http://www.w3.org/MarkUp/Forms/wiki/XForms_2.0の「3.2.4.2 Variable Scope」の章の後の例では、変数の値を使用する場合は $ プレフィックスが必要であることが示唆されていますが、両方の XSLTforms最後の出力を value="$pg_name" に変更すると、betterForm が例外をスローします。上記のコードは構文的には正しいようですが、変数の値は出力されません。誰でもこれを説明できますか?

4

2 に答える 2

2

申し訳ありませんが、XSLTForms では変数はまだ実装されていません。

「変数」専用のインスタンスを頻繁に定義します。

-アラン

于 2013-07-18T19:26:15.003 に答える