Marklogic 未定义函数 fn:string-pad()
Marklogic undefined function fn:string-pad()
我尝试使用 fn:string-pad() xquery 函数它抛出错误未定义函数,使用 Marklogic 版本 9
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,"")
};
我尝试使用 fn:string-pad() xquery 函数它抛出错误未定义函数,使用 Marklogic 版本 9
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,"")
};