Марклогическая неопределенная функция fn: string-pad () - PullRequest
0 голосов
/ 18 января 2019

Я пытался использовать функцию fn: string-pad () xquery, она выдает ошибку неопределенной функции, используя Marklogic версии 9

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

1 Ответ

0 голосов
/ 18 января 2019

fn:string-pad() был определен только в ранней версии XQuery и был позже удален. Этот ранний (май 2003 года) черновик был поддержан на диалекте 0.9-ml. Если у вас есть модули 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,"")
};
...