[xquery-talk] Elegant form of testing for () and ''
David Lee
dlee at calldei.com
Fri Mar 4 12:10:43 PST 2011
I run into this problem frequently and it tends to bite me in production
months later, not in unit testing.
Suppose I have a string which rarely can be () but more often ''
I've used this test
declare function local:getname( $e ) as xs:string
{
let $name := $e/name/string()
return
if( $name ne '' ) then $name else "<untitled>"
}
But a few months later it ends up in 1 case being () and this function
crashes because () cant be coerced to xs:string
DUH
So I augment it to
if( exists($name) and $name ne '' ) then $name else "<untitled>"
But this pattern seems so common, is there a more elegant or concise way of
testing for both () and '' ?
( I have the same problem with NUL values in SQL world , and null values in
java ... but thats another problem ... xquery is (N+1)G so it should be
easier right ?
----------------------------------------
David A. Lee
<mailto:dlee at calldei.com> dlee at calldei.com
<http://www.xmlsh.org> http://www.xmlsh.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://x-query.com/pipermail/talk/attachments/20110304/08ca3238/attachment.htm
More information about the talk
mailing list