|
[XQuery Talk Mailing List Archive Home] [By Date] [By Thread] [By Subject] [By Author] [Recent Entries] [Reply To This Message] problem with loopsMichael Kay mhk at mhk.me.ukWed Jan 4 09:24:01 PST 2006
>
> > declare function lcl:caller()
> > {
> > let $QV1 := request:request-parameter("val1","")
> > let $count:= 0
> > let $QV1:= lcl:tracer($QV1)
> >
> > for $d in /maps/map
> > let $k:= lcl:rend($QV1)
> > let $QV2:= $QV1
> > let $QV1:= lcl:tracer($k)
> > return $QV2
> > };
>
> Your problem is that $QV1 is not "overwritten", you can't re-declare
> variables in XQuery. Meaning: the first $QV1 is a completely different
> variable than the second
Some of us argued long and hard that this should be a syntax error (that is,
that you should not be able to declare two variables with the same name),
but we lost the case unfortunately. It's a shame, because even in a language
like Java that does allow variable assignments, using the same name for two
different variables is almost invariably a strong indicator of a programming
error. We've become very familiar over the years with XSLT beginners
attempting to write code like the above: in XSLT 1.0 this gives you a syntax
error, but sadly in 2.0 this is no longer the case.
Michael Kay
|
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
|






