2010-06-19 16 views
1

J'essaie de créer une expression xquery qui insère de nouveaux nœuds uniquement si une condition est vraie et renvoie une erreur si la condition est fausse. Une version simplyfied de mon état est:XQuery qui se met à jour si quelque chose est vrai et renvoie une erreur

let $a := [...] 

return 
    if($a/@something != "true") then (
    insert node (
      element {'Foobar'} { } 
     ) into $a/somenode 
) else ( 

) 

Mon problème: chaque fois que se mettre quelque chose comme <Error/> dans l'autre je reçois une erreur « [XUST0001] Aucune expression de mise à jour a permis dans ce contexte ».

/e: Ok ... si je comprends bien, je ne peux pas avoir d'expressions de mise à jour ET une valeur de retour .... donc je dois trouver un autre moyen.

Répondre

3

Vous pouvez utiliser fn: error() pour augmenter l'erreur, ou utiliser() pour ne rien faire. Malheureusement, la mise à jour de XQuery ne vous permet pas de faire ce que vous voulez - peut-être que cela sera corrigé dans une future version.