[
Lists Home |
Date Index |
Thread Index
]
At 03:00 PM 7/3/2002 -0700, Dare Obasanjo wrote:
> Mike Champion wrote:
> > I can think of lots of scenarios where I would want my
> > get-total() function to
> > process the "merely well-formed elements whose name happens
> > to be 'invoice'".
> >
>
>I agree. I am both dissappointed and stunned that such functionality
>does not exist in XQuery.
Since at least two people seem to think this is true, let me show how you
would do this in XQuery:
define function get-total( element $i )
returns xs:decimal
{
sum( $i//item/price )
}
I didn't say 'element invoice' in the parameter declaration, because that
requires that the element conform to the globally defined element named
'invoice'. If I want to make sure that the element has the appropriate
name, I can test the name:
define function get-total( element $i )
returns xs:decimal
{
if (local-name( $i ) = 'invoice')
then sum( $i//item/price )
else <error>Not an invoice!!!</error>
}
We will have better ways of handling errors in the next Working Drafts.
Jonathan
|