xq-lsp 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (598) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.md +119 -12
  3. package/builtins/builtins-array.xq +34 -9
  4. package/builtins/builtins-fn.xq +492 -101
  5. package/builtins/builtins-map.xq +6 -2
  6. package/builtins/builtins-math.xq +1 -1
  7. package/builtins/builtins-xs.xq +63 -0
  8. package/demo/index.html +151 -0
  9. package/demo/main.ts +307 -0
  10. package/demo/package-lock.json +1301 -0
  11. package/demo/package.json +20 -0
  12. package/demo/vite.config.ts +15 -0
  13. package/dist/analyzer.d.ts +28 -0
  14. package/dist/analyzer.js +128 -40
  15. package/dist/ast-nodes.d.ts +90 -0
  16. package/dist/ast-nodes.js +305 -0
  17. package/dist/builtins.js +3 -0
  18. package/dist/completion-core.d.ts +17 -0
  19. package/dist/completion-core.js +113 -0
  20. package/dist/completion.d.ts +3 -8
  21. package/dist/completion.js +10 -150
  22. package/dist/config.d.ts +13 -0
  23. package/dist/config.js +81 -0
  24. package/dist/context-item-diagnostics.d.ts +19 -0
  25. package/dist/context-item-diagnostics.js +133 -0
  26. package/dist/definition.d.ts +4 -0
  27. package/dist/definition.js +67 -0
  28. package/dist/features.d.ts +1 -2
  29. package/dist/features.js +81 -112
  30. package/dist/functioncall-diagnostics.d.ts +12 -0
  31. package/dist/functioncall-diagnostics.js +87 -0
  32. package/dist/hover-core.d.ts +39 -0
  33. package/dist/hover-core.js +87 -0
  34. package/dist/namespace-diagnostics.d.ts +33 -0
  35. package/dist/namespace-diagnostics.js +108 -0
  36. package/dist/qt4-worker.d.ts +18 -0
  37. package/dist/qt4-worker.js +46 -0
  38. package/dist/runtimes.d.ts +2 -0
  39. package/dist/runtimes.js +67 -0
  40. package/dist/server.js +254 -50
  41. package/dist/test-utils.d.ts +3 -0
  42. package/dist/test-utils.js +16 -0
  43. package/dist/typechecker.d.ts +7 -0
  44. package/dist/typechecker.js +388 -0
  45. package/dist/types.d.ts +30 -6
  46. package/dist/types.js +6 -0
  47. package/dist/unused-diagnostics.d.ts +19 -0
  48. package/dist/unused-diagnostics.js +202 -0
  49. package/firebase.json +12 -0
  50. package/package.json +31 -27
  51. package/release-please-config.json +16 -0
  52. package/scripts/generate-existdb.ts +890 -0
  53. package/src/analyzer.test.ts +163 -0
  54. package/src/analyzer.ts +139 -41
  55. package/src/ast-nodes.ts +348 -0
  56. package/src/builtins.test.ts +32 -0
  57. package/src/builtins.ts +3 -0
  58. package/src/completion-core.ts +139 -0
  59. package/src/completion.test.ts +152 -0
  60. package/src/completion.ts +11 -173
  61. package/src/config.ts +90 -0
  62. package/src/context-item-diagnostics.test.ts +182 -0
  63. package/src/context-item-diagnostics.ts +143 -0
  64. package/src/definition.ts +82 -0
  65. package/src/features.test.ts +110 -0
  66. package/src/features.ts +87 -128
  67. package/src/functioncall-diagnostics.test.ts +169 -0
  68. package/src/functioncall-diagnostics.ts +110 -0
  69. package/src/hover-core.ts +114 -0
  70. package/src/lsp-config.test.ts +183 -0
  71. package/src/namespace-diagnostics.test.ts +162 -0
  72. package/src/namespace-diagnostics.ts +133 -0
  73. package/src/qt4-diagnostic.test.ts +271 -0
  74. package/src/qt4-snaps/app-CatalogCheck.snap +1 -0
  75. package/src/qt4-snaps/app-Demos.snap +18 -0
  76. package/src/qt4-snaps/app-Duplicates.snap +1 -0
  77. package/src/qt4-snaps/app-FunctxFn.snap +162 -0
  78. package/src/qt4-snaps/app-FunctxFunctx.snap +714 -0
  79. package/src/qt4-snaps/app-UseCaseCompoundValues.snap +1 -0
  80. package/src/qt4-snaps/app-UseCaseJSON.snap +1 -0
  81. package/src/qt4-snaps/app-UseCaseNLP.snap +1 -0
  82. package/src/qt4-snaps/app-UseCaseNS.snap +1 -0
  83. package/src/qt4-snaps/app-UseCaseR.snap +1 -0
  84. package/src/qt4-snaps/app-UseCaseR31.snap +1 -0
  85. package/src/qt4-snaps/app-UseCaseSEQ.snap +1 -0
  86. package/src/qt4-snaps/app-UseCaseSGML.snap +1 -0
  87. package/src/qt4-snaps/app-UseCaseSTRING.snap +1 -0
  88. package/src/qt4-snaps/app-UseCaseTREE.snap +1 -0
  89. package/src/qt4-snaps/app-UseCaseXMP.snap +1 -0
  90. package/src/qt4-snaps/app-Walmsley.snap +1 -0
  91. package/src/qt4-snaps/app-XMark.snap +10 -0
  92. package/src/qt4-snaps/array-append.snap +1 -0
  93. package/src/qt4-snaps/array-filter.snap +10 -0
  94. package/src/qt4-snaps/array-flatten.snap +1 -0
  95. package/src/qt4-snaps/array-fold-left.snap +1 -0
  96. package/src/qt4-snaps/array-fold-right.snap +1 -0
  97. package/src/qt4-snaps/array-for-each-pair.snap +1 -0
  98. package/src/qt4-snaps/array-for-each.snap +1 -0
  99. package/src/qt4-snaps/array-get.snap +1 -0
  100. package/src/qt4-snaps/array-head.snap +1 -0
  101. package/src/qt4-snaps/array-insert-before.snap +1 -0
  102. package/src/qt4-snaps/array-join.snap +1 -0
  103. package/src/qt4-snaps/array-put.snap +1 -0
  104. package/src/qt4-snaps/array-remove.snap +1 -0
  105. package/src/qt4-snaps/array-reverse.snap +1 -0
  106. package/src/qt4-snaps/array-size.snap +1 -0
  107. package/src/qt4-snaps/array-sort.snap +1 -0
  108. package/src/qt4-snaps/array-subarray.snap +1 -0
  109. package/src/qt4-snaps/array-tail.snap +1 -0
  110. package/src/qt4-snaps/bin-and.snap +1 -0
  111. package/src/qt4-snaps/bin-bin.snap +1 -0
  112. package/src/qt4-snaps/bin-decode-string.snap +1 -0
  113. package/src/qt4-snaps/bin-encode-string.snap +1 -0
  114. package/src/qt4-snaps/bin-find.snap +1 -0
  115. package/src/qt4-snaps/bin-from-octets.snap +1 -0
  116. package/src/qt4-snaps/bin-hex.snap +1 -0
  117. package/src/qt4-snaps/bin-insert-before.snap +1 -0
  118. package/src/qt4-snaps/bin-join.snap +1 -0
  119. package/src/qt4-snaps/bin-length.snap +1 -0
  120. package/src/qt4-snaps/bin-not.snap +1 -0
  121. package/src/qt4-snaps/bin-octal.snap +1 -0
  122. package/src/qt4-snaps/bin-or.snap +1 -0
  123. package/src/qt4-snaps/bin-pack-double.snap +1 -0
  124. package/src/qt4-snaps/bin-pack-float.snap +1 -0
  125. package/src/qt4-snaps/bin-pack-integer.snap +1 -0
  126. package/src/qt4-snaps/bin-pad-left.snap +1 -0
  127. package/src/qt4-snaps/bin-pad-right.snap +1 -0
  128. package/src/qt4-snaps/bin-part.snap +1 -0
  129. package/src/qt4-snaps/bin-shift.snap +1 -0
  130. package/src/qt4-snaps/bin-to-octets.snap +1 -0
  131. package/src/qt4-snaps/bin-unpack-double.snap +1 -0
  132. package/src/qt4-snaps/bin-unpack-float.snap +1 -0
  133. package/src/qt4-snaps/bin-unpack-integer.snap +1 -0
  134. package/src/qt4-snaps/bin-unpack-unsigned-integer.snap +1 -0
  135. package/src/qt4-snaps/bin-xor.snap +1 -0
  136. package/src/qt4-snaps/file-file.snap +1 -0
  137. package/src/qt4-snaps/fn-QName.snap +1 -0
  138. package/src/qt4-snaps/fn-abs.snap +1 -0
  139. package/src/qt4-snaps/fn-adjust-date-to-timezone.snap +1 -0
  140. package/src/qt4-snaps/fn-adjust-dateTime-to-timezone.snap +1 -0
  141. package/src/qt4-snaps/fn-adjust-time-to-timezone.snap +1 -0
  142. package/src/qt4-snaps/fn-analyze-string.snap +1 -0
  143. package/src/qt4-snaps/fn-apply.snap +1 -0
  144. package/src/qt4-snaps/fn-available-environment-variables.snap +1 -0
  145. package/src/qt4-snaps/fn-avg.snap +1 -0
  146. package/src/qt4-snaps/fn-base-uri.snap +1 -0
  147. package/src/qt4-snaps/fn-boolean.snap +1 -0
  148. package/src/qt4-snaps/fn-ceiling.snap +1 -0
  149. package/src/qt4-snaps/fn-codepoint-equal.snap +1 -0
  150. package/src/qt4-snaps/fn-codepoints-to-string.snap +1 -0
  151. package/src/qt4-snaps/fn-collation-key.snap +1 -0
  152. package/src/qt4-snaps/fn-collection.snap +1 -0
  153. package/src/qt4-snaps/fn-compare.snap +1 -0
  154. package/src/qt4-snaps/fn-concat.snap +1 -0
  155. package/src/qt4-snaps/fn-contains-token.snap +1 -0
  156. package/src/qt4-snaps/fn-contains.snap +1 -0
  157. package/src/qt4-snaps/fn-count.snap +1 -0
  158. package/src/qt4-snaps/fn-current-date.snap +1 -0
  159. package/src/qt4-snaps/fn-current-dateTime.snap +1 -0
  160. package/src/qt4-snaps/fn-current-time.snap +1 -0
  161. package/src/qt4-snaps/fn-data.snap +8 -0
  162. package/src/qt4-snaps/fn-dateTime.snap +1 -0
  163. package/src/qt4-snaps/fn-day-from-date.snap +1 -0
  164. package/src/qt4-snaps/fn-day-from-dateTime.snap +1 -0
  165. package/src/qt4-snaps/fn-days-from-duration.snap +1 -0
  166. package/src/qt4-snaps/fn-deep-equal.snap +1 -0
  167. package/src/qt4-snaps/fn-default-collation.snap +1 -0
  168. package/src/qt4-snaps/fn-default-language.snap +1 -0
  169. package/src/qt4-snaps/fn-distinct-values.snap +1 -0
  170. package/src/qt4-snaps/fn-doc-available.snap +1 -0
  171. package/src/qt4-snaps/fn-doc.snap +1 -0
  172. package/src/qt4-snaps/fn-document-uri.snap +8 -0
  173. package/src/qt4-snaps/fn-element-with-id.snap +1 -0
  174. package/src/qt4-snaps/fn-empty.snap +1 -0
  175. package/src/qt4-snaps/fn-encode-for-uri.snap +1 -0
  176. package/src/qt4-snaps/fn-ends-with.snap +1 -0
  177. package/src/qt4-snaps/fn-environment-variable.snap +1 -0
  178. package/src/qt4-snaps/fn-error.snap +128 -0
  179. package/src/qt4-snaps/fn-escape-html-uri.snap +1 -0
  180. package/src/qt4-snaps/fn-exactly-one.snap +1 -0
  181. package/src/qt4-snaps/fn-exists.snap +1 -0
  182. package/src/qt4-snaps/fn-false.snap +1 -0
  183. package/src/qt4-snaps/fn-filter.snap +10 -0
  184. package/src/qt4-snaps/fn-floor.snap +1 -0
  185. package/src/qt4-snaps/fn-fold-left.snap +1 -0
  186. package/src/qt4-snaps/fn-fold-right.snap +1 -0
  187. package/src/qt4-snaps/fn-for-each-pair.snap +10 -0
  188. package/src/qt4-snaps/fn-for-each.snap +10 -0
  189. package/src/qt4-snaps/fn-format-date.snap +26 -0
  190. package/src/qt4-snaps/fn-format-dateTime.snap +1 -0
  191. package/src/qt4-snaps/fn-format-integer.snap +1 -0
  192. package/src/qt4-snaps/fn-format-number.snap +38 -0
  193. package/src/qt4-snaps/fn-format-time.snap +1 -0
  194. package/src/qt4-snaps/fn-function-arity.snap +1 -0
  195. package/src/qt4-snaps/fn-function-lookup.snap +1 -0
  196. package/src/qt4-snaps/fn-function-name.snap +1 -0
  197. package/src/qt4-snaps/fn-generate-id.snap +18 -0
  198. package/src/qt4-snaps/fn-has-children.snap +26 -0
  199. package/src/qt4-snaps/fn-head.snap +1 -0
  200. package/src/qt4-snaps/fn-hours-from-dateTime.snap +1 -0
  201. package/src/qt4-snaps/fn-hours-from-duration.snap +1 -0
  202. package/src/qt4-snaps/fn-hours-from-time.snap +1 -0
  203. package/src/qt4-snaps/fn-id.snap +10 -0
  204. package/src/qt4-snaps/fn-idref.snap +10 -0
  205. package/src/qt4-snaps/fn-implicit-timezone.snap +1 -0
  206. package/src/qt4-snaps/fn-in-scope-prefixes.snap +26 -0
  207. package/src/qt4-snaps/fn-index-of.snap +1 -0
  208. package/src/qt4-snaps/fn-innermost.snap +58 -0
  209. package/src/qt4-snaps/fn-insert-before.snap +1 -0
  210. package/src/qt4-snaps/fn-iri-to-uri.snap +1 -0
  211. package/src/qt4-snaps/fn-json-doc.snap +1 -0
  212. package/src/qt4-snaps/fn-json-to-xml.snap +1 -0
  213. package/src/qt4-snaps/fn-lang.snap +10 -0
  214. package/src/qt4-snaps/fn-last.snap +1 -0
  215. package/src/qt4-snaps/fn-load-xquery-module.snap +1 -0
  216. package/src/qt4-snaps/fn-local-name-from-QName.snap +1 -0
  217. package/src/qt4-snaps/fn-local-name.snap +10 -0
  218. package/src/qt4-snaps/fn-lower-case.snap +1 -0
  219. package/src/qt4-snaps/fn-matches.re.snap +1 -0
  220. package/src/qt4-snaps/fn-matches.snap +1 -0
  221. package/src/qt4-snaps/fn-max.snap +1 -0
  222. package/src/qt4-snaps/fn-min.snap +1 -0
  223. package/src/qt4-snaps/fn-minutes-from-dateTime.snap +1 -0
  224. package/src/qt4-snaps/fn-minutes-from-duration.snap +1 -0
  225. package/src/qt4-snaps/fn-minutes-from-time.snap +1 -0
  226. package/src/qt4-snaps/fn-month-from-date.snap +1 -0
  227. package/src/qt4-snaps/fn-month-from-dateTime.snap +1 -0
  228. package/src/qt4-snaps/fn-months-from-duration.snap +1 -0
  229. package/src/qt4-snaps/fn-name.snap +10 -0
  230. package/src/qt4-snaps/fn-namespace-uri-for-prefix.snap +1 -0
  231. package/src/qt4-snaps/fn-namespace-uri-from-QName.snap +1 -0
  232. package/src/qt4-snaps/fn-namespace-uri.snap +1 -0
  233. package/src/qt4-snaps/fn-nilled.snap +16 -0
  234. package/src/qt4-snaps/fn-node-name.snap +32 -0
  235. package/src/qt4-snaps/fn-normalize-space.snap +1 -0
  236. package/src/qt4-snaps/fn-normalize-unicode.snap +26 -0
  237. package/src/qt4-snaps/fn-not.snap +1 -0
  238. package/src/qt4-snaps/fn-number.snap +1 -0
  239. package/src/qt4-snaps/fn-one-or-more.snap +1 -0
  240. package/src/qt4-snaps/fn-outermost.snap +58 -0
  241. package/src/qt4-snaps/fn-parse-ietf-date.snap +1 -0
  242. package/src/qt4-snaps/fn-parse-json.snap +1 -0
  243. package/src/qt4-snaps/fn-parse-xml-fragment.snap +1 -0
  244. package/src/qt4-snaps/fn-parse-xml.snap +1 -0
  245. package/src/qt4-snaps/fn-path.snap +26 -0
  246. package/src/qt4-snaps/fn-position.snap +1 -0
  247. package/src/qt4-snaps/fn-prefix-from-QName.snap +1 -0
  248. package/src/qt4-snaps/fn-random-number-generator.snap +1 -0
  249. package/src/qt4-snaps/fn-remove.snap +1 -0
  250. package/src/qt4-snaps/fn-replace.snap +330 -0
  251. package/src/qt4-snaps/fn-resolve-QName.snap +1 -0
  252. package/src/qt4-snaps/fn-resolve-uri.snap +1 -0
  253. package/src/qt4-snaps/fn-reverse.snap +1 -0
  254. package/src/qt4-snaps/fn-root.snap +10 -0
  255. package/src/qt4-snaps/fn-round-half-to-even.snap +1 -0
  256. package/src/qt4-snaps/fn-round.snap +8 -0
  257. package/src/qt4-snaps/fn-seconds-from-dateTime.snap +1 -0
  258. package/src/qt4-snaps/fn-seconds-from-duration.snap +1 -0
  259. package/src/qt4-snaps/fn-seconds-from-time.snap +1 -0
  260. package/src/qt4-snaps/fn-serialize.snap +50 -0
  261. package/src/qt4-snaps/fn-sort.snap +1 -0
  262. package/src/qt4-snaps/fn-starts-with.snap +1 -0
  263. package/src/qt4-snaps/fn-static-base-uri.snap +1 -0
  264. package/src/qt4-snaps/fn-string-join.snap +8 -0
  265. package/src/qt4-snaps/fn-string-length.snap +1 -0
  266. package/src/qt4-snaps/fn-string-to-codepoints.snap +1 -0
  267. package/src/qt4-snaps/fn-string.snap +10 -0
  268. package/src/qt4-snaps/fn-subsequence.snap +1 -0
  269. package/src/qt4-snaps/fn-substring-after.snap +1 -0
  270. package/src/qt4-snaps/fn-substring-before.snap +1 -0
  271. package/src/qt4-snaps/fn-substring.snap +1 -0
  272. package/src/qt4-snaps/fn-sum.snap +1 -0
  273. package/src/qt4-snaps/fn-tail.snap +1 -0
  274. package/src/qt4-snaps/fn-timezone-from-date.snap +1 -0
  275. package/src/qt4-snaps/fn-timezone-from-dateTime.snap +1 -0
  276. package/src/qt4-snaps/fn-timezone-from-time.snap +1 -0
  277. package/src/qt4-snaps/fn-tokenize.snap +16 -0
  278. package/src/qt4-snaps/fn-trace.snap +8 -0
  279. package/src/qt4-snaps/fn-transform.snap +1 -0
  280. package/src/qt4-snaps/fn-translate.snap +1 -0
  281. package/src/qt4-snaps/fn-true.snap +1 -0
  282. package/src/qt4-snaps/fn-unordered.snap +1 -0
  283. package/src/qt4-snaps/fn-unparsed-text-available.snap +1 -0
  284. package/src/qt4-snaps/fn-unparsed-text-lines.snap +1 -0
  285. package/src/qt4-snaps/fn-unparsed-text.snap +1 -0
  286. package/src/qt4-snaps/fn-upper-case.snap +1 -0
  287. package/src/qt4-snaps/fn-uri-collection.snap +1 -0
  288. package/src/qt4-snaps/fn-xml-to-json.snap +1 -0
  289. package/src/qt4-snaps/fn-year-from-date.snap +1 -0
  290. package/src/qt4-snaps/fn-year-from-dateTime.snap +1 -0
  291. package/src/qt4-snaps/fn-years-from-duration.snap +1 -0
  292. package/src/qt4-snaps/fn-zero-or-one.snap +1 -0
  293. package/src/qt4-snaps/map-contains.snap +1 -0
  294. package/src/qt4-snaps/map-entry.snap +1 -0
  295. package/src/qt4-snaps/map-find.snap +1 -0
  296. package/src/qt4-snaps/map-for-each.snap +1 -0
  297. package/src/qt4-snaps/map-get.snap +1 -0
  298. package/src/qt4-snaps/map-keys.snap +1 -0
  299. package/src/qt4-snaps/map-merge.snap +1 -0
  300. package/src/qt4-snaps/map-put.snap +1 -0
  301. package/src/qt4-snaps/map-remove.snap +1 -0
  302. package/src/qt4-snaps/map-size.snap +1 -0
  303. package/src/qt4-snaps/math-math-acos.snap +1 -0
  304. package/src/qt4-snaps/math-math-asin.snap +1 -0
  305. package/src/qt4-snaps/math-math-atan.snap +1 -0
  306. package/src/qt4-snaps/math-math-atan2.snap +1 -0
  307. package/src/qt4-snaps/math-math-cos.snap +1 -0
  308. package/src/qt4-snaps/math-math-exp.snap +1 -0
  309. package/src/qt4-snaps/math-math-exp10.snap +1 -0
  310. package/src/qt4-snaps/math-math-log.snap +1 -0
  311. package/src/qt4-snaps/math-math-log10.snap +1 -0
  312. package/src/qt4-snaps/math-math-pi.snap +1 -0
  313. package/src/qt4-snaps/math-math-pow.snap +1 -0
  314. package/src/qt4-snaps/math-math-sin.snap +1 -0
  315. package/src/qt4-snaps/math-math-sqrt.snap +1 -0
  316. package/src/qt4-snaps/math-math-tan.snap +1 -0
  317. package/src/qt4-snaps/misc-AnnexE.snap +1 -0
  318. package/src/qt4-snaps/misc-AppendixA4.snap +1 -0
  319. package/src/qt4-snaps/misc-CombinedErrorCodes.snap +350 -0
  320. package/src/qt4-snaps/misc-ErrorsAndOptimization.snap +1 -0
  321. package/src/qt4-snaps/misc-HigherOrderFunctions.snap +32 -0
  322. package/src/qt4-snaps/misc-JsonTestSuite.snap +1 -0
  323. package/src/qt4-snaps/misc-StaticContext.snap +8 -0
  324. package/src/qt4-snaps/misc-Surrogates.snap +34 -0
  325. package/src/qt4-snaps/misc-UCACollation.snap +1 -0
  326. package/src/qt4-snaps/misc-XMLEdition.snap +22 -0
  327. package/src/qt4-snaps/op-QName-equal.snap +1 -0
  328. package/src/qt4-snaps/op-add-dayTimeDuration-to-date.snap +1 -0
  329. package/src/qt4-snaps/op-add-dayTimeDuration-to-dateTime.snap +1 -0
  330. package/src/qt4-snaps/op-add-dayTimeDuration-to-time.snap +1 -0
  331. package/src/qt4-snaps/op-add-dayTimeDurations.snap +1 -0
  332. package/src/qt4-snaps/op-add-yearMonthDuration-to-date.snap +1 -0
  333. package/src/qt4-snaps/op-add-yearMonthDuration-to-dateTime.snap +1 -0
  334. package/src/qt4-snaps/op-add-yearMonthDurations.snap +1 -0
  335. package/src/qt4-snaps/op-anyURI-equal.snap +1 -0
  336. package/src/qt4-snaps/op-anyURI-greater-than.snap +1 -0
  337. package/src/qt4-snaps/op-anyURI-less-than.snap +1 -0
  338. package/src/qt4-snaps/op-bang.snap +1 -0
  339. package/src/qt4-snaps/op-base64Binary-equal.snap +1 -0
  340. package/src/qt4-snaps/op-base64Binary-greater-than.snap +1 -0
  341. package/src/qt4-snaps/op-base64Binary-less-than.snap +1 -0
  342. package/src/qt4-snaps/op-boolean-equal.snap +1 -0
  343. package/src/qt4-snaps/op-boolean-greater-than.snap +1 -0
  344. package/src/qt4-snaps/op-boolean-less-than.snap +1 -0
  345. package/src/qt4-snaps/op-concat.snap +1 -0
  346. package/src/qt4-snaps/op-concatenate.snap +1 -0
  347. package/src/qt4-snaps/op-date-equal.snap +1 -0
  348. package/src/qt4-snaps/op-date-greater-than.snap +1 -0
  349. package/src/qt4-snaps/op-date-less-than.snap +1 -0
  350. package/src/qt4-snaps/op-dateTime-equal.snap +1 -0
  351. package/src/qt4-snaps/op-dateTime-greater-than.snap +1 -0
  352. package/src/qt4-snaps/op-dateTime-less-than.snap +1 -0
  353. package/src/qt4-snaps/op-dayTimeDuration-greater-than.snap +1 -0
  354. package/src/qt4-snaps/op-dayTimeDuration-less-than.snap +1 -0
  355. package/src/qt4-snaps/op-divide-dayTimeDuration-by-dayTimeDuration.snap +1 -0
  356. package/src/qt4-snaps/op-divide-dayTimeDuration.snap +1 -0
  357. package/src/qt4-snaps/op-divide-yearMonthDuration-by-yearMonthDuration.snap +1 -0
  358. package/src/qt4-snaps/op-divide-yearMonthDuration.snap +1 -0
  359. package/src/qt4-snaps/op-duration-equal.snap +1 -0
  360. package/src/qt4-snaps/op-except.snap +1 -0
  361. package/src/qt4-snaps/op-gDay-equal.snap +1 -0
  362. package/src/qt4-snaps/op-gMonth-equal.snap +1 -0
  363. package/src/qt4-snaps/op-gMonthDay-equal.snap +1 -0
  364. package/src/qt4-snaps/op-gYear-equal.snap +1 -0
  365. package/src/qt4-snaps/op-gYearMonth-equal.snap +1 -0
  366. package/src/qt4-snaps/op-hexBinary-equal.snap +1 -0
  367. package/src/qt4-snaps/op-hexBinary-greater-than.snap +1 -0
  368. package/src/qt4-snaps/op-hexBinary-less-than.snap +1 -0
  369. package/src/qt4-snaps/op-intersect.snap +1 -0
  370. package/src/qt4-snaps/op-is-same-node.snap +1 -0
  371. package/src/qt4-snaps/op-multiply-dayTimeDuration.snap +1 -0
  372. package/src/qt4-snaps/op-multiply-yearMonthDuration.snap +1 -0
  373. package/src/qt4-snaps/op-node-after.snap +1 -0
  374. package/src/qt4-snaps/op-node-before.snap +1 -0
  375. package/src/qt4-snaps/op-numeric-add.snap +1 -0
  376. package/src/qt4-snaps/op-numeric-divide.snap +1 -0
  377. package/src/qt4-snaps/op-numeric-equal.snap +1 -0
  378. package/src/qt4-snaps/op-numeric-greater-than.snap +1 -0
  379. package/src/qt4-snaps/op-numeric-integer-divide.snap +1 -0
  380. package/src/qt4-snaps/op-numeric-less-than.snap +1 -0
  381. package/src/qt4-snaps/op-numeric-mod.snap +1 -0
  382. package/src/qt4-snaps/op-numeric-multiply.snap +1 -0
  383. package/src/qt4-snaps/op-numeric-subtract.snap +1 -0
  384. package/src/qt4-snaps/op-numeric-unary-minus.snap +1 -0
  385. package/src/qt4-snaps/op-numeric-unary-plus.snap +1 -0
  386. package/src/qt4-snaps/op-same-key.snap +1 -0
  387. package/src/qt4-snaps/op-string-equal.snap +1 -0
  388. package/src/qt4-snaps/op-string-greater-than.snap +1 -0
  389. package/src/qt4-snaps/op-string-less-than.snap +1 -0
  390. package/src/qt4-snaps/op-subtract-dateTimes.snap +1 -0
  391. package/src/qt4-snaps/op-subtract-dates.snap +1 -0
  392. package/src/qt4-snaps/op-subtract-dayTimeDuration-from-date.snap +1 -0
  393. package/src/qt4-snaps/op-subtract-dayTimeDuration-from-dateTime.snap +1 -0
  394. package/src/qt4-snaps/op-subtract-dayTimeDuration-from-time.snap +1 -0
  395. package/src/qt4-snaps/op-subtract-dayTimeDurations.snap +1 -0
  396. package/src/qt4-snaps/op-subtract-times.snap +1 -0
  397. package/src/qt4-snaps/op-subtract-yearMonthDuration-from-date.snap +1 -0
  398. package/src/qt4-snaps/op-subtract-yearMonthDuration-from-dateTime.snap +1 -0
  399. package/src/qt4-snaps/op-subtract-yearMonthDurations.snap +1 -0
  400. package/src/qt4-snaps/op-time-equal.snap +1 -0
  401. package/src/qt4-snaps/op-time-greater-than.snap +1 -0
  402. package/src/qt4-snaps/op-time-less-than.snap +1 -0
  403. package/src/qt4-snaps/op-to.snap +1 -0
  404. package/src/qt4-snaps/op-union.snap +1 -0
  405. package/src/qt4-snaps/op-yearMonthDuration-greater-than.snap +1 -0
  406. package/src/qt4-snaps/op-yearMonthDuration-less-than.snap +1 -0
  407. package/src/qt4-snaps/prod-AllowingEmpty.snap +1 -0
  408. package/src/qt4-snaps/prod-Annotation.snap +146 -0
  409. package/src/qt4-snaps/prod-ArrayType.snap +1 -0
  410. package/src/qt4-snaps/prod-ArrowExpr.snap +1 -0
  411. package/src/qt4-snaps/prod-AxisStep.abbr.snap +1 -0
  412. package/src/qt4-snaps/prod-AxisStep.ancestor-or-self.snap +1 -0
  413. package/src/qt4-snaps/prod-AxisStep.ancestor.snap +1 -0
  414. package/src/qt4-snaps/prod-AxisStep.following-sibling.snap +1 -0
  415. package/src/qt4-snaps/prod-AxisStep.following.snap +1 -0
  416. package/src/qt4-snaps/prod-AxisStep.preceding-sibling.snap +1 -0
  417. package/src/qt4-snaps/prod-AxisStep.preceding.snap +1 -0
  418. package/src/qt4-snaps/prod-AxisStep.snap +114 -0
  419. package/src/qt4-snaps/prod-AxisStep.unabbr.snap +1 -0
  420. package/src/qt4-snaps/prod-BaseURIDecl.snap +20 -0
  421. package/src/qt4-snaps/prod-BoundarySpaceDecl.snap +14 -0
  422. package/src/qt4-snaps/prod-CastExpr.derived.snap +1 -0
  423. package/src/qt4-snaps/prod-CastExpr.snap +218 -0
  424. package/src/qt4-snaps/prod-CastableExpr.snap +56 -0
  425. package/src/qt4-snaps/prod-Comment.snap +1 -0
  426. package/src/qt4-snaps/prod-CompAttrConstructor.snap +14 -0
  427. package/src/qt4-snaps/prod-CompCommentConstructor.snap +8 -0
  428. package/src/qt4-snaps/prod-CompDocConstructor.snap +1 -0
  429. package/src/qt4-snaps/prod-CompElemConstructor.snap +1 -0
  430. package/src/qt4-snaps/prod-CompNamespaceConstructor.snap +1 -0
  431. package/src/qt4-snaps/prod-CompPIConstructor.snap +1 -0
  432. package/src/qt4-snaps/prod-CompTextConstructor.snap +8 -0
  433. package/src/qt4-snaps/prod-ConstructionDecl.snap +14 -0
  434. package/src/qt4-snaps/prod-ContextItemDecl.snap +20 -0
  435. package/src/qt4-snaps/prod-ContextItemExpr.snap +1 -0
  436. package/src/qt4-snaps/prod-CopyNamespacesDecl.snap +14 -0
  437. package/src/qt4-snaps/prod-CountClause.snap +1 -0
  438. package/src/qt4-snaps/prod-CurlyArrayConstructor.snap +1 -0
  439. package/src/qt4-snaps/prod-DecimalFormatDecl.snap +92 -0
  440. package/src/qt4-snaps/prod-DefaultCollationDecl.snap +32 -0
  441. package/src/qt4-snaps/prod-DefaultNamespaceDecl.snap +92 -0
  442. package/src/qt4-snaps/prod-DirAttributeList.snap +58 -0
  443. package/src/qt4-snaps/prod-DirElemConstructor.snap +62 -0
  444. package/src/qt4-snaps/prod-DirElemContent.namespace.snap +176 -0
  445. package/src/qt4-snaps/prod-DirElemContent.snap +14 -0
  446. package/src/qt4-snaps/prod-DirElemContent.whitespace.snap +178 -0
  447. package/src/qt4-snaps/prod-DirectConstructor.snap +56 -0
  448. package/src/qt4-snaps/prod-EQName.snap +48 -0
  449. package/src/qt4-snaps/prod-EmptyOrderDecl.snap +14 -0
  450. package/src/qt4-snaps/prod-ExtensionExpr.snap +50 -0
  451. package/src/qt4-snaps/prod-ForClause.snap +158 -0
  452. package/src/qt4-snaps/prod-FunctionCall.snap +102 -0
  453. package/src/qt4-snaps/prod-FunctionDecl.snap +256 -0
  454. package/src/qt4-snaps/prod-GeneralComp.eq.snap +1 -0
  455. package/src/qt4-snaps/prod-GeneralComp.ge.snap +1 -0
  456. package/src/qt4-snaps/prod-GeneralComp.gt.snap +1 -0
  457. package/src/qt4-snaps/prod-GeneralComp.le.snap +1 -0
  458. package/src/qt4-snaps/prod-GeneralComp.lt.snap +1 -0
  459. package/src/qt4-snaps/prod-GeneralComp.ne.snap +1 -0
  460. package/src/qt4-snaps/prod-GroupByClause.snap +8 -0
  461. package/src/qt4-snaps/prod-IfExpr.snap +1 -0
  462. package/src/qt4-snaps/prod-InlineFunctionExpr.snap +14 -0
  463. package/src/qt4-snaps/prod-InstanceofExpr.snap +38 -0
  464. package/src/qt4-snaps/prod-LetClause.snap +40 -0
  465. package/src/qt4-snaps/prod-Literal.snap +68 -0
  466. package/src/qt4-snaps/prod-Lookup.snap +1 -0
  467. package/src/qt4-snaps/prod-MapConstructor.snap +1 -0
  468. package/src/qt4-snaps/prod-MapType.snap +8 -0
  469. package/src/qt4-snaps/prod-ModuleImport.snap +224 -0
  470. package/src/qt4-snaps/prod-NameTest.snap +164 -0
  471. package/src/qt4-snaps/prod-NamedFunctionRef.snap +1 -0
  472. package/src/qt4-snaps/prod-NamespaceDecl.snap +80 -0
  473. package/src/qt4-snaps/prod-NodeTest.snap +50 -0
  474. package/src/qt4-snaps/prod-OptionDecl.serialization.snap +14 -0
  475. package/src/qt4-snaps/prod-OptionDecl.snap +20 -0
  476. package/src/qt4-snaps/prod-OrExpr.snap +1 -0
  477. package/src/qt4-snaps/prod-OrderByClause.snap +20 -0
  478. package/src/qt4-snaps/prod-OrderingModeDecl.snap +14 -0
  479. package/src/qt4-snaps/prod-ParenthesizedExpr.snap +1 -0
  480. package/src/qt4-snaps/prod-PathExpr.snap +34 -0
  481. package/src/qt4-snaps/prod-PositionalVar.snap +26 -0
  482. package/src/qt4-snaps/prod-Predicate.snap +14 -0
  483. package/src/qt4-snaps/prod-QuantifiedExpr.snap +164 -0
  484. package/src/qt4-snaps/prod-ReturnClause.snap +8 -0
  485. package/src/qt4-snaps/prod-SequenceType.snap +1 -0
  486. package/src/qt4-snaps/prod-SquareArrayConstructor.snap +1 -0
  487. package/src/qt4-snaps/prod-StepExpr.snap +1 -0
  488. package/src/qt4-snaps/prod-StringConstructor.snap +26 -0
  489. package/src/qt4-snaps/prod-SwitchExpr.snap +1 -0
  490. package/src/qt4-snaps/prod-TreatExpr.snap +14 -0
  491. package/src/qt4-snaps/prod-TryCatchExpr.snap +38 -0
  492. package/src/qt4-snaps/prod-TypeswitchExpr.snap +50 -0
  493. package/src/qt4-snaps/prod-UnaryLookup.snap +1 -0
  494. package/src/qt4-snaps/prod-UnorderedExpr.snap +14 -0
  495. package/src/qt4-snaps/prod-ValueComp.snap +1 -0
  496. package/src/qt4-snaps/prod-VarDecl.external.snap +82 -0
  497. package/src/qt4-snaps/prod-VarDecl.snap +146 -0
  498. package/src/qt4-snaps/prod-VarDefaultValue.snap +8 -0
  499. package/src/qt4-snaps/prod-VersionDecl.snap +68 -0
  500. package/src/qt4-snaps/prod-WhereClause.snap +26 -0
  501. package/src/qt4-snaps/prod-WindowClause.snap +98 -0
  502. package/src/qt4-snaps/ser-method-adaptive.snap +1 -0
  503. package/src/qt4-snaps/ser-method-html.snap +1 -0
  504. package/src/qt4-snaps/ser-method-xml.snap +1 -0
  505. package/src/qt4-snaps/upd-AdditionalTyping.snap +1 -0
  506. package/src/qt4-snaps/upd-AddressBookUpdates.snap +1 -0
  507. package/src/qt4-snaps/upd-AttrDataModelErrs.snap +1 -0
  508. package/src/qt4-snaps/upd-CommaExpression.snap +1 -0
  509. package/src/qt4-snaps/upd-Compatibility.snap +1 -0
  510. package/src/qt4-snaps/upd-ConditionalExpression.snap +1 -0
  511. package/src/qt4-snaps/upd-DeleteExpressions.snap +1 -0
  512. package/src/qt4-snaps/upd-FLWORExpression.snap +1 -0
  513. package/src/qt4-snaps/upd-FullAxis.snap +1 -0
  514. package/src/qt4-snaps/upd-FunctionCall.snap +1 -0
  515. package/src/qt4-snaps/upd-FunctionDeclaration.snap +114 -0
  516. package/src/qt4-snaps/upd-InsertExpressions.snap +1 -0
  517. package/src/qt4-snaps/upd-MinOther.snap +1 -0
  518. package/src/qt4-snaps/upd-NSBindingConflictErrs.snap +1 -0
  519. package/src/qt4-snaps/upd-NamespacesUpdates.snap +1 -0
  520. package/src/qt4-snaps/upd-NilUpdates.snap +10 -0
  521. package/src/qt4-snaps/upd-OtherExpressions.snap +1 -0
  522. package/src/qt4-snaps/upd-ParenthesizedExpressions.snap +1 -0
  523. package/src/qt4-snaps/upd-PartsUpdates.snap +1 -0
  524. package/src/qt4-snaps/upd-RelationalDataUpdates.snap +1 -0
  525. package/src/qt4-snaps/upd-RenameExpressions.snap +1 -0
  526. package/src/qt4-snaps/upd-ReplaceNode.snap +1 -0
  527. package/src/qt4-snaps/upd-ReplaceValue.snap +1 -0
  528. package/src/qt4-snaps/upd-RevalidationDeclarationLax.snap +1 -0
  529. package/src/qt4-snaps/upd-RevalidationDeclarationLaxUnsupported.snap +1 -0
  530. package/src/qt4-snaps/upd-RevalidationDeclarationSkip.snap +10 -0
  531. package/src/qt4-snaps/upd-RevalidationDeclarationSkipUnsupported.snap +1 -0
  532. package/src/qt4-snaps/upd-RevalidationDeclarationStrict.snap +1 -0
  533. package/src/qt4-snaps/upd-RevalidationDeclarationStrictUnsupported.snap +1 -0
  534. package/src/qt4-snaps/upd-RevalidationDeclarationStrictandSkip.snap +1 -0
  535. package/src/qt4-snaps/upd-SoapUpdates.snap +1 -0
  536. package/src/qt4-snaps/upd-TransformExpressions.snap +1 -0
  537. package/src/qt4-snaps/upd-TypeswitchExpression.snap +1 -0
  538. package/src/qt4-snaps/upd-VariableDeclaration.snap +1 -0
  539. package/src/qt4-snaps/upd-applyUpdates.snap +1 -0
  540. package/src/qt4-snaps/upd-fnput-document.snap +1 -0
  541. package/src/qt4-snaps/upd-mergeUpdates.snap +1 -0
  542. package/src/qt4-snaps/upd-propagateNamespace.snap +1 -0
  543. package/src/qt4-snaps/upd-setToUntyped.snap +1 -0
  544. package/src/qt4-snaps/xs-anyAtomicType.snap +1 -0
  545. package/src/qt4-snaps/xs-anySimpleType.snap +8 -0
  546. package/src/qt4-snaps/xs-anyURI.snap +34 -0
  547. package/src/qt4-snaps/xs-base64Binary.snap +1 -0
  548. package/src/qt4-snaps/xs-dateTimeStamp.snap +1 -0
  549. package/src/qt4-snaps/xs-double.snap +1 -0
  550. package/src/qt4-snaps/xs-error.snap +10 -0
  551. package/src/qt4-snaps/xs-float.snap +1 -0
  552. package/src/qt4-snaps/xs-hexBinary.snap +1 -0
  553. package/src/qt4-snaps/xs-normalizedString.snap +1 -0
  554. package/src/qt4-snaps/xs-notation.snap +1 -0
  555. package/src/qt4-snaps/xs-numeric.snap +1 -0
  556. package/src/qt4-snaps/xs-token.snap +1 -0
  557. package/src/qt4-worker.ts +63 -0
  558. package/src/runtimes/existdb/cache.xq +83 -0
  559. package/src/runtimes/existdb/compression.xq +198 -0
  560. package/src/runtimes/existdb/console.xq +24 -0
  561. package/src/runtimes/existdb/contentextraction.xq +31 -0
  562. package/src/runtimes/existdb/counter.xq +30 -0
  563. package/src/runtimes/existdb/crypto.xq +97 -0
  564. package/src/runtimes/existdb/datetime.xq +91 -0
  565. package/src/runtimes/existdb/file.xq +129 -0
  566. package/src/runtimes/existdb/ft.xq +325 -0
  567. package/src/runtimes/existdb/httpclient.xq +118 -0
  568. package/src/runtimes/existdb/image.xq +65 -0
  569. package/src/runtimes/existdb/inspect.xq +49 -0
  570. package/src/runtimes/existdb/kwic.xq +24 -0
  571. package/src/runtimes/existdb/mail.xq +124 -0
  572. package/src/runtimes/existdb/ngram.xq +57 -0
  573. package/src/runtimes/existdb/process.xq +8 -0
  574. package/src/runtimes/existdb/range.xq +171 -0
  575. package/src/runtimes/existdb/repo.xq +125 -0
  576. package/src/runtimes/existdb/request.xq +242 -0
  577. package/src/runtimes/existdb/response.xq +50 -0
  578. package/src/runtimes/existdb/scheduler.xq +35 -0
  579. package/src/runtimes/existdb/session.xq +111 -0
  580. package/src/runtimes/existdb/sm.xq +497 -0
  581. package/src/runtimes/existdb/sort.xq +59 -0
  582. package/src/runtimes/existdb/system.xq +267 -0
  583. package/src/runtimes/existdb/transform.xq +88 -0
  584. package/src/runtimes/existdb/util.xq +860 -0
  585. package/src/runtimes/existdb/validation.xq +83 -0
  586. package/src/runtimes/existdb/xmldb.xq +482 -0
  587. package/src/runtimes/existdb/xmldiff.xq +22 -0
  588. package/src/runtimes/fonto/fonto.xq +164 -0
  589. package/src/runtimes.test.ts +152 -0
  590. package/src/runtimes.ts +70 -0
  591. package/src/server.ts +352 -122
  592. package/src/test-utils.ts +17 -0
  593. package/src/typechecker.test.ts +548 -0
  594. package/src/typechecker.ts +416 -0
  595. package/src/types.ts +41 -7
  596. package/src/unused-diagnostics.test.ts +174 -0
  597. package/src/unused-diagnostics.ts +232 -0
  598. package/tsconfig.json +3 -3
@@ -1,19 +1,32 @@
1
- module namespace fn="http://www.w3.org/2005/xpath-functions";
1
+ module namespace fn = "http://www.w3.org/2005/xpath-functions";
2
2
 
3
3
  (: ── Accessors ──────────────────────────────────────────────────────────────── :)
4
4
 
5
- (:~ Returns the name of a node as a QName. :)
5
+ (:~
6
+ : Returns the name of a node as a QName.
7
+ :)
6
8
  declare function fn:node-name() as xs:QName? external;
7
- (:~ @param $arg The node whose name to return :)
9
+
10
+ (:~
11
+ : @param $arg The node whose name to return
12
+ :)
8
13
  declare function fn:node-name($arg as node()?) as xs:QName? external;
9
14
 
10
- (:~ Returns true if the element has been nilled. :)
15
+ (:~
16
+ : Returns true if the element has been nilled.
17
+ :)
11
18
  declare function fn:nilled() as xs:boolean? external;
12
- (:~ @param $arg The node to test :)
19
+
20
+ (:~
21
+ : @param $arg The node to test
22
+ :)
13
23
  declare function fn:nilled($arg as node()?) as xs:boolean? external;
14
24
 
15
- (:~ Returns the string value of the context item. :)
25
+ (:~
26
+ : Returns the string value of the context item.
27
+ :)
16
28
  declare function fn:string() as xs:string external;
29
+
17
30
  (:~
18
31
  : Returns the string value of an item.
19
32
  : @param $arg The item to convert to string
@@ -21,8 +34,11 @@ declare function fn:string() as xs:string external;
21
34
  :)
22
35
  declare function fn:string($arg as item()?) as xs:string external;
23
36
 
24
- (:~ Atomizes the context item. :)
37
+ (:~
38
+ : Atomizes the context item.
39
+ :)
25
40
  declare function fn:data() as xs:anyAtomicType* external;
41
+
26
42
  (:~
27
43
  : Atomizes a sequence, extracting typed values from nodes.
28
44
  : @param $arg The sequence to atomize
@@ -30,8 +46,11 @@ declare function fn:data() as xs:anyAtomicType* external;
30
46
  :)
31
47
  declare function fn:data($arg as item()*) as xs:anyAtomicType* external;
32
48
 
33
- (:~ Returns the base URI of the context node. :)
49
+ (:~
50
+ : Returns the base URI of the context node.
51
+ :)
34
52
  declare function fn:base-uri() as xs:anyURI? external;
53
+
35
54
  (:~
36
55
  : Returns the base URI of a node.
37
56
  : @param $arg The node
@@ -39,8 +58,11 @@ declare function fn:base-uri() as xs:anyURI? external;
39
58
  :)
40
59
  declare function fn:base-uri($arg as node()?) as xs:anyURI? external;
41
60
 
42
- (:~ Returns the document URI of the context node. :)
61
+ (:~
62
+ : Returns the document URI of the context node.
63
+ :)
43
64
  declare function fn:document-uri() as xs:anyURI? external;
65
+
44
66
  (:~
45
67
  : Returns the document URI of a document node.
46
68
  : @param $arg The document node
@@ -50,14 +72,37 @@ declare function fn:document-uri($arg as node()?) as xs:anyURI? external;
50
72
 
51
73
  (: ── Error and diagnostics ─────────────────────────────────────────────────── :)
52
74
 
53
- (:~ Raises a dynamic error. :)
75
+ (:~
76
+ : Raises a dynamic error.
77
+ :)
54
78
  declare function fn:error() as empty-sequence() external;
55
- (:~ @param $code Error code :)
79
+
80
+ (:~
81
+ : @param $code Error code
82
+ :)
56
83
  declare function fn:error($code as xs:QName?) as empty-sequence() external;
57
- (:~ @param $code Error code @param $description Error message :)
84
+
85
+ (:~
86
+ : @param $code Error code @param $description Error message
87
+ :)
58
88
  declare function fn:error($code as xs:QName?, $description as xs:string) as empty-sequence() external;
59
- (:~ @param $code Error code @param $description Error message @param $error-object Additional error data :)
60
- declare function fn:error($code as xs:QName?, $description as xs:string, $error-object as item()*) as empty-sequence() external;
89
+
90
+ (:~
91
+ : @param $code Error code @param $description Error message @param $error-object Additional error data
92
+ :)
93
+ declare function fn:error(
94
+ $code as xs:QName?,
95
+ $description as xs:string,
96
+ $error-object as item()*
97
+ ) as empty-sequence() external;
98
+
99
+ (:~
100
+ : Returns the value of the first argument unchanged and emits a diagnostic trace message.
101
+ : @param $value The value to return unchanged
102
+ : @param $label A label for the trace output
103
+ : @return The input value
104
+ :)
105
+ declare function fn:trace($value as item()*) as item()* external;
61
106
 
62
107
  (:~
63
108
  : Returns the value of the first argument unchanged and emits a diagnostic trace message.
@@ -96,6 +141,7 @@ declare function fn:floor($arg as xs:numeric?) as xs:numeric? external;
96
141
  : @return The nearest integer
97
142
  :)
98
143
  declare function fn:round($arg as xs:numeric?) as xs:numeric? external;
144
+
99
145
  (:~
100
146
  : Rounds a number to a specified precision.
101
147
  : @param $arg The number to round
@@ -110,6 +156,7 @@ declare function fn:round($arg as xs:numeric?, $precision as xs:integer) as xs:n
110
156
  : @return The rounded number
111
157
  :)
112
158
  declare function fn:round-half-to-even($arg as xs:numeric?) as xs:numeric? external;
159
+
113
160
  (:~
114
161
  : @param $arg The number to round
115
162
  : @param $precision Number of decimal places
@@ -123,7 +170,10 @@ declare function fn:round-half-to-even($arg as xs:numeric?, $precision as xs:int
123
170
  : @return The value as xs:double, or NaN if not convertible
124
171
  :)
125
172
  declare function fn:number($arg as xs:anyAtomicType?) as xs:double external;
126
- (:~ Returns the numeric value of the context item. :)
173
+
174
+ (:~
175
+ : Returns the numeric value of the context item.
176
+ :)
127
177
  declare function fn:number() as xs:double external;
128
178
 
129
179
  (:~
@@ -133,13 +183,18 @@ declare function fn:number() as xs:double external;
133
183
  : @return The formatted string
134
184
  :)
135
185
  declare function fn:format-number($value as xs:numeric?, $picture as xs:string) as xs:string external;
186
+
136
187
  (:~
137
188
  : @param $value The number to format
138
189
  : @param $picture The picture string
139
190
  : @param $decimal-format-name Named decimal format to use
140
191
  : @return The formatted string
141
192
  :)
142
- declare function fn:format-number($value as xs:numeric?, $picture as xs:string, $decimal-format-name as xs:string) as xs:string external;
193
+ declare function fn:format-number(
194
+ $value as xs:numeric?,
195
+ $picture as xs:string,
196
+ $decimal-format-name as xs:string
197
+ ) as xs:string external;
143
198
 
144
199
  (: ── String functions ───────────────────────────────────────────────────────── :)
145
200
 
@@ -164,13 +219,18 @@ declare function fn:string-to-codepoints($arg as xs:string?) as xs:integer* exte
164
219
  : @return -1, 0, or 1
165
220
  :)
166
221
  declare function fn:compare($comparand1 as xs:string?, $comparand2 as xs:string?) as xs:integer? external;
222
+
167
223
  (:~
168
224
  : @param $comparand1 First string
169
225
  : @param $comparand2 Second string
170
226
  : @param $collation Collation URI
171
227
  : @return -1, 0, or 1
172
228
  :)
173
- declare function fn:compare($comparand1 as xs:string?, $comparand2 as xs:string?, $collation as xs:string) as xs:integer? external;
229
+ declare function fn:compare(
230
+ $comparand1 as xs:string?,
231
+ $comparand2 as xs:string?,
232
+ $collation as xs:string
233
+ ) as xs:integer? external;
174
234
 
175
235
  (:~
176
236
  : Tests equality of two strings using Unicode codepoint comparison.
@@ -185,6 +245,7 @@ declare function fn:codepoint-equal($comparand1 as xs:string?, $comparand2 as xs
185
245
  : @param $arg1 First string
186
246
  : @param $arg2 Second string
187
247
  : @return Concatenated string
248
+ : @variadic
188
249
  :)
189
250
  declare function fn:concat($arg1 as xs:anyAtomicType?, $arg2 as xs:anyAtomicType?) as xs:string external;
190
251
 
@@ -194,6 +255,7 @@ declare function fn:concat($arg1 as xs:anyAtomicType?, $arg2 as xs:anyAtomicType
194
255
  : @return The joined string
195
256
  :)
196
257
  declare function fn:string-join($arg1 as xs:anyAtomicType*) as xs:string external;
258
+
197
259
  (:~
198
260
  : Joins a sequence of strings using a separator.
199
261
  : @param $arg1 The strings to join
@@ -209,6 +271,7 @@ declare function fn:string-join($arg1 as xs:anyAtomicType*, $arg2 as xs:string)
209
271
  : @return The substring
210
272
  :)
211
273
  declare function fn:substring($sourceString as xs:string?, $start as xs:double) as xs:string external;
274
+
212
275
  (:~
213
276
  : Returns a substring of specified length starting at a position.
214
277
  : @param $sourceString The source string
@@ -216,10 +279,17 @@ declare function fn:substring($sourceString as xs:string?, $start as xs:double)
216
279
  : @param $length Number of characters
217
280
  : @return The substring
218
281
  :)
219
- declare function fn:substring($sourceString as xs:string?, $start as xs:double, $length as xs:double) as xs:string external;
282
+ declare function fn:substring(
283
+ $sourceString as xs:string?,
284
+ $start as xs:double,
285
+ $length as xs:double
286
+ ) as xs:string external;
220
287
 
221
- (:~ Returns the length of the context item string value. :)
288
+ (:~
289
+ : Returns the length of the context item string value.
290
+ :)
222
291
  declare function fn:string-length() as xs:integer external;
292
+
223
293
  (:~
224
294
  : Returns the number of characters in a string.
225
295
  : @param $arg The input string
@@ -227,8 +297,11 @@ declare function fn:string-length() as xs:integer external;
227
297
  :)
228
298
  declare function fn:string-length($arg as xs:string?) as xs:integer external;
229
299
 
230
- (:~ Strips leading and trailing whitespace from the context item. :)
300
+ (:~
301
+ : Strips leading and trailing whitespace from the context item.
302
+ :)
231
303
  declare function fn:normalize-space() as xs:string external;
304
+
232
305
  (:~
233
306
  : Strips leading and trailing whitespace and collapses internal whitespace.
234
307
  : @param $arg The input string
@@ -242,6 +315,7 @@ declare function fn:normalize-space($arg as xs:string?) as xs:string external;
242
315
  : @return The normalized string (NFC form)
243
316
  :)
244
317
  declare function fn:normalize-unicode($arg as xs:string?) as xs:string external;
318
+
245
319
  (:~
246
320
  : @param $arg The input string
247
321
  : @param $normalizationForm Normalization form: NFC, NFD, NFKC, NFKD, FULLY-NORMALIZED
@@ -270,7 +344,11 @@ declare function fn:lower-case($arg as xs:string?) as xs:string external;
270
344
  : @param $transString Replacement characters
271
345
  : @return The translated string
272
346
  :)
273
- declare function fn:translate($arg as xs:string?, $mapString as xs:string, $transString as xs:string) as xs:string external;
347
+ declare function fn:translate(
348
+ $arg as xs:string?,
349
+ $mapString as xs:string,
350
+ $transString as xs:string
351
+ ) as xs:string external;
274
352
 
275
353
  (:~
276
354
  : Encodes a string for use in a URI component.
@@ -300,7 +378,10 @@ declare function fn:escape-html-uri($uri as xs:string?) as xs:string external;
300
378
  : @return true if $arg1 contains $arg2
301
379
  :)
302
380
  declare function fn:contains($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean external;
303
- (:~ @param $arg1 The string to search @param $arg2 The substring @param $collation Collation URI :)
381
+
382
+ (:~
383
+ : @param $arg1 The string to search @param $arg2 The substring @param $collation Collation URI
384
+ :)
304
385
  declare function fn:contains($arg1 as xs:string?, $arg2 as xs:string?, $collation as xs:string) as xs:boolean external;
305
386
 
306
387
  (:~
@@ -310,8 +391,15 @@ declare function fn:contains($arg1 as xs:string?, $arg2 as xs:string?, $collatio
310
391
  : @return true if $arg1 starts with $arg2
311
392
  :)
312
393
  declare function fn:starts-with($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean external;
313
- (:~ @param $arg1 The string @param $arg2 The prefix @param $collation Collation URI :)
314
- declare function fn:starts-with($arg1 as xs:string?, $arg2 as xs:string?, $collation as xs:string) as xs:boolean external;
394
+
395
+ (:~
396
+ : @param $arg1 The string @param $arg2 The prefix @param $collation Collation URI
397
+ :)
398
+ declare function fn:starts-with(
399
+ $arg1 as xs:string?,
400
+ $arg2 as xs:string?,
401
+ $collation as xs:string
402
+ ) as xs:boolean external;
315
403
 
316
404
  (:~
317
405
  : Tests whether a string ends with a given suffix.
@@ -320,7 +408,10 @@ declare function fn:starts-with($arg1 as xs:string?, $arg2 as xs:string?, $colla
320
408
  : @return true if $arg1 ends with $arg2
321
409
  :)
322
410
  declare function fn:ends-with($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean external;
323
- (:~ @param $arg1 The string @param $arg2 The suffix @param $collation Collation URI :)
411
+
412
+ (:~
413
+ : @param $arg1 The string @param $arg2 The suffix @param $collation Collation URI
414
+ :)
324
415
  declare function fn:ends-with($arg1 as xs:string?, $arg2 as xs:string?, $collation as xs:string) as xs:boolean external;
325
416
 
326
417
  (:~
@@ -330,8 +421,15 @@ declare function fn:ends-with($arg1 as xs:string?, $arg2 as xs:string?, $collati
330
421
  : @return The substring before the pattern
331
422
  :)
332
423
  declare function fn:substring-before($arg1 as xs:string?, $arg2 as xs:string?) as xs:string external;
333
- (:~ @param $arg1 Input @param $arg2 Pattern @param $collation Collation URI :)
334
- declare function fn:substring-before($arg1 as xs:string?, $arg2 as xs:string?, $collation as xs:string) as xs:string external;
424
+
425
+ (:~
426
+ : @param $arg1 Input @param $arg2 Pattern @param $collation Collation URI
427
+ :)
428
+ declare function fn:substring-before(
429
+ $arg1 as xs:string?,
430
+ $arg2 as xs:string?,
431
+ $collation as xs:string
432
+ ) as xs:string external;
335
433
 
336
434
  (:~
337
435
  : Returns the part of a string that follows the first occurrence of a pattern.
@@ -340,8 +438,15 @@ declare function fn:substring-before($arg1 as xs:string?, $arg2 as xs:string?, $
340
438
  : @return The substring after the pattern
341
439
  :)
342
440
  declare function fn:substring-after($arg1 as xs:string?, $arg2 as xs:string?) as xs:string external;
343
- (:~ @param $arg1 Input @param $arg2 Pattern @param $collation Collation URI :)
344
- declare function fn:substring-after($arg1 as xs:string?, $arg2 as xs:string?, $collation as xs:string) as xs:string external;
441
+
442
+ (:~
443
+ : @param $arg1 Input @param $arg2 Pattern @param $collation Collation URI
444
+ :)
445
+ declare function fn:substring-after(
446
+ $arg1 as xs:string?,
447
+ $arg2 as xs:string?,
448
+ $collation as xs:string
449
+ ) as xs:string external;
345
450
 
346
451
  (:~
347
452
  : Tests whether a string matches a regular expression.
@@ -350,7 +455,10 @@ declare function fn:substring-after($arg1 as xs:string?, $arg2 as xs:string?, $c
350
455
  : @return true if the string matches
351
456
  :)
352
457
  declare function fn:matches($input as xs:string?, $pattern as xs:string) as xs:boolean external;
353
- (:~ @param $input The string @param $pattern The regex @param $flags Flags (i, m, s, x) :)
458
+
459
+ (:~
460
+ : @param $input The string @param $pattern The regex @param $flags Flags (i, m, s, x)
461
+ :)
354
462
  declare function fn:matches($input as xs:string?, $pattern as xs:string, $flags as xs:string) as xs:boolean external;
355
463
 
356
464
  (:~
@@ -360,9 +468,21 @@ declare function fn:matches($input as xs:string?, $pattern as xs:string, $flags
360
468
  : @param $replacement The replacement string (may use $0, $1 … back-references)
361
469
  : @return The modified string
362
470
  :)
363
- declare function fn:replace($input as xs:string?, $pattern as xs:string, $replacement as xs:string) as xs:string external;
364
- (:~ @param $input Input @param $pattern Regex @param $replacement Replacement @param $flags Flags :)
365
- declare function fn:replace($input as xs:string?, $pattern as xs:string, $replacement as xs:string, $flags as xs:string) as xs:string external;
471
+ declare function fn:replace(
472
+ $input as xs:string?,
473
+ $pattern as xs:string,
474
+ $replacement as xs:string
475
+ ) as xs:string external;
476
+
477
+ (:~
478
+ : @param $input Input @param $pattern Regex @param $replacement Replacement @param $flags Flags
479
+ :)
480
+ declare function fn:replace(
481
+ $input as xs:string?,
482
+ $pattern as xs:string,
483
+ $replacement as xs:string,
484
+ $flags as xs:string
485
+ ) as xs:string external;
366
486
 
367
487
  (:~
368
488
  : Splits a string on whitespace, returning a sequence of tokens.
@@ -370,6 +490,7 @@ declare function fn:replace($input as xs:string?, $pattern as xs:string, $replac
370
490
  : @return Sequence of token strings
371
491
  :)
372
492
  declare function fn:tokenize($input as xs:string?) as xs:string* external;
493
+
373
494
  (:~
374
495
  : Splits a string on a regex delimiter.
375
496
  : @param $input The input string
@@ -377,7 +498,10 @@ declare function fn:tokenize($input as xs:string?) as xs:string* external;
377
498
  : @return Sequence of token strings
378
499
  :)
379
500
  declare function fn:tokenize($input as xs:string?, $pattern as xs:string) as xs:string* external;
380
- (:~ @param $input Input @param $pattern Delimiter @param $flags Flags :)
501
+
502
+ (:~
503
+ : @param $input Input @param $pattern Delimiter @param $flags Flags
504
+ :)
381
505
  declare function fn:tokenize($input as xs:string?, $pattern as xs:string, $flags as xs:string) as xs:string* external;
382
506
 
383
507
  (:~
@@ -387,8 +511,15 @@ declare function fn:tokenize($input as xs:string?, $pattern as xs:string, $flags
387
511
  : @return An fn:analyze-string-result element
388
512
  :)
389
513
  declare function fn:analyze-string($input as xs:string?, $pattern as xs:string) as element() external;
390
- (:~ @param $input Input @param $pattern Regex @param $flags Flags :)
391
- declare function fn:analyze-string($input as xs:string?, $pattern as xs:string, $flags as xs:string) as element() external;
514
+
515
+ (:~
516
+ : @param $input Input @param $pattern Regex @param $flags Flags
517
+ :)
518
+ declare function fn:analyze-string(
519
+ $input as xs:string?,
520
+ $pattern as xs:string,
521
+ $flags as xs:string
522
+ ) as element() external;
392
523
 
393
524
  (: ── URI functions ──────────────────────────────────────────────────────────── :)
394
525
 
@@ -398,6 +529,7 @@ declare function fn:analyze-string($input as xs:string?, $pattern as xs:string,
398
529
  : @return The resolved absolute URI
399
530
  :)
400
531
  declare function fn:resolve-uri($relative as xs:string?) as xs:anyURI? external;
532
+
401
533
  (:~
402
534
  : Resolves a relative URI against a given base URI.
403
535
  : @param $relative The relative URI reference
@@ -495,13 +627,18 @@ declare function fn:reverse($arg as item()*) as item()* external;
495
627
  : @return Items from $startingLoc to the end
496
628
  :)
497
629
  declare function fn:subsequence($sourceSeq as item()*, $startingLoc as xs:double) as item()* external;
630
+
498
631
  (:~
499
632
  : @param $sourceSeq The source sequence
500
633
  : @param $startingLoc 1-based start position
501
634
  : @param $length Number of items to return
502
635
  : @return The subsequence
503
636
  :)
504
- declare function fn:subsequence($sourceSeq as item()*, $startingLoc as xs:double, $length as xs:double) as item()* external;
637
+ declare function fn:subsequence(
638
+ $sourceSeq as item()*,
639
+ $startingLoc as xs:double,
640
+ $length as xs:double
641
+ ) as item()* external;
505
642
 
506
643
  (:~
507
644
  : Returns the items in an implementation-defined order.
@@ -537,7 +674,10 @@ declare function fn:exactly-one($arg as item()*) as item() external;
537
674
  : @return Sequence with duplicates removed
538
675
  :)
539
676
  declare function fn:distinct-values($arg as xs:anyAtomicType*) as xs:anyAtomicType* external;
540
- (:~ @param $arg The sequence @param $collation Collation URI :)
677
+
678
+ (:~
679
+ : @param $arg The sequence @param $collation Collation URI
680
+ :)
541
681
  declare function fn:distinct-values($arg as xs:anyAtomicType*, $collation as xs:string) as xs:anyAtomicType* external;
542
682
 
543
683
  (:~
@@ -547,8 +687,15 @@ declare function fn:distinct-values($arg as xs:anyAtomicType*, $collation as xs:
547
687
  : @return Sequence of 1-based positions
548
688
  :)
549
689
  declare function fn:index-of($seq as xs:anyAtomicType*, $search as xs:anyAtomicType) as xs:integer* external;
550
- (:~ @param $seq Sequence @param $search Value @param $collation Collation URI :)
551
- declare function fn:index-of($seq as xs:anyAtomicType*, $search as xs:anyAtomicType, $collation as xs:string) as xs:integer* external;
690
+
691
+ (:~
692
+ : @param $seq Sequence @param $search Value @param $collation Collation URI
693
+ :)
694
+ declare function fn:index-of(
695
+ $seq as xs:anyAtomicType*,
696
+ $search as xs:anyAtomicType,
697
+ $collation as xs:string
698
+ ) as xs:integer* external;
552
699
 
553
700
  (:~
554
701
  : Tests whether two sequences are deeply equal.
@@ -557,8 +704,15 @@ declare function fn:index-of($seq as xs:anyAtomicType*, $search as xs:anyAtomicT
557
704
  : @return true if the sequences are deeply equal
558
705
  :)
559
706
  declare function fn:deep-equal($parameter1 as item()*, $parameter2 as item()*) as xs:boolean external;
560
- (:~ @param $parameter1 First @param $parameter2 Second @param $collation Collation URI :)
561
- declare function fn:deep-equal($parameter1 as item()*, $parameter2 as item()*, $collation as xs:string) as xs:boolean external;
707
+
708
+ (:~
709
+ : @param $parameter1 First @param $parameter2 Second @param $collation Collation URI
710
+ :)
711
+ declare function fn:deep-equal(
712
+ $parameter1 as item()*,
713
+ $parameter2 as item()*,
714
+ $collation as xs:string
715
+ ) as xs:boolean external;
562
716
 
563
717
  (:~
564
718
  : Returns the number of items in a sequence.
@@ -580,7 +734,10 @@ declare function fn:avg($arg as xs:anyAtomicType*) as xs:anyAtomicType? external
580
734
  : @return The maximum value
581
735
  :)
582
736
  declare function fn:max($arg as xs:anyAtomicType*) as xs:anyAtomicType? external;
583
- (:~ @param $arg Sequence @param $collation Collation URI :)
737
+
738
+ (:~
739
+ : @param $arg Sequence @param $collation Collation URI
740
+ :)
584
741
  declare function fn:max($arg as xs:anyAtomicType*, $collation as xs:string) as xs:anyAtomicType? external;
585
742
 
586
743
  (:~
@@ -589,7 +746,10 @@ declare function fn:max($arg as xs:anyAtomicType*, $collation as xs:string) as x
589
746
  : @return The minimum value
590
747
  :)
591
748
  declare function fn:min($arg as xs:anyAtomicType*) as xs:anyAtomicType? external;
592
- (:~ @param $arg Sequence @param $collation Collation URI :)
749
+
750
+ (:~
751
+ : @param $arg Sequence @param $collation Collation URI
752
+ :)
593
753
  declare function fn:min($arg as xs:anyAtomicType*, $collation as xs:string) as xs:anyAtomicType? external;
594
754
 
595
755
  (:~
@@ -598,6 +758,7 @@ declare function fn:min($arg as xs:anyAtomicType*, $collation as xs:string) as x
598
758
  : @return The sum, or 0 if empty
599
759
  :)
600
760
  declare function fn:sum($arg as xs:anyAtomicType*) as xs:anyAtomicType external;
761
+
601
762
  (:~
602
763
  : @param $arg The sequence
603
764
  : @param $zero Value to return for an empty sequence
@@ -613,7 +774,7 @@ declare function fn:sum($arg as xs:anyAtomicType*, $zero as xs:anyAtomicType?) a
613
774
  : @param $action Function to apply to each item
614
775
  : @return Concatenated results
615
776
  :)
616
- declare function fn:for-each($seq as item()*, $action as function(item()) as item()*) as item()* external;
777
+ declare function fn:for-each($seq as item()*, $action as function (item()) as item()*) as item()* external;
617
778
 
618
779
  (:~
619
780
  : Returns items from a sequence for which a predicate is true.
@@ -621,7 +782,7 @@ declare function fn:for-each($seq as item()*, $action as function(item()) as ite
621
782
  : @param $f Predicate function
622
783
  : @return Items where $f returns true
623
784
  :)
624
- declare function fn:filter($seq as item()*, $f as function(item()) as xs:boolean) as item()* external;
785
+ declare function fn:filter($seq as item()*, $f as function (item()) as xs:boolean) as item()* external;
625
786
 
626
787
  (:~
627
788
  : Reduces a sequence to a single value by applying a function from the left.
@@ -630,7 +791,11 @@ declare function fn:filter($seq as item()*, $f as function(item()) as xs:boolean
630
791
  : @param $f Combining function
631
792
  : @return The accumulated result
632
793
  :)
633
- declare function fn:fold-left($seq as item()*, $zero as item()*, $f as function(item()*, item()) as item()*) as item()* external;
794
+ declare function fn:fold-left(
795
+ $seq as item()*,
796
+ $zero as item()*,
797
+ $f as function (item()*, item()) as item()*
798
+ ) as item()* external;
634
799
 
635
800
  (:~
636
801
  : Reduces a sequence to a single value by applying a function from the right.
@@ -639,7 +804,11 @@ declare function fn:fold-left($seq as item()*, $zero as item()*, $f as function(
639
804
  : @param $f Combining function
640
805
  : @return The accumulated result
641
806
  :)
642
- declare function fn:fold-right($seq as item()*, $zero as item()*, $f as function(item(), item()*) as item()*) as item()* external;
807
+ declare function fn:fold-right(
808
+ $seq as item()*,
809
+ $zero as item()*,
810
+ $f as function (item(), item()*) as item()*
811
+ ) as item()* external;
643
812
 
644
813
  (:~
645
814
  : Applies a function pairwise to two sequences.
@@ -648,7 +817,11 @@ declare function fn:fold-right($seq as item()*, $zero as item()*, $f as function
648
817
  : @param $action Function to apply to each pair
649
818
  : @return Concatenated results
650
819
  :)
651
- declare function fn:for-each-pair($seq1 as item()*, $seq2 as item()*, $action as function(item(), item()) as item()*) as item()* external;
820
+ declare function fn:for-each-pair(
821
+ $seq1 as item()*,
822
+ $seq2 as item()*,
823
+ $action as function (item(), item()) as item()*
824
+ ) as item()* external;
652
825
 
653
826
  (:~
654
827
  : Sorts a sequence using the default collation and natural ordering.
@@ -656,15 +829,23 @@ declare function fn:for-each-pair($seq1 as item()*, $seq2 as item()*, $action as
656
829
  : @return The sorted sequence
657
830
  :)
658
831
  declare function fn:sort($seq as item()*) as item()* external;
659
- (:~ @param $seq Sequence @param $collation Collation URI or empty :)
832
+
833
+ (:~
834
+ : @param $seq Sequence @param $collation Collation URI or empty
835
+ :)
660
836
  declare function fn:sort($seq as item()*, $collation as xs:string?) as item()* external;
837
+
661
838
  (:~
662
839
  : @param $seq Sequence
663
840
  : @param $collation Collation URI or empty
664
841
  : @param $key Function that extracts the sort key from an item
665
842
  : @return The sorted sequence
666
843
  :)
667
- declare function fn:sort($seq as item()*, $collation as xs:string?, $key as function(item()) as xs:anyAtomicType*) as item()* external;
844
+ declare function fn:sort(
845
+ $seq as item()*,
846
+ $collation as xs:string?,
847
+ $key as function (item()) as xs:anyAtomicType*
848
+ ) as item()* external;
668
849
 
669
850
  (:~
670
851
  : Calls a function with arguments supplied as an array.
@@ -754,8 +935,11 @@ declare function fn:local-name-from-QName($arg as xs:QName?) as xs:NCName? exter
754
935
 
755
936
  (: ── Node functions ─────────────────────────────────────────────────────────── :)
756
937
 
757
- (:~ Returns the name of the context node as a string. :)
938
+ (:~
939
+ : Returns the name of the context node as a string.
940
+ :)
758
941
  declare function fn:name() as xs:string external;
942
+
759
943
  (:~
760
944
  : Returns the name of a node as a string.
761
945
  : @param $arg The node
@@ -763,8 +947,11 @@ declare function fn:name() as xs:string external;
763
947
  :)
764
948
  declare function fn:name($arg as node()?) as xs:string external;
765
949
 
766
- (:~ Returns the local name of the context node. :)
950
+ (:~
951
+ : Returns the local name of the context node.
952
+ :)
767
953
  declare function fn:local-name() as xs:string external;
954
+
768
955
  (:~
769
956
  : Returns the local name of a node.
770
957
  : @param $arg The node
@@ -772,8 +959,11 @@ declare function fn:local-name() as xs:string external;
772
959
  :)
773
960
  declare function fn:local-name($arg as node()?) as xs:string external;
774
961
 
775
- (:~ Returns the namespace URI of the context node. :)
962
+ (:~
963
+ : Returns the namespace URI of the context node.
964
+ :)
776
965
  declare function fn:namespace-uri() as xs:anyURI external;
966
+
777
967
  (:~
778
968
  : Returns the namespace URI of a node.
779
969
  : @param $arg The node
@@ -787,11 +977,17 @@ declare function fn:namespace-uri($arg as node()?) as xs:anyURI external;
787
977
  : @return true if the node's language matches
788
978
  :)
789
979
  declare function fn:lang($testlang as xs:string?) as xs:boolean external;
790
- (:~ @param $testlang Language @param $node The node to test :)
980
+
981
+ (:~
982
+ : @param $testlang Language @param $node The node to test
983
+ :)
791
984
  declare function fn:lang($testlang as xs:string?, $node as node()) as xs:boolean external;
792
985
 
793
- (:~ Returns the root of the tree containing the context node. :)
986
+ (:~
987
+ : Returns the root of the tree containing the context node.
988
+ :)
794
989
  declare function fn:root() as node() external;
990
+
795
991
  (:~
796
992
  : Returns the root of the tree containing a node.
797
993
  : @param $arg The node
@@ -799,8 +995,11 @@ declare function fn:root() as node() external;
799
995
  :)
800
996
  declare function fn:root($arg as node()?) as node()? external;
801
997
 
802
- (:~ Returns the path to the context node. :)
998
+ (:~
999
+ : Returns the path to the context node.
1000
+ :)
803
1001
  declare function fn:path() as xs:string? external;
1002
+
804
1003
  (:~
805
1004
  : Returns an XPath expression that uniquely identifies a node within its document.
806
1005
  : @param $arg The node
@@ -808,8 +1007,11 @@ declare function fn:path() as xs:string? external;
808
1007
  :)
809
1008
  declare function fn:path($arg as node()?) as xs:string? external;
810
1009
 
811
- (:~ Tests whether the context node has child nodes. :)
1010
+ (:~
1011
+ : Tests whether the context node has child nodes.
1012
+ :)
812
1013
  declare function fn:has-children() as xs:boolean external;
1014
+
813
1015
  (:~
814
1016
  : Tests whether a node has child nodes.
815
1017
  : @param $node The node to test
@@ -831,8 +1033,11 @@ declare function fn:innermost($nodes as node()*) as node()* external;
831
1033
  :)
832
1034
  declare function fn:outermost($nodes as node()*) as node()* external;
833
1035
 
834
- (:~ Generates a unique ID string for the context node. :)
1036
+ (:~
1037
+ : Generates a unique ID string for the context node.
1038
+ :)
835
1039
  declare function fn:generate-id() as xs:string external;
1040
+
836
1041
  (:~
837
1042
  : Generates a unique ID string for a node.
838
1043
  : @param $arg The node
@@ -906,50 +1111,109 @@ declare function fn:static-base-uri() as xs:anyURI? external;
906
1111
  :)
907
1112
  declare function fn:dateTime($arg1 as xs:date?, $arg2 as xs:time?) as xs:dateTime? external;
908
1113
 
909
- (:~ @param $arg A duration @return The years component :)
1114
+ (:~
1115
+ : @param $arg A duration @return The years component
1116
+ :)
910
1117
  declare function fn:years-from-duration($arg as xs:duration?) as xs:integer? external;
911
- (:~ @param $arg A duration @return The months component :)
1118
+
1119
+ (:~
1120
+ : @param $arg A duration @return The months component
1121
+ :)
912
1122
  declare function fn:months-from-duration($arg as xs:duration?) as xs:integer? external;
913
- (:~ @param $arg A duration @return The days component :)
1123
+
1124
+ (:~
1125
+ : @param $arg A duration @return The days component
1126
+ :)
914
1127
  declare function fn:days-from-duration($arg as xs:duration?) as xs:integer? external;
915
- (:~ @param $arg A duration @return The hours component :)
1128
+
1129
+ (:~
1130
+ : @param $arg A duration @return The hours component
1131
+ :)
916
1132
  declare function fn:hours-from-duration($arg as xs:duration?) as xs:integer? external;
917
- (:~ @param $arg A duration @return The minutes component :)
1133
+
1134
+ (:~
1135
+ : @param $arg A duration @return The minutes component
1136
+ :)
918
1137
  declare function fn:minutes-from-duration($arg as xs:duration?) as xs:integer? external;
919
- (:~ @param $arg A duration @return The seconds component :)
1138
+
1139
+ (:~
1140
+ : @param $arg A duration @return The seconds component
1141
+ :)
920
1142
  declare function fn:seconds-from-duration($arg as xs:duration?) as xs:decimal? external;
921
1143
 
922
- (:~ @param $arg A dateTime @return The year component :)
1144
+ (:~
1145
+ : @param $arg A dateTime @return The year component
1146
+ :)
923
1147
  declare function fn:year-from-dateTime($arg as xs:dateTime?) as xs:integer? external;
924
- (:~ @param $arg A dateTime @return The month component (1–12) :)
1148
+
1149
+ (:~
1150
+ : @param $arg A dateTime @return The month component (1–12)
1151
+ :)
925
1152
  declare function fn:month-from-dateTime($arg as xs:dateTime?) as xs:integer? external;
926
- (:~ @param $arg A dateTime @return The day-of-month component (1–31) :)
1153
+
1154
+ (:~
1155
+ : @param $arg A dateTime @return The day-of-month component (1–31)
1156
+ :)
927
1157
  declare function fn:day-from-dateTime($arg as xs:dateTime?) as xs:integer? external;
928
- (:~ @param $arg A dateTime @return The hours component (0–23) :)
1158
+
1159
+ (:~
1160
+ : @param $arg A dateTime @return The hours component (0–23)
1161
+ :)
929
1162
  declare function fn:hours-from-dateTime($arg as xs:dateTime?) as xs:integer? external;
930
- (:~ @param $arg A dateTime @return The minutes component (0–59) :)
1163
+
1164
+ (:~
1165
+ : @param $arg A dateTime @return The minutes component (0–59)
1166
+ :)
931
1167
  declare function fn:minutes-from-dateTime($arg as xs:dateTime?) as xs:integer? external;
932
- (:~ @param $arg A dateTime @return The seconds component :)
1168
+
1169
+ (:~
1170
+ : @param $arg A dateTime @return The seconds component
1171
+ :)
933
1172
  declare function fn:seconds-from-dateTime($arg as xs:dateTime?) as xs:decimal? external;
934
- (:~ @param $arg A dateTime @return The timezone as a dayTimeDuration :)
1173
+
1174
+ (:~
1175
+ : @param $arg A dateTime @return The timezone as a dayTimeDuration
1176
+ :)
935
1177
  declare function fn:timezone-from-dateTime($arg as xs:dateTime?) as xs:dayTimeDuration? external;
936
1178
 
937
- (:~ @param $arg A date @return The year component :)
1179
+ (:~
1180
+ : @param $arg A date @return The year component
1181
+ :)
938
1182
  declare function fn:year-from-date($arg as xs:date?) as xs:integer? external;
939
- (:~ @param $arg A date @return The month component (1–12) :)
1183
+
1184
+ (:~
1185
+ : @param $arg A date @return The month component (1–12)
1186
+ :)
940
1187
  declare function fn:month-from-date($arg as xs:date?) as xs:integer? external;
941
- (:~ @param $arg A date @return The day-of-month component (1–31) :)
1188
+
1189
+ (:~
1190
+ : @param $arg A date @return The day-of-month component (1–31)
1191
+ :)
942
1192
  declare function fn:day-from-date($arg as xs:date?) as xs:integer? external;
943
- (:~ @param $arg A date @return The timezone as a dayTimeDuration :)
1193
+
1194
+ (:~
1195
+ : @param $arg A date @return The timezone as a dayTimeDuration
1196
+ :)
944
1197
  declare function fn:timezone-from-date($arg as xs:date?) as xs:dayTimeDuration? external;
945
1198
 
946
- (:~ @param $arg A time @return The hours component (0–23) :)
1199
+ (:~
1200
+ : @param $arg A time @return The hours component (0–23)
1201
+ :)
947
1202
  declare function fn:hours-from-time($arg as xs:time?) as xs:integer? external;
948
- (:~ @param $arg A time @return The minutes component (0–59) :)
1203
+
1204
+ (:~
1205
+ : @param $arg A time @return The minutes component (0–59)
1206
+ :)
949
1207
  declare function fn:minutes-from-time($arg as xs:time?) as xs:integer? external;
950
- (:~ @param $arg A time @return The seconds component :)
1208
+
1209
+ (:~
1210
+ : @param $arg A time @return The seconds component
1211
+ :)
951
1212
  declare function fn:seconds-from-time($arg as xs:time?) as xs:decimal? external;
952
- (:~ @param $arg A time @return The timezone as a dayTimeDuration :)
1213
+
1214
+ (:~
1215
+ : @param $arg A time @return The timezone as a dayTimeDuration
1216
+ :)
953
1217
  declare function fn:timezone-from-time($arg as xs:time?) as xs:dayTimeDuration? external;
954
1218
 
955
1219
  (:~
@@ -958,22 +1222,36 @@ declare function fn:timezone-from-time($arg as xs:time?) as xs:dayTimeDuration?
958
1222
  : @return The adjusted dateTime
959
1223
  :)
960
1224
  declare function fn:adjust-dateTime-to-timezone($arg as xs:dateTime?) as xs:dateTime? external;
1225
+
961
1226
  (:~
962
1227
  : Adjusts a dateTime to a given timezone.
963
1228
  : @param $arg The dateTime to adjust
964
1229
  : @param $timezone The target timezone, or empty sequence to remove timezone
965
1230
  : @return The adjusted dateTime
966
1231
  :)
967
- declare function fn:adjust-dateTime-to-timezone($arg as xs:dateTime?, $timezone as xs:dayTimeDuration?) as xs:dateTime? external;
1232
+ declare function fn:adjust-dateTime-to-timezone(
1233
+ $arg as xs:dateTime?,
1234
+ $timezone as xs:dayTimeDuration?
1235
+ ) as xs:dateTime? external;
968
1236
 
969
- (:~ @param $arg Date to adjust @return Adjusted to implicit timezone :)
1237
+ (:~
1238
+ : @param $arg Date to adjust @return Adjusted to implicit timezone
1239
+ :)
970
1240
  declare function fn:adjust-date-to-timezone($arg as xs:date?) as xs:date? external;
971
- (:~ @param $arg Date @param $timezone Target timezone :)
1241
+
1242
+ (:~
1243
+ : @param $arg Date @param $timezone Target timezone
1244
+ :)
972
1245
  declare function fn:adjust-date-to-timezone($arg as xs:date?, $timezone as xs:dayTimeDuration?) as xs:date? external;
973
1246
 
974
- (:~ @param $arg Time to adjust @return Adjusted to implicit timezone :)
1247
+ (:~
1248
+ : @param $arg Time to adjust @return Adjusted to implicit timezone
1249
+ :)
975
1250
  declare function fn:adjust-time-to-timezone($arg as xs:time?) as xs:time? external;
976
- (:~ @param $arg Time @param $timezone Target timezone :)
1251
+
1252
+ (:~
1253
+ : @param $arg Time @param $timezone Target timezone
1254
+ :)
977
1255
  declare function fn:adjust-time-to-timezone($arg as xs:time?, $timezone as xs:dayTimeDuration?) as xs:time? external;
978
1256
 
979
1257
  (:~
@@ -983,18 +1261,49 @@ declare function fn:adjust-time-to-timezone($arg as xs:time?, $timezone as xs:da
983
1261
  : @return The formatted string
984
1262
  :)
985
1263
  declare function fn:format-dateTime($value as xs:dateTime?, $picture as xs:string) as xs:string? external;
986
- (:~ @param $value dateTime @param $picture Picture @param $language Language @param $calendar Calendar @param $place Place :)
987
- declare function fn:format-dateTime($value as xs:dateTime?, $picture as xs:string, $language as xs:string?, $calendar as xs:string?, $place as xs:string?) as xs:string? external;
988
1264
 
989
- (:~ @param $value Date @param $picture Picture @return Formatted date string :)
1265
+ (:~
1266
+ : @param $value dateTime @param $picture Picture @param $language Language @param $calendar Calendar @param $place Place
1267
+ :)
1268
+ declare function fn:format-dateTime(
1269
+ $value as xs:dateTime?,
1270
+ $picture as xs:string,
1271
+ $language as xs:string?,
1272
+ $calendar as xs:string?,
1273
+ $place as xs:string?
1274
+ ) as xs:string? external;
1275
+
1276
+ (:~
1277
+ : @param $value Date @param $picture Picture @return Formatted date string
1278
+ :)
990
1279
  declare function fn:format-date($value as xs:date?, $picture as xs:string) as xs:string? external;
991
- (:~ @param $value Date @param $picture Picture @param $language Language @param $calendar Calendar @param $place Place :)
992
- declare function fn:format-date($value as xs:date?, $picture as xs:string, $language as xs:string?, $calendar as xs:string?, $place as xs:string?) as xs:string? external;
993
1280
 
994
- (:~ @param $value Time @param $picture Picture @return Formatted time string :)
1281
+ (:~
1282
+ : @param $value Date @param $picture Picture @param $language Language @param $calendar Calendar @param $place Place
1283
+ :)
1284
+ declare function fn:format-date(
1285
+ $value as xs:date?,
1286
+ $picture as xs:string,
1287
+ $language as xs:string?,
1288
+ $calendar as xs:string?,
1289
+ $place as xs:string?
1290
+ ) as xs:string? external;
1291
+
1292
+ (:~
1293
+ : @param $value Time @param $picture Picture @return Formatted time string
1294
+ :)
995
1295
  declare function fn:format-time($value as xs:time?, $picture as xs:string) as xs:string? external;
996
- (:~ @param $value Time @param $picture Picture @param $language Language @param $calendar Calendar @param $place Place :)
997
- declare function fn:format-time($value as xs:time?, $picture as xs:string, $language as xs:string?, $calendar as xs:string?, $place as xs:string?) as xs:string? external;
1296
+
1297
+ (:~
1298
+ : @param $value Time @param $picture Picture @param $language Language @param $calendar Calendar @param $place Place
1299
+ :)
1300
+ declare function fn:format-time(
1301
+ $value as xs:time?,
1302
+ $picture as xs:string,
1303
+ $language as xs:string?,
1304
+ $calendar as xs:string?,
1305
+ $place as xs:string?
1306
+ ) as xs:string? external;
998
1307
 
999
1308
  (: ── Document and collection functions ──────────────────────────────────────── :)
1000
1309
 
@@ -1012,8 +1321,11 @@ declare function fn:doc($uri as xs:string?) as document-node()? external;
1012
1321
  :)
1013
1322
  declare function fn:doc-available($uri as xs:string?) as xs:boolean external;
1014
1323
 
1015
- (:~ Returns all documents in the default collection. :)
1324
+ (:~
1325
+ : Returns all documents in the default collection.
1326
+ :)
1016
1327
  declare function fn:collection() as item()* external;
1328
+
1017
1329
  (:~
1018
1330
  : Returns a collection of documents or nodes.
1019
1331
  : @param $arg The collection URI
@@ -1021,8 +1333,11 @@ declare function fn:collection() as item()* external;
1021
1333
  :)
1022
1334
  declare function fn:collection($arg as xs:string?) as item()* external;
1023
1335
 
1024
- (:~ Returns the URIs in the default URI collection. :)
1336
+ (:~
1337
+ : Returns the URIs in the default URI collection.
1338
+ :)
1025
1339
  declare function fn:uri-collection() as xs:anyURI* external;
1340
+
1026
1341
  (:~
1027
1342
  : Returns the URIs in a named URI collection.
1028
1343
  : @param $arg The collection URI
@@ -1036,7 +1351,10 @@ declare function fn:uri-collection($arg as xs:string?) as xs:anyURI* external;
1036
1351
  : @return The file content as a string
1037
1352
  :)
1038
1353
  declare function fn:unparsed-text($href as xs:string?) as xs:string? external;
1039
- (:~ @param $href URI @param $encoding Character encoding :)
1354
+
1355
+ (:~
1356
+ : @param $href URI @param $encoding Character encoding
1357
+ :)
1040
1358
  declare function fn:unparsed-text($href as xs:string?, $encoding as xs:string) as xs:string? external;
1041
1359
 
1042
1360
  (:~
@@ -1045,7 +1363,10 @@ declare function fn:unparsed-text($href as xs:string?, $encoding as xs:string) a
1045
1363
  : @return Sequence of line strings
1046
1364
  :)
1047
1365
  declare function fn:unparsed-text-lines($href as xs:string?) as xs:string* external;
1048
- (:~ @param $href URI @param $encoding Character encoding :)
1366
+
1367
+ (:~
1368
+ : @param $href URI @param $encoding Character encoding
1369
+ :)
1049
1370
  declare function fn:unparsed-text-lines($href as xs:string?, $encoding as xs:string) as xs:string* external;
1050
1371
 
1051
1372
  (:~
@@ -1054,7 +1375,10 @@ declare function fn:unparsed-text-lines($href as xs:string?, $encoding as xs:str
1054
1375
  : @return true if the resource is available
1055
1376
  :)
1056
1377
  declare function fn:unparsed-text-available($href as xs:string?) as xs:boolean external;
1057
- (:~ @param $href URI @param $encoding Character encoding :)
1378
+
1379
+ (:~
1380
+ : @param $href URI @param $encoding Character encoding
1381
+ :)
1058
1382
  declare function fn:unparsed-text-available($href as xs:string?, $encoding as xs:string) as xs:boolean external;
1059
1383
 
1060
1384
  (:~
@@ -1078,7 +1402,10 @@ declare function fn:available-environment-variables() as xs:string* external;
1078
1402
  : @return The matching elements
1079
1403
  :)
1080
1404
  declare function fn:id($arg as xs:string*) as element()* external;
1081
- (:~ @param $arg ID strings @param $node Node in the target document :)
1405
+
1406
+ (:~
1407
+ : @param $arg ID strings @param $node Node in the target document
1408
+ :)
1082
1409
  declare function fn:id($arg as xs:string*, $node as node()) as element()* external;
1083
1410
 
1084
1411
  (:~
@@ -1087,7 +1414,10 @@ declare function fn:id($arg as xs:string*, $node as node()) as element()* extern
1087
1414
  : @return The matching nodes
1088
1415
  :)
1089
1416
  declare function fn:idref($arg as xs:string*) as node()* external;
1090
- (:~ @param $arg ID strings @param $node Node in the target document :)
1417
+
1418
+ (:~
1419
+ : @param $arg ID strings @param $node Node in the target document
1420
+ :)
1091
1421
  declare function fn:idref($arg as xs:string*, $node as node()) as node()* external;
1092
1422
 
1093
1423
  (:~
@@ -1096,5 +1426,66 @@ declare function fn:idref($arg as xs:string*, $node as node()) as node()* extern
1096
1426
  : @return The matching elements
1097
1427
  :)
1098
1428
  declare function fn:element-with-id($arg as xs:string*) as element()* external;
1099
- (:~ @param $arg ID strings @param $node Node in the target document :)
1429
+
1430
+ (:~
1431
+ : @param $arg ID strings @param $node Node in the target document
1432
+ :)
1100
1433
  declare function fn:element-with-id($arg as xs:string*, $node as node()) as element()* external;
1434
+
1435
+ (:~
1436
+ : Serializes a sequence of items as a string.
1437
+ : @param $arg The sequence of items to serialize
1438
+ : @return The serialized string
1439
+ :)
1440
+ declare function fn:serialize($arg as item()*) as xs:string external;
1441
+
1442
+ (:~
1443
+ : Serializes a sequence of items as a string using the given serialization parameters.
1444
+ : @param $arg The sequence of items to serialize
1445
+ : @param $params Serialization parameters (map or element)
1446
+ : @return The serialized string
1447
+ :)
1448
+ declare function fn:serialize($arg as item()*, $params as item()?) as xs:string external;
1449
+
1450
+ (: ── XQuery 3.0 additions ────────────────────────────────────────────────────── :)
1451
+
1452
+ declare function fn:parse-xml($arg as xs:string?) as document-node(element(*))? external;
1453
+
1454
+ declare function fn:parse-xml-fragment($arg as xs:string?) as document-node()? external;
1455
+
1456
+ declare function fn:format-integer($value as xs:integer?, $picture as xs:string) as xs:string external;
1457
+ declare function fn:format-integer($value as xs:integer?, $picture as xs:string, $lang as xs:string) as xs:string external;
1458
+
1459
+ (: ── XQuery 3.1 additions ────────────────────────────────────────────────────── :)
1460
+
1461
+ declare function fn:json-doc($href as xs:string?) as item()? external;
1462
+ declare function fn:json-doc($href as xs:string?, $options as map(*)) as item()? external;
1463
+
1464
+ declare function fn:parse-json($json-text as xs:string?) as item()? external;
1465
+ declare function fn:parse-json($json-text as xs:string?, $options as map(*)) as item()? external;
1466
+
1467
+ declare function fn:json-to-xml($json-text as xs:string?) as document-node()? external;
1468
+ declare function fn:json-to-xml($json-text as xs:string?, $options as map(*)) as document-node()? external;
1469
+
1470
+ declare function fn:xml-to-json($input as node()?) as xs:string? external;
1471
+ declare function fn:xml-to-json($input as node()?, $options as map(*)) as xs:string? external;
1472
+
1473
+ declare function fn:parse-ietf-date($value as xs:string?) as xs:dateTime? external;
1474
+
1475
+ declare function fn:collation-key($key as xs:string) as xs:base64Binary external;
1476
+ declare function fn:collation-key($key as xs:string, $collation as xs:string) as xs:base64Binary external;
1477
+
1478
+ declare function fn:contains-token($input as xs:string*, $token as xs:string) as xs:boolean external;
1479
+ declare function fn:contains-token($input as xs:string*, $token as xs:string, $collation as xs:string) as xs:boolean external;
1480
+
1481
+ declare function fn:random-number-generator() as map(xs:string, item()) external;
1482
+ declare function fn:random-number-generator($seed as xs:anyAtomicType?) as map(xs:string, item()) external;
1483
+
1484
+ declare function fn:transform($options as map(xs:string, item()*)) as map(xs:string, item()*) external;
1485
+
1486
+ declare function fn:load-xquery-module($uri as xs:string) as map(xs:string, item()*) external;
1487
+ declare function fn:load-xquery-module($uri as xs:string, $options as map(xs:string, item()*)) as map(xs:string, item()*) external;
1488
+
1489
+ (: ── XQuery Update Facility ──────────────────────────────────────────────────── :)
1490
+
1491
+ declare function fn:put($node as node(), $uri as xs:string) as empty-sequence() external;