如何在 Orbeon Forms 中使资源语言属性动态化?
How to make resource language attribute dynamic in Orbeon Forms?
在我的模型中,我定义了一个与表单资源相关的实例。
我想通过变量中的 xpath expr 动态设置 "xml:lang" 值。
我试过了,但是资源元素的 xml:lang 属性没有评估变量,而是将其识别为字符串! (xml:lang="$语言")
...
<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>
有什么办法可以实现吗?
使用 Orbeon 4.5
为此使用 xf:bind
;类似于:
<xf:bind
ref="instance('fr-form-resources')/resource/@xml:lang"
calculate="$language"/>
这是 XForms 中的通用机制,可以在用户与表单交互时自动计算实例并re-evaluated。
在我的模型中,我定义了一个与表单资源相关的实例。
我想通过变量中的 xpath expr 动态设置 "xml:lang" 值。
我试过了,但是资源元素的 xml:lang 属性没有评估变量,而是将其识别为字符串! (xml:lang="$语言")
...
<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>
有什么办法可以实现吗?
使用 Orbeon 4.5
为此使用 xf:bind
;类似于:
<xf:bind
ref="instance('fr-form-resources')/resource/@xml:lang"
calculate="$language"/>
这是 XForms 中的通用机制,可以在用户与表单交互时自动计算实例并re-evaluated。