如何在Orbeon Forms中使资源语言属性动态化?

时间:2016-01-26 15:50:06

标签: orbeon

在我的模型中,我定义了一个与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;
&#13;
&#13;

有没有办法实现这个目标?

使用Orbeon 4.5

1 个答案:

答案 0 :(得分:1)

为此使用xf:bind;类似的东西:

<xf:bind
    ref="instance('fr-form-resources')/resource/@xml:lang"
    calculate="$language"/>

这是XForms中的一般机制,可以在用户与表单交互时自动计算和重新评估实例。