【发布时间】:2017-12-20 16:00:02
【问题描述】:
我在我的 OSB 项目中使用 Xquery 映射。下面是我正在使用的示例代码,它会抛出错误
let $unitofmeasure :=
if (data($ItemMaster/ns1:Item/ns1:dcunitofmeasure)= 1) then
'CS'
else if (data($ItemMaster/ns1:Item/ns1:dcunitofmeasure) = 2 or
data($ItemMaster/ns1:Item/ns1:dcunitofmeasure) = 3 ) then
'EA'
else if (data($ItemMaster/ns1:Item/ns1:corpwarehouseunitofmeasure) = 2 or
data($ItemMaster/ns1:Item/ns1:corpwarehouseunitofmeasure) = 3 ) then
'EA'
else
'CS'
稍后我使用上面定义的变量映射到目标节点 BaseStorageUOM(String)
{
if ($unitofmeasure != '') then
(
<BaseStorageUOM>{xs:string($unitofmeasure)}</BaseStorageUOM>
)
else
(
<BaseStorageUOM>CS</BaseStorageUOM>
)
}
当我运行它时,它会抛出执行 XQuery 转换的错误:
{http://www.w3.org/2005/xqt-errors}FORG0001:“”:强制转换/构造函数的值无效:{http://www.w3.org/2001/XMLSchema}double:错误:double:无效的 double 值:
我无法弄清楚代码的问题。
【问题讨论】:
标签: xslt xquery osb oracle-service-bus oracle-soa