Orbeon Forms 2019.2自定义XPath函数报错,请求排查问题
Orbeon Forms 2019.2自定义XPath函数问题排查
你在Orbeon Forms 2019.2中确实可以通过XForms的<xf:function>实现自定义XPath函数,你的代码存在几个关键错误,导致函数无法被识别:
1. 命名空间声明不完整
你给出的命名空间声明末尾缺少闭合引号和尖括号,正确写法应为:
xmlns:my="http://us/ny/state/otda/ddd/leaf/my"
这个错误会导致命名空间无法被正确解析,函数的命名空间URI不匹配,自然找不到对应的函数。
2. <xf:function>放置位置错误
<xf:function>必须定义在<xf:model>内部,Orbeon只会识别模型内注册的自定义函数,直接放在根元素下的函数不会被加载到XPath上下文。
3. <xf:output>属性使用错误
<xf:output>绑定计算值应该用value属性,ref属性用于绑定XML节点,而非直接的函数计算结果。
此外,concat()本身返回字符串类型,无需额外用string()包裹。
修正后的完整示例代码
<xf:model id="main" xmlns:my="http://us/ny/state/otda/ddd/leaf/my"> <xf:function signature="my:strConcat($p as xs:string*, $q as xs:string*) as xs:string"> <result value="concat($p, $q)"/> </xf:function> </xf:model> <xf:output value="my:strConcat('one','two')" class="lf_inlineOutput" model="main"> <xf:label>strConcat:</xf:label> </xf:output>
Orbeon Forms 2019.2完全支持XForms 1.1的自定义函数特性,修正上述错误后即可正常运行。
内容的提问来源于stack exchange,提问作者Francis Parsons
相关产品推荐
相关产品推荐

