我从Saxon那里得到了这个错误,
引擎名称:Saxon-PE XQuery 9.2.1.2 严重程度:致命 说明:#...(:return :)中的XQuery语法错误让$#:期望“返回”,找到“让” 开始地点:776:0
关于此功能
declare function local:set-internet-type($req1 as element(ns0:req), $cate as element()) as xs:string {
if(count( for $itm in $req/*:cust/*:inter/*:itm
where $789/*:product/*:030/*:specs/*:name/text()= data($11/INTERNET)
and $22/*:action/text()="CHANGE"
return $33)>0) then
(
for $44 in $55
where $tt/*:name/text()= data($t/INTERNET)
and $u/*:action/text()="CHANGE"
(:return <fake/>:)
let $z:= $a/*:product/*:c/*:e[1]
return concat($x,'>',$y)
) else ("")
};
我是xquery的新手,我在没有得到解决方案的情况下花了很多时间来处理这个错误。故意掩盖了Vars,但是从错误消息看来似乎与功能流有关。
感谢任何帮助。
提前致谢 的Alessandro
答案 0 :(得分:1)
Saxon只宣称“部分支持XQuery 1.1”。因此,我猜,它支持旧的FLWOR格式,在let
之后您无法使用where
。试着交换这些条款:
for $44 in $55
let $z:= $a/*:product/*:c/*:e[1]
where $tt/*:name/text()= data($t/INTERNET)
and $u/*:action/text()="CHANGE"
return concat($x,'>',$y)