如何在 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。