[xquery-talk] Recursion problem

David Carlisle davidc at nag.co.uk
Fri Sep 7 11:53:21 PDT 2007

You show the definition of one function tns:getCustomer but not any of
the others that are called. In particular is ns32:getCustomer the same
function as tns:getCustomer (that is, have you bound the same namespace
to two prefixes?)

> When I call this function it actually makes n calls to the functions
> getCustomer and getAddress, 

tns:getCustomer is defined but not called at all (in the code shown)
for each call of tns:getCustomer  ns32:getCustomer is called once (in
the first let) but as the definition of  ns32:getCustomer isn't shown
it's impossible to comment on what function calls may result from
executing that. 

Similarly ns7:getAddress is only called once, but if its definition is
recursive that call may result in further calls to the function, it's
not possible to say.

Your code seems to be far more verbose than needed which makes it a bit
hard to follow, for example

 for $Person in $resultCustomer/ns28:Person
                return $Person

is the same thing as



  for $resultAddress in $AddAddresses
                    where $resultAddress/ns29:addressId =


$AddAddresses[ns29:addressId = $searchCustomer/ns30:addressId]


The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. 

More information about the talk mailing list