2010-11-15 7 views
1

je reçois cette erreur de Saxon,XQuery - le rendement prévu n'a été trouvée Laissez

Nom du moteur: Saxon-PE XQuery 9.2.1.2 Gravité: fatale Description: XQuery Erreur de syntaxe dans # ... (: retour :) soit $ #: attendu « retour », a trouvé « laissé » emplacement de départ: 776: 0

sur cette fonction

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 ("") 
}; 

Je suis nouveau avec XQuery et j'ai passé beaucoup sur cette erreur sans obtenir un Solution. Vars ont été masqués intentionnellement mais à partir du message d'erreur semble quelque chose lié au flux de la fonction.

Toute aide est appréciée.

Merci à l'avance Alessandro

Répondre

1

Saxon déclare avoir seulement "un soutien partiel de XQuery 1.1". Par conséquent, je suppose, il prend en charge l'ancien format FLWOR dans lequel vous ne pouvez pas utiliser let après where. Essayez simplement d'échanger ces clauses:

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) 
Questions connexes