[xquery-talk] flowrrr - how to structure a function?

Robert Koberg rob at koberg.com
Tue Oct 17 07:16:24 PDT 2006


Hi, (I am a newbie)

Is it appropriate (necessary?) to nest return statements.

Is there a better way to write the function below? I only want to get 
the $db-ref string and $db-instance nodeset 'if the user is valid'.

-------------------------------
declare function local:enter-project() as element()? {
   let $is-valid := local:is-valid-user-for-group()
   return
     if ($is-valid) then
       let $db-ref := request:get-parameter("db-ref", ""),
           $db-instance := doc(databases.xml")/*/instance[@id=$db-ref]
       return
         (
           session:set-attribute("rest-db-uri", 
fn:string($db-instance/rest-uri)),
           session:set-attribute("xmlprc-db-uri", 
fn:string($db-instance/xmlprc-uri)),
           session:set-attribute("webdav-db-uri", 
fn:string($db-instance/webdav-uri)),
           session:set-attribute($project-key, $group-name),
           response:redirect-to(xs:anyURI("./project/"))
         )
     else
       <p class="warn">Could not find credentials to let you enter the 
project.</p>
};

thanks,
-Rob





More information about the talk mailing list