在我的模型中,我定义了一个与form-resources相关的实例。
我想设置" xml:lang"通过变量中的xpath expr动态赋值。
我试过但是资源元素的xml:lang属性不是在评估变量,而是将它识别为字符串! (XML:LANG =" $语言&#34)
...
<xf:model id="fr-form-model" xxf:expose-xpath-types="true">
<xf:var name="language" value="de" as="xs:string" />
...
<xf:instance id="fr-form-resources" xxf:readonly="false">
<resources>
<!-- How "xml:lang" attribute can have dynamic value
from a variable/xpath instead of static string 'de' ? -->
<resource xml:lang="de">
<IntegerField>
<label>%translation.IntegerField%</label>
<IntegerField />
</Project>
<cancel>
<label>%translation.cancel%</label>
<hint />
</cancel>
<ok>
<label>%translation.ok%</label>
<hint />
</ok>
</resource>
</resources>
</xf:instance>
</xf:model>
&#13;
有没有办法实现这个目标?
使用Orbeon 4.5
答案 0 :(得分:1)
为此使用xf:bind
;类似的东西:
<xf:bind
ref="instance('fr-form-resources')/resource/@xml:lang"
calculate="$language"/>
这是XForms中的一般机制,可以在用户与表单交互时自动计算和重新评估实例。