【问题标题】:Marklogic undefined function fn:string-pad()Marklogic 未定义函数 fn:string-pad()
【发布时间】:2019-01-18 14:12:37
【问题描述】:

我尝试使用 fn:string-pad() xquery 函数它抛出错误未定义函数,使用 Marklogic 版本 9

https://docs.marklogic.com/fn:string-pad

【问题讨论】:

    标签: xquery marklogic marklogic-9


    【解决方案1】:

    fn:string-pad() 仅在 XQuery 的早期草案中定义,后来被删除。 0.9-ml 方言支持该早期(2003 年 5 月)草案。如果您在这种方言中有 XQuery 模块,那么您真的应该将它们迁移到符合严格标准的方言 1.0 或扩展版本 1.0-ml。我会推荐后者,除非你有特殊的理由不这样做。在某些时候,对0.9-ml 的支持将被删除。同时,您可以在模块顶部添加显式版本声明以使用旧语法(因此可以使用此过时函数):xquery version "0.9-ml"

    特别是关于这个函数:它被删除了,因为它写起来很简单,即使有所有的错误检查:

    declare function local:string-pad($pad-string as xs:string?, $pad-count as xs:integer) as xs:string?
    {
      if (empty($pad-string)) then ()
      else if ($pad-count lt 0) then error((),"Invalid pad count")
      else if ($pad-count eq 0) then ""
      else string-join(for $i in 1 to $pad-count return $pad-string,"")
    };
    

    【讨论】:

    • 你也可以使用functx:repeat-string。不完全相同,但可能足够接近。该库中有很多有用的函数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-01
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 2018-12-20
    相关资源
    最近更新 更多