在ORBEON 4.1中,Castable在XPATH中不起作用

时间:2013-04-19 14:34:12

标签: xpath orbeon

自从我们从ORBEON 3.9更新到ORBEON 4.1后,

. castable as xs:date不起作用。在xforms:output标记中(在ref和value属性中)。

关联字段使用xsd文件定义为xs:date,字段本身具有值''(空字符串)。

例外是:

org.orbeon.oxf.common.ValidationException: line 1136 of file:///D:/oracle/wls10.3.3/domains/gacr/ (evaluating XPath expression: expression='datumUkonceni castable as xs:date'): null file:///D:/oracle/wls10.3.3/domains/gacr/, line 1136, column -1: null
at org.orbeon.oxf.common.ValidationException.wrapException(ValidationException.java:126)
at org.orbeon.oxf.util.XPath$.handleXPathException(XPath.scala:170)
at org.orbeon.oxf.util.XPathCache$.withEvaluation(XPathCache.scala:516)
at org.orbeon.oxf.util.XPathCache$.evaluateAsString(XPathCache.scala:312)
at org.orbeon.oxf.xforms.control.ControlXPathSupport$class.evaluateAsString(ControlXPathSupport.scala:86)
at org.orbeon.oxf.xforms.control.XFormsControl.evaluateAsString(XFormsControl.scala:47)
at org.orbeon.oxf.xforms.control.controls.XFormsOutputControl.evaluateValue(XFormsOutputControl.scala:75)
at org.orbeon.oxf.xforms.control.XFormsValueControl$class.evaluateImpl(XFormsValueControl.scala:80)
at org.orbeon.oxf.xforms.control.controls.XFormsOutputControl.evaluateImpl(XFormsOutputControl.scala:58)
at org.orbeon.oxf.xforms.control.XFormsControl.evaluate(XFormsControl.scala:204)
at org.orbeon.oxf.xforms.control.ControlBindingSupport$class.setBindingContext(ControlBindingSupport.scala:102)
at org.orbeon.oxf.xforms.control.XFormsControl.setBindingContext(XFormsControl.scala:47)
at org.orbeon.oxf.xforms.control.ControlBindingSupport$class.evaluateBindingAndValues(ControlBindingSupport.scala:59)
at org.orbeon.oxf.xforms.control.XFormsControl.evaluateBindingAndValues(XFormsControl.scala:47)
.... stack continued

当我在properties-local.xml <property as="xs:string" name="oxf.xforms.format.output.date" value="if (. castable as xs:date) then format-date(xs:date(.), '[D01].[M01].[Y0001]', xxforms:lang(), (), ()) else ."/>中使用此构造时,则会按预期处理castable ......

2 个答案:

答案 0 :(得分:0)

使用4.0,在xxf中使用xxforms前缀,而不是properties-local.xml,这可以解决您的问题。

通常,4.0中的XML文件已更改为使用较短的前缀,例如xxf而不是xxformsxf而不是xforms,以及{{1}而不是xh。在大多数情况下,此更改是向后兼容的,因为您在自己的文件中执行命名空间映射的前缀,因此可以自由使用您喜欢的任何前缀,但也有例外。

答案 1 :(得分:0)

ORFORMON 3.9中的xforms:output标记的ref和value属性几乎相同,并且ref atribute中的xpath表达式被执行。在ORBEON 4.1中,ref属性必须引用元素 - xpath表达式可转换为抛出异常..