Saxon HE 和 XQuery:意外的标记“<eof>”
Saxon HE and XQuery: Unexpected token "<eof>"
我从 http://www.w3schools.com/xquery/xquery_functions.asp 复制粘贴这个例子(尽管我添加了命名空间声明):
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)
};
但是当我尝试 运行 它时,SAXON 输出是:
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
有人知道吗? SAXON 中的错误,还是使用了其他语法?
绝对不是 Saxon bug。错误的原因是您的 XQuery 中唯一的东西是函数声明;没有表情。仅当您将其声明为模块时才允许执行此操作。
否则您实际上必须在 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)
此 XQuery(使用 Saxon 9)的 运行 结果:
9
我从 http://www.w3schools.com/xquery/xquery_functions.asp 复制粘贴这个例子(尽管我添加了命名空间声明):
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)
};
但是当我尝试 运行 它时,SAXON 输出是:
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
有人知道吗? SAXON 中的错误,还是使用了其他语法?
绝对不是 Saxon bug。错误的原因是您的 XQuery 中唯一的东西是函数声明;没有表情。仅当您将其声明为模块时才允许执行此操作。
否则您实际上必须在 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)
此 XQuery(使用 Saxon 9)的 运行 结果:
9