【问题标题】:Saxon HE and XQuery: Unexpected token "<eof>"Saxon HE 和 XQuery:意外标记“<eof>”
【发布时间】:2015-04-30 12:50:21
【问题描述】:

我从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 中的错误,还是使用其他语法?

【问题讨论】:

    标签: xquery eof saxon


    【解决方案1】:

    绝对不是撒克逊虫。错误的原因是 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
    

    【讨论】:

    • 我借此机会改进了这个案例的错误信息。
    猜你喜欢
    • 2019-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-10
    • 1970-01-01
    • 1970-01-01
    • 2014-11-04
    • 1970-01-01
    相关资源
    最近更新 更多