[Home] [By Thread] [By Date] [Recent Entries]


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


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member