Orbeon 表单 - 防止表单生成器覆盖表单中的模板

问题描述

我使用的是 Oberon 表单 2019.2 CE。 假设我有部分:

<s_address>
 <s_address-iteration>
  <grid-address>
   <c_country label=""/>
  </grid-address>
 </s_address-iteration>
</s_address>

当我运行表单并添加此部分的新重复时,会从此模板创建新重复:

<xf:instance xxf:readonly="true" xxf:exclude-result-prefixes="#all"
                     id="s_address-template">
            <s_address-iteration>
                <grid-address>
                    <c_country/>
                </grid-address>
            </s_address-iteration>
</xf:instance>

现在,我还想将标签添加到模板中的 c_country 字段。但是,当我执行此操作并应用更改时,Form Builder 会从模板中删除标签

是否可以阻止 Form Builder 这样做?

我可以为带有标签的 s_address 部分创建自定义模板,但此解决方案将难以维护。

解决方法

这个问题可能与此有关:

我需要在模板中向字段添加空标签,因为我在表单中有功能,当用户按下按钮时,表单从外部服务获取数据并将该数据提供给字段(当它是动态下拉菜单时,我设置了值和标签)。如果我没有在字段中添加空标签,当用户添加新的部分重复时,标签将无法正确显示。

现在,我通过这种方式解决了这个问题:我基于由 Form Builder 自动创建的模板创建了我的自定义模板,并使用它而不是默认模板。这个解决方案有效,但正如我之前写的,它很难维护。

,

模板由 Form Builder 重新创建,这解释了您的更改消失的原因。如果您需要在 label 上添加额外的 <country> 属性,手动将其添加到模板中是不可行的。

现在我不知道什么是“正确的方法”,仅根据上面提供的信息。这将取决于 label 属性的用途,何时需要它。 (请随时在下面添加评论,并描述您的用例,我会尽力跟进。)