1

我正在从事一个项目,以从问卷元数据生成 XForms 中的电子调查。虽然我已经能够很容易地创建符合 XForms 规范的 XForms,但我在通过 Orbeon 运行表单时遇到了麻烦。

我试图通过 Orbeon 运行的表格在这里:https ://gist.github.com/3850705#file_dogsurvey.xhtml

我已经能够使用 XSLTForms 测试这个表单并且它运行得非常好,但是当我尝试通过 Orbeon 运行它时,没有任何问题文本出现,而且它甚至不存在于呈现给用户的 HTML 源代码中,如此处所示:https ://gist.github.com/3850705#file_orbeon_source.html

所以,Orbeon 正在对原始形式进行某种翻译(这是意料之中的),我猜,根据他们的例子,它根据一些语言信息选择文本,但是,对于我的一生,我可以' t 弄清楚如何让 xf:label 文本出现在表单上。

任何人都可以帮忙吗?

4

1 回答 1

2

您可能想在orbeon.log运行表单时查看一下。我已经看到以下两个问题:

  1. 当我试图在这里运行它时,我首先遇到错误是因为xf:bind这样的:

    <xf:bind id="bindThen-DogSurvey_IF_2"
             nodeset="//rml:if[@id='DogSurvey_IF_2']/rml:then"
             relevant="//rml:response[@id='DogSurvey_QC_30'] = '1'"
             readonly="not(//rml:response[@id='DogSurvey_QC_30'] = '1')"/>
    

    如果元素不包含数字,例如因为它是空的,则该表达式将无法计算,因为 XPath 引擎会尝试将空字符串转换为数字。因此,除非您绝对确定该值将始终是一个数字(这里似乎不是这种情况),否则编写 更安全… = '1',从而进行字符串比较。如果你真的想在整数之间进行比较,你可以写//rml:response[@id='DogSurvey_QC_30']/(. castable as xs:integer and . = 1).

  2. 在更改上面#1 的代码后,使用最新的代码,我也得到了一个异常,看起来像一个错误,所以我填写了一个错误报告,但如果你使用的是 3.9 版本,你可能不会遇到这个问题。

于 2012-10-08T23:45:25.253 回答