|
[XQuery Talk Mailing List Archive Home] [By Date] [By Thread] [By Subject] [By Author] [Recent Entries] [Reply To This Message] Setting global variablesJohn Snelson john.snelson at oracle.comWed Oct 31 09:05:57 PST 2007
Hi Ronald, There is no way to do what you're asking, since XQuery is a functional language and variable values cannot be changed. What's wrong with something like this: declare variable $foo:listOfNames := fn:doc("mydoc.xml")//Name; declare function foo:firstFunctionCalled(...) { ... }; declare function foo:functionCalled MuchLater(...) { ... if ($name = $foo:listOfNames) ... }; John Ronald Bourret wrote: > Is there any way to set a global variable from inside a function? (By > "global variable", I mean a variable declared in the prolog of a > function library.) > > Basically, I'd like to read a document and save a subset of the document > in a global variable, then refer to it later when doing lookups. For > example, I'd like to do something like the following: > > declare variable $foo:listOfNames external; > > declare function foo:firstFunctionCalled(...) > { > let $foo:listOfNames := fn:doc("mydoc.xml")//Name > ... > }; > > declare function foo:functionCalledMuchLater(...) > { > ... > if ($name = $foo:listOfNames) > ... > }; > > Currently, I pass such information from function to function until it is > finally used. While this works (and some would argue is the correct > style), it has the following drawbacks: > > 1) It is difficult to follow the information through the chain of > functions. > > 2) It can be confusing to read the intermediate functions, as these > never really use the information. > > 3) It is brittle when refactoring the intermediate functions. Because > the information is not really used -- it's just passed along -- it is > easy to accidentally drop. > > Thanks, > > -- Ron > > _______________________________________________ > http://x-query.com/mailman/listinfo/talk > http://x-query.com/mailman/listinfo/talk -- John Snelson, Oracle Corporation Berkeley DB XML: http://www.oracle.com/database/berkeley-db/xml XQilla: http://xqilla.sourceforge.net
|
Purchase Stylus Studio Online Today!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|






