como usar se mais na atribuição xquery

Estou tentando usar uma condição if para atribuir um valor a uma variável em um xquery. Não sei ao certo como fazer isso.

Isto é o que eu tentei:

declare namespace libx='http://libx.org/xml/libx2';
declare namespace atom='http://www.w3.org/2005/Atom';
declare variable $entry_type as xs:string external;
let $libx_node :=
    if ($entry_type = 'package' or 'libapp') then
      {element {fn:concat("libx:", $entry_type)} {()} }
    else if ($entry_type = 'module') then
      '<libx:module>
        <libx:body>{$module_body}</libx:body>
      </libx:module>'

Este código gera um erro de expressão [XPST0003] Incomplete 'if'. Alguém pode me ajudar a consertar isso?

Além disso, alguém pode sugerir alguns bons tutoriais para aprender xqueries.

Obrigado Sony

questionAnswers(1)

yourAnswerToTheQuestion