Vering
Vering

Reputation: 919

Saxon HE and XQuery: Unexpected token "<eof>"

I copy paste this example from http://www.w3schools.com/xquery/xquery_functions.asp (though I added the namespace declaration):

declare namespace local="local";
declare function local:minPrice($p as xs:decimal?,$d as xs:decimal?) as
xs:decimal? {
    let $disc := ($p * $d) div 100
    return ($p - $disc)
};

But when I try to run it, the SAXON output is:

Error on line 6 column 1 of newq.xq:
XPST0003 XQuery syntax error near #...v 100 return ($p - $disc) };#:
Unexpected token "<eof>" in path expression
Static error(s) in query

Anyone idea? Bug in SAXON, or is it using another syntax?

Upvotes: 0

Views: 1691

Answers (1)

Daniel Haley
Daniel Haley

Reputation: 52858

Definitely not a Saxon bug. The reason for the error is the only thing in your XQuery is a function declaration; there is no expression. You're only allowed to do this if you declare it as a module.

Otherwise you'll actually have to do something in the XQuery...

declare namespace local="local";

declare function local:minPrice($p as xs:decimal?, $d as xs:decimal?) as xs:decimal? {
    let $disc := ($p * $d) div 100
    return ($p - $disc)
};

(:Do something...:)
local:minPrice(10,10)

Results of running this XQuery (using Saxon 9):

9

Upvotes: 3

Related Questions