我正在尝试创建一个xquery表达式,只有在条件为真时才插入一些新节点,如果条件为false则返回错误。我的州的简化版本是:
let $a := [...]
return
if($a/@something != "true") then (
insert node (
element {'Foobar'} { }
) into $a/somenode
) else (
)
我的问题:无论何时将<Error/>
之类的内容放入else中我都会收到错误“[XUST0001]在此上下文中不允许更新表达式”。
/ e:好的......如果我理解正确的话我不能更新表达式和返回值....所以我必须找到另一种方式。
答案 0 :(得分:3)
您可以使用fn:error()来引发错误,或使用()不执行任何操作。不幸的是,XQuery Update不允许你做你想做的事情 - 也许它将在未来版本中修复。