2011-11-26 3 views
0

まだ試していません。p:variable :: shaddowingは何を意味し、以前に宣言されたp:変数に新しい値を再割り当てすることができます

p:variableの値を、パイプラインのどこにでも、つまり、あるステップの開始時に有効な宣言の後に更新できますか?そうでない場合はなぜですか?また、私が実際にやる必要があるか、少なくともそれをシミュレートする必要がある場合、これを行うための最善の方法は何か。

+0

あなたはこれがなぜ必要なのかコメントすることができますか?あなたがしようとしていることを達成するための他の方法があるかもしれません。 – grtjn

+0

私はapを持っているとしましょう:variable name = 'state'、その宣言の下に今私は長いpを通過しています:chooseと私はこの状態変数がpに基づいていくらかの値を保持したいと思います。その後の変数[state]の現在の値に基づくものです。上記の場合XProcでこれを達成する最良の方法は何ですか? –

+0

あなたはそのように変数を必要としないようにあなたの心を曲げる必要があります。ただし、たとえば引数(オプション、パラメータ)を使用することはできます。 $ stateに依存するロジックを別々のp:declare-stepに入れ、適切な$ stateの選択肢の中からそのステップを呼び出します。 – grtjn

答えて

0

質問をxproc-devメーリングリストに転送しました。どうやら、この勧告はそれ自体と矛盾しているようです。セクション5.7(http://www.w3.org/TR/xproc/#variables-options-parameters)では、特定の条件でシャドーイングを許可する必要があることが明確に示されています。しかし、セクション3.2(http://www.w3.org/TR/xproc/#scoping)では、スコープ内で同じ変数名を再使用するとエラーとなります。コンセンサスは、これは原則作業でなければならないことかかわらた:

<p:variable name="myvar" select="1"/> 
<p:group> 
    <p:variable name="myvar" select="2"/> 

しかし、XMLCalabash(0.9.40)がこれにチョーク。あなたはCalumetや他のプロセッサーを試みるかもしれません..

関連する問題