Merge lp:~zorba-coders/zorba/functx-uri-fix into lp:zorba

Proposed by Chris Hillery on 2012-01-10
Status: Rejected
Rejected by: Chris Hillery on 2013-04-10
Proposed branch: lp:~zorba-coders/zorba/functx-uri-fix
Merge into: lp:zorba
Diff against target: 13583 lines (+6690/-6672)
18 files modified
doc/code/headers_svg/zorba_headers_dependencies.xqi (+1/-1)
doc/zorba/xqdoc/images/modules.svg (+1/-1)
doc/zorba/xqdoc/src/zorba_module_dependencies.xqi (+1/-1)
doc/zorba/xqdoc/templates/www.functx.com.html (+6652/-0)
doc/zorba/xqdoc/templates/www.functx.com_index.html (+0/-6652)
modules/com/zorba-xquery/www/modules/xqdoc2xhtml/index.xq (+17/-4)
modules/functx/CMakeLists.txt (+1/-1)
modules/functx/functx.xq (+1/-1)
scripts/sanity_checks/conformance_xqftts.xqi (+1/-1)
scripts/sanity_checks/conformance_xqts.xqi (+1/-1)
scripts/sanity_checks/conformance_xquts.xqi (+1/-1)
src/context/default_uri_mappers.cpp (+6/-1)
test/rbkt/Queries/zorba/functx/substring-before-last.xq (+1/-1)
test/rbkt/Queries/zorba/spec/xquery_1_0.xq (+1/-1)
test/rbkt/Queries/zorba/spec/xquery_1_1.xq (+1/-1)
test/rbkt/Queries/zorba/string/AnalyzeString/http-client-doc.htm (+1/-1)
test/rbkt/Queries/zorba/xqdoc/moduleDocumentation.xq (+2/-2)
test/zperf/src/timings.xq (+1/-1)
To merge this branch: bzr merge lp:~zorba-coders/zorba/functx-uri-fix
Reviewer Review Type Date Requested Status
Chris Hillery 2012-01-25 Disapprove on 2013-04-10
Sorin Marian Nasoi 2012-01-10 Approve on 2012-01-25
Review via email: mp+88012@code.launchpad.net

Commit Message

Corrected URI of functx module to "http://www.functx.com" (without trailing slash).

Description of the Change

Per discussion on conf call 1/11/2012, this fix should NOT be merged until we are preparing Zorba 3.0 - it should NOT be in Zorba 2.2 if there is such a release.

To post a comment you must log in.
Zorba Build Bot (zorba-buildbot) wrote :

The attempt to merge lp:~zorba-coders/zorba/functx-uri-fix into lp:zorba failed. Below is the output from the failed tests.

CMake Error at /home/ceej/zo/testing/zorbatest/tester/TarmacLander.cmake:273 (message):
  Validation queue job functx-uri-fix-2012-01-10T07-50-05.211Z is finished.
  The final status was:

  5 tests did not succeed - changes not commited.

Error in read script: /home/ceej/zo/testing/zorbatest/tester/TarmacLander.cmake

Zorba Build Bot (zorba-buildbot) wrote :

The attempt to merge lp:~zorba-coders/zorba/functx-uri-fix into lp:zorba failed. Below is the output from the failed tests.

CMake Error at /home/ceej/zo/testing/zorbatest/tester/TarmacLander.cmake:273 (message):
  Validation queue job functx-uri-fix-2012-01-10T09-14-14.724Z is finished.
  The final status was:

  1 tests did not succeed - changes not commited.

Error in read script: /home/ceej/zo/testing/zorbatest/tester/TarmacLander.cmake

Zorba Build Bot (zorba-buildbot) wrote :

Validation queue job functx-uri-fix-2012-01-11T01-08-06.641Z is finished. The final status was:

All tests succeeded!

Zorba Build Bot (zorba-buildbot) wrote :

Voting does not meet specified criteria. Required: Approve > 1, Disapprove < 1. Got: 1 Pending.

Cezar Andrei (cezar-andrei) wrote :

Fix for allowing both URI's ending with or without slash '/' should also be added before 3.0 release.

Chris Hillery (ceejatec) wrote :

> Fix for allowing both URI's ending with or without slash '/' should also be
> added before 3.0 release.

As discussed on the mailing list, it is not possible to support both URIs simultaneously (without some ugly hacks). Is that what you meant? If not, what did you mean?

Cezar Andrei (cezar-andrei) wrote :

I'm talking about this problem, but solved cleanly without ugly hacks.

Chris Hillery (ceejatec) wrote :

AFAIK there are no suggestions on the table on how to allow this without special-cases or hacks. Also AFAIK there is no outstanding requirement to do so. The plan is to change the URI in 3.0 and be done with it.

The fact is that our name-mangling mechanism for mapping URIs to filesystem paths is not 100% one-to-one; it is slightly lossy, in that several URIs may map to the same filesystem path. This has always been a theoretical problem, not an actual one, in the past. The only reason it's an actual problem this time is because of a different bug (authoring our FunctX module with the wrong URI). IMHO solving this problem is not a high priority, and doing so fully would at the least make our on-disk layout rather uglier than it is.

review: Approve
Chris Hillery (ceejatec) wrote :

I believe this branch has fallen too far behind the times. I will re-do the change to add the slash as part of 3.0.

review: Disapprove

Unmerged revisions

10612. By Sorin Marian Nasoi <email address hidden> on 2012-01-10

Fixed the XQDoc generation.

10611. By Chris Hillery on 2012-01-10

When file-izing a URI, if the path component is length 0, force it to "/" to
match the Zorba name-mangling mechanism.

10610. By Chris Hillery on 2012-01-10

Corrected URI of functx module to "http://www.functx.com" (without trailing
slash).

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'doc/code/headers_svg/zorba_headers_dependencies.xqi'
2--- doc/code/headers_svg/zorba_headers_dependencies.xqi 2011-08-18 19:46:33 +0000
3+++ doc/code/headers_svg/zorba_headers_dependencies.xqi 2012-01-10 23:15:30 +0000
4@@ -22,7 +22,7 @@
5 import module namespace file = "http://expath.org/ns/file";
6 import module namespace dot = "http://www.zorba-xquery.com/modules/image/graphviz";
7 import module namespace html = "http://www.zorba-xquery.com/modules/converters/html";
8-import module namespace functx = "http://www.functx.com/";
9+import module namespace functx = "http://www.functx.com";
10
11 declare namespace ann = "http://www.zorba-xquery.com/annotations";
12
13
14=== modified file 'doc/zorba/xqdoc/images/modules.svg'
15--- doc/zorba/xqdoc/images/modules.svg 2011-08-01 17:55:38 +0000
16+++ doc/zorba/xqdoc/images/modules.svg 2012-01-10 23:15:30 +0000
17@@ -1006,7 +1006,7 @@
18 </g>
19 <!-- functx_16 -->
20 <g id="node89" class="node"><title>functx_16</title>
21-<a xlink:href="../www.functx.com_index.html" xlink:title="(Zorba-core) module uri=http://www.functx.com/">
22+<a xlink:href="../www.functx.com_index.html" xlink:title="(Zorba-core) module uri=http://www.functx.com">
23 <ellipse fill="white" stroke="white" cx="8411" cy="-301" rx="36.0624" ry="19.0919"/>
24 <text text-anchor="middle" x="8411" y="-297.9" font-family="Times Roman,serif" font-size="14.00" fill="red">functx</text>
25 </a>
26
27=== modified file 'doc/zorba/xqdoc/src/zorba_module_dependencies.xqi'
28--- doc/zorba/xqdoc/src/zorba_module_dependencies.xqi 2011-08-12 16:07:57 +0000
29+++ doc/zorba/xqdoc/src/zorba_module_dependencies.xqi 2012-01-10 23:15:30 +0000
30@@ -26,7 +26,7 @@
31 import module namespace file = "http://expath.org/ns/file";
32 import module namespace dot = "http://www.zorba-xquery.com/modules/image/graphviz";
33 import module namespace xqdoc2html = "http://www.zorba-xquery.com/modules/xqdoc2xhtml/";
34-import module namespace functx = "http://www.functx.com/";
35+import module namespace functx = "http://www.functx.com";
36
37 import module namespace dml = "http://www.zorba-xquery.com/modules/store/static/collections/dml";
38 import module namespace ddl = "http://www.zorba-xquery.com/modules/store/static/collections/ddl";
39
40=== added file 'doc/zorba/xqdoc/templates/www.functx.com.html'
41--- doc/zorba/xqdoc/templates/www.functx.com.html 1970-01-01 00:00:00 +0000
42+++ doc/zorba/xqdoc/templates/www.functx.com.html 2012-01-10 23:15:30 +0000
43@@ -0,0 +1,6652 @@
44+<html>
45+ <head>
46+ <title>Documentation for http://www.functx.com</title>
47+ <meta content="text/html; charset=UTF-8" http-equiv="content-type" />
48+ <meta content="public" http-equiv="CACHE-CONTROL" />
49+ <meta content="-1" http-equiv="Expires" />
50+ <link rel="stylesheet" type="text/css" href="styles/main.css" />
51+ <link rel="stylesheet" href="styles/jquery.treeview.css" />
52+ <script type="text/javascript" src="lib/jquery.js"></script>
53+ <script type="text/javascript" src="lib/jquery.cookie.js"></script>
54+ <script type="text/javascript" src="lib/jquery.treeview.js"></script>
55+ <script type="text/javascript" src="lib/jquery.treeview.min.js"></script>
56+ <script type="text/javascript" src="lib/shCore.js"></script>
57+ <script type="text/javascript" src="lib/shBrushXQuery.js"></script>
58+ <script type="text/javascript" src="lib/shBrushXml.js"></script>
59+ <link type="text/css" rel="stylesheet" href="styles/shCore.css" />
60+ <link type="text/css" rel="stylesheet" href="styles/shThemeDefault.css" />
61+ <link type="text/css" rel="stylesheet" href="styles/shThemeXQuery.css" />
62+ <script type="text/javascript">
63+ SyntaxHighlighter.all()
64+ </script>
65+ <script type="text/javascript">
66+ jQuery(document).ready(function() {
67+ $("#documentation").treeview({
68+ control: "#treecontrol",
69+ animated: "fast",
70+ collapsed: true,
71+ unique: false,
72+ persist: "cookie"
73+ });
74+ });
75+ </script>
76+ </head>
77+ <body>
78+ <div id="header">
79+ <div class="innerheader text-left">
80+ <div id="logo_container">
81+ <a href="../../../../../html/index.html">
82+ <img src="images/zorba_logo.png" alt="Zorba C++ XQuery Processor" />
83+ </a>
84+ <h1>
85+ <a href="../../../../../html/index.html">Zorba</a>
86+ </h1>
87+ <p>
88+ <a href="../../../../../html/index.html">The XQuery Processor</a>
89+ </p>
90+ </div>
91+ <div id="innermenu" class="box">
92+ <ul>
93+ <li style="width:102px !important;">
94+ <a href="../../../zorba/html/index.html" class="documentation">Documentation</a>
95+ </li>
96+ <li>
97+ <a href="http://try.zorba-xquery.com" target="_blank" class="tryzorba">Live Demo</a>
98+ </li>
99+ <li>
100+ <a href="../../../../../html/modules.html" class="modules">Modules</a>
101+ </li>
102+ <li>
103+ <a href="../../../../../html/downloads.html" class="download">Download</a>
104+ </li>
105+ <li>
106+ <a href="../../../../../html/tools.html" class="tools">Tools</a>
107+ </li>
108+ <li>
109+ <a href="../../../../../html/blog.html" class="blog">Blog</a>
110+ </li>
111+ <li>
112+ <a href="../../../../../html/code.html" class="open">Code</a>
113+ </li>
114+ </ul>
115+ </div>
116+ </div>
117+ </div>
118+ <div id="main">
119+ <div id="leftMenu">
120+ <div id="treecontrol">
121+ <a title="Collapse the entire tree below" href="#">
122+ <img src="images/minus.gif" /> Collapse All</a>
123+ <a title="Expand the entire tree below" href="#">
124+ <img src="images/plus.gif" /> Expand All</a>
125+ </div>
126+ </div>
127+ <div id="rightcontent">
128+ <h1>http://www.functx.com<sup>
129+ <img src="images/ZCsmall.gif" alt="ZC" title="This module is part of Zorba core." />
130+ </sup>
131+ </h1>
132+ <div class="section">
133+ <span id="module_description">Module Description</span>
134+ </div>
135+ <span>Before using any of the functions below please remember to import the module namespace:
136+ <pre class="brush: xquery;">import module namespace functx = "http://www.functx.com";</pre>
137+ </span>
138+ <p> --------------------------------
139+ The FunctX XQuery Function Library
140+ --------------------------------
141+ Copyright (C) 2007 Datypic
142+ This library is free software; you can redistribute it and/or
143+ modify it under the terms of the GNU Lesser General Public
144+ License as published by the Free Software Foundation; either
145+ version 2.1 of the License.
146+ This library is distributed in the hope that it will be useful,
147+ but WITHOUT ANY WARRANTY; without even the implied warranty of
148+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
149+ Lesser General Public License for more details.
150+ You should have received a copy of the GNU Lesser General Public
151+ License along with this library; if not, write to the Free Software
152+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
153+ For more information on the FunctX XQuery library, contact contrib@functx.com.
154+</p>
155+ <div class="subsubsection">Version:</div>
156+ <p class="annotationText">1.0</p>
157+ <div class="section">
158+ <span id="module_resources">Module Resources</span>
159+ </div>
160+ <ul>
161+ <li>the XQuery module can be found <a href="modules/www.functx.com_index.html" target="_blank">here</a>.</li>
162+ </ul>
163+ <div class="section">
164+ <span id="external_specifications">Related Documentation</span>
165+ </div>
166+ <p>For more details please also see:<ul>
167+ <li>
168+ <a href="http://www.xqueryfunctions.com" target="_blank">http://www.xqueryfunctions.com</a>
169+ </li>
170+ </ul>
171+ </p>
172+ <div class="section">
173+ <span id="variables">Namespaces</span>
174+ </div>
175+ <table class="varlist">
176+ <tr>
177+ <td>functx</td>
178+ <td>http://www.functx.com</td>
179+ </tr>
180+ </table>
181+ <div class="section">
182+ <span id="function_summary">Function Summary</span>
183+ </div>
184+ <table class="funclist">
185+ <tr>
186+ <td class="type">
187+ <span class="no_underline"></span>
188+ </td>
189+ <td>
190+ <tt>
191+ <span class="functName">
192+ <a href="#add-attributes-3" title="Adds attributes to XML elements">add-attributes</a>
193+ </span>
194+ <span class="functName"></span> (
195+<span class="funcParam"> $elements</span> as element(*)*,
196+<span class="funcParam"> $attrNames</span> as xs:QName*,
197+<span class="funcParam"> $attrValues</span> as xs:anyAtomicType*
198+ ) as element(*)?<br />
199+ <span class="padding"></span>
200+ </tt>
201+ </td>
202+ </tr>
203+ <tr>
204+ <td class="type">
205+ <span class="no_underline"></span>
206+ </td>
207+ <td>
208+ <tt>
209+ <span class="functName">
210+ <a href="#add-months-2" title="Adds months to a date">add-months</a>
211+ </span>
212+ <span class="functName"></span> (
213+<span class="funcParam"> $date</span> as xs:anyAtomicType?,
214+<span class="funcParam"> $months</span> as xs:integer
215+ ) as xs:date?<br />
216+ <span class="padding"></span>
217+ </tt>
218+ </td>
219+ </tr>
220+ <tr>
221+ <td class="type">
222+ <span class="no_underline"></span>
223+ </td>
224+ <td>
225+ <tt>
226+ <span class="functName">
227+ <a href="#add-or-update-attributes-3" title="Adds attributes to XML elements">add-or-update-attributes</a>
228+ </span>
229+ <span class="functName"></span> (
230+<span class="funcParam"> $elements</span> as element(*)*,
231+<span class="funcParam"> $attrNames</span> as xs:QName*,
232+<span class="funcParam"> $attrValues</span> as xs:anyAtomicType*
233+ ) as element(*)?<br />
234+ <span class="padding"></span>
235+ </tt>
236+ </td>
237+ </tr>
238+ <tr>
239+ <td class="type">
240+ <span class="no_underline"></span>
241+ </td>
242+ <td>
243+ <tt>
244+ <span class="functName">
245+ <a href="#all-whitespace-1" title="Whether a value is all whitespace or a zero-length string">all-whitespace</a>
246+ </span>
247+ <span class="functName"></span> (
248+<span class="funcParam"> $arg</span> as xs:string?
249+ ) as xs:boolean<br />
250+ <span class="padding"></span>
251+ </tt>
252+ </td>
253+ </tr>
254+ <tr>
255+ <td class="type">
256+ <span class="no_underline"></span>
257+ </td>
258+ <td>
259+ <tt>
260+ <span class="functName">
261+ <a href="#are-distinct-values-1" title="Whether all the values in a sequence are distinct">are-distinct-values</a>
262+ </span>
263+ <span class="functName"></span> (
264+<span class="funcParam"> $seq</span> as xs:anyAtomicType*
265+ ) as xs:boolean<br />
266+ <span class="padding"></span>
267+ </tt>
268+ </td>
269+ </tr>
270+ <tr>
271+ <td class="type">
272+ <span class="no_underline"></span>
273+ </td>
274+ <td>
275+ <tt>
276+ <span class="functName">
277+ <a href="#atomic-type-1" title="The built-in type of an atomic value">atomic-type</a>
278+ </span>
279+ <span class="functName"></span> (
280+<span class="funcParam"> $values</span> as xs:anyAtomicType*
281+ ) as xs:string*<br />
282+ <span class="padding"></span>
283+ </tt>
284+ </td>
285+ </tr>
286+ <tr>
287+ <td class="type">
288+ <span class="no_underline"></span>
289+ </td>
290+ <td>
291+ <tt>
292+ <span class="functName">
293+ <a href="#avg-empty-is-zero-2" title="The average, counting &quot;empty&quot; values as zero">avg-empty-is-zero</a>
294+ </span>
295+ <span class="functName"></span> (
296+<span class="funcParam"> $values</span> as xs:anyAtomicType*,
297+<span class="funcParam"> $allNodes</span> as node()*
298+ ) as xs:double<br />
299+ <span class="padding"></span>
300+ </tt>
301+ </td>
302+ </tr>
303+ <tr>
304+ <td class="type">
305+ <span class="no_underline"></span>
306+ </td>
307+ <td>
308+ <tt>
309+ <span class="functName">
310+ <a href="#between-exclusive-3" title="Whether a value is between two provided values">between-exclusive</a>
311+ </span>
312+ <span class="functName"></span> (
313+<span class="funcParam"> $value</span> as xs:anyAtomicType?,
314+<span class="funcParam"> $minValue</span> as xs:anyAtomicType,
315+<span class="funcParam"> $maxValue</span> as xs:anyAtomicType
316+ ) as xs:boolean<br />
317+ <span class="padding"></span>
318+ </tt>
319+ </td>
320+ </tr>
321+ <tr>
322+ <td class="type">
323+ <span class="no_underline"></span>
324+ </td>
325+ <td>
326+ <tt>
327+ <span class="functName">
328+ <a href="#between-inclusive-3" title="Whether a value is between two provided values, or equal to one of them">between-inclusive</a>
329+ </span>
330+ <span class="functName"></span> (
331+<span class="funcParam"> $value</span> as xs:anyAtomicType?,
332+<span class="funcParam"> $minValue</span> as xs:anyAtomicType,
333+<span class="funcParam"> $maxValue</span> as xs:anyAtomicType
334+ ) as xs:boolean<br />
335+ <span class="padding"></span>
336+ </tt>
337+ </td>
338+ </tr>
339+ <tr>
340+ <td class="type">
341+ <span class="no_underline"></span>
342+ </td>
343+ <td>
344+ <tt>
345+ <span class="functName">
346+ <a href="#camel-case-to-words-2" title="Turns a camelCase string into space-separated words">camel-case-to-words</a>
347+ </span>
348+ <span class="functName"></span> (
349+<span class="funcParam"> $arg</span> as xs:string?,
350+<span class="funcParam"> $delim</span> as xs:string
351+ ) as xs:string<br />
352+ <span class="padding"></span>
353+ </tt>
354+ </td>
355+ </tr>
356+ <tr>
357+ <td class="type">
358+ <span class="no_underline"></span>
359+ </td>
360+ <td>
361+ <tt>
362+ <span class="functName">
363+ <a href="#capitalize-first-1" title="Capitalizes the first character of a string">capitalize-first</a>
364+ </span>
365+ <span class="functName"></span> (
366+<span class="funcParam"> $arg</span> as xs:string?
367+ ) as xs:string?<br />
368+ <span class="padding"></span>
369+ </tt>
370+ </td>
371+ </tr>
372+ <tr>
373+ <td class="type">
374+ <span class="no_underline"></span>
375+ </td>
376+ <td>
377+ <tt>
378+ <span class="functName">
379+ <a href="#change-element-names-deep-3" title="Changes the names of elements in an XML fragment">change-element-names-deep</a>
380+ </span>
381+ <span class="functName"></span> (
382+<span class="funcParam"> $nodes</span> as node()*,
383+<span class="funcParam"> $oldNames</span> as xs:QName*,
384+<span class="funcParam"> $newNames</span> as xs:QName*
385+ ) as node()*<br />
386+ <span class="padding"></span>
387+ </tt>
388+ </td>
389+ </tr>
390+ <tr>
391+ <td class="type">
392+ <span class="no_underline"></span>
393+ </td>
394+ <td>
395+ <tt>
396+ <span class="functName">
397+ <a href="#change-element-ns-3" title="Changes the namespace of XML elements">change-element-ns</a>
398+ </span>
399+ <span class="functName"></span> (
400+<span class="funcParam"> $elements</span> as element(*)*,
401+<span class="funcParam"> $newns</span> as xs:string,
402+<span class="funcParam"> $prefix</span> as xs:string
403+ ) as element(*)?<br />
404+ <span class="padding"></span>
405+ </tt>
406+ </td>
407+ </tr>
408+ <tr>
409+ <td class="type">
410+ <span class="no_underline"></span>
411+ </td>
412+ <td>
413+ <tt>
414+ <span class="functName">
415+ <a href="#change-element-ns-deep-3" title="Changes the namespace of XML elements and its descendants">change-element-ns-deep</a>
416+ </span>
417+ <span class="functName"></span> (
418+<span class="funcParam"> $nodes</span> as node()*,
419+<span class="funcParam"> $newns</span> as xs:string,
420+<span class="funcParam"> $prefix</span> as xs:string
421+ ) as node()*<br />
422+ <span class="padding"></span>
423+ </tt>
424+ </td>
425+ </tr>
426+ <tr>
427+ <td class="type">
428+ <span class="no_underline"></span>
429+ </td>
430+ <td>
431+ <tt>
432+ <span class="functName">
433+ <a href="#chars-1" title="Converts a string to a sequence of characters">chars</a>
434+ </span>
435+ <span class="functName"></span> (
436+<span class="funcParam"> $arg</span> as xs:string?
437+ ) as xs:string*<br />
438+ <span class="padding"></span>
439+ </tt>
440+ </td>
441+ </tr>
442+ <tr>
443+ <td class="type">
444+ <span class="no_underline"></span>
445+ </td>
446+ <td>
447+ <tt>
448+ <span class="functName">
449+ <a href="#contains-any-of-2" title="Whether a string contains any of a sequence of strings">contains-any-of</a>
450+ </span>
451+ <span class="functName"></span> (
452+<span class="funcParam"> $arg</span> as xs:string?,
453+<span class="funcParam"> $searchStrings</span> as xs:string*
454+ ) as xs:boolean<br />
455+ <span class="padding"></span>
456+ </tt>
457+ </td>
458+ </tr>
459+ <tr>
460+ <td class="type">
461+ <span class="no_underline"></span>
462+ </td>
463+ <td>
464+ <tt>
465+ <span class="functName">
466+ <a href="#contains-case-insensitive-2" title="Whether one string contains another, without regard to case">contains-case-insensitive</a>
467+ </span>
468+ <span class="functName"></span> (
469+<span class="funcParam"> $arg</span> as xs:string?,
470+<span class="funcParam"> $substring</span> as xs:string
471+ ) as xs:boolean?<br />
472+ <span class="padding"></span>
473+ </tt>
474+ </td>
475+ </tr>
476+ <tr>
477+ <td class="type">
478+ <span class="no_underline"></span>
479+ </td>
480+ <td>
481+ <tt>
482+ <span class="functName">
483+ <a href="#contains-word-2" title="Whether one string contains another, as a separate word">contains-word</a>
484+ </span>
485+ <span class="functName"></span> (
486+<span class="funcParam"> $arg</span> as xs:string?,
487+<span class="funcParam"> $word</span> as xs:string
488+ ) as xs:boolean<br />
489+ <span class="padding"></span>
490+ </tt>
491+ </td>
492+ </tr>
493+ <tr>
494+ <td class="type">
495+ <span class="no_underline"></span>
496+ </td>
497+ <td>
498+ <tt>
499+ <span class="functName">
500+ <a href="#copy-attributes-2" title="Copies attributes from one element to another">copy-attributes</a>
501+ </span>
502+ <span class="functName"></span> (
503+<span class="funcParam"> $copyTo</span> as element(*),
504+<span class="funcParam"> $copyFrom</span> as element(*)
505+ ) as element(*)<br />
506+ <span class="padding"></span>
507+ </tt>
508+ </td>
509+ </tr>
510+ <tr>
511+ <td class="type">
512+ <span class="no_underline"></span>
513+ </td>
514+ <td>
515+ <tt>
516+ <span class="functName">
517+ <a href="#date-3" title="Construct a date from a year, month and day">date</a>
518+ </span>
519+ <span class="functName"></span> (
520+<span class="funcParam"> $year</span> as xs:anyAtomicType,
521+<span class="funcParam"> $month</span> as xs:anyAtomicType,
522+<span class="funcParam"> $day</span> as xs:anyAtomicType
523+ ) as xs:date<br />
524+ <span class="padding"></span>
525+ </tt>
526+ </td>
527+ </tr>
528+ <tr>
529+ <td class="type">
530+ <span class="no_underline"></span>
531+ </td>
532+ <td>
533+ <tt>
534+ <span class="functName">
535+ <a href="#dateTime-6" title="Construct a date/time from individual components">dateTime</a>
536+ </span>
537+ <span class="functName"></span> (
538+<span class="funcParam"> $year</span> as xs:anyAtomicType,
539+<span class="funcParam"> $month</span> as xs:anyAtomicType,
540+<span class="funcParam"> $day</span> as xs:anyAtomicType,
541+<span class="funcParam"> $hour</span> as xs:anyAtomicType,
542+<span class="funcParam"> $minute</span> as xs:anyAtomicType,
543+<span class="funcParam"> $second</span> as xs:anyAtomicType
544+ ) as xs:dateTime<br />
545+ <span class="padding"></span>
546+ </tt>
547+ </td>
548+ </tr>
549+ <tr>
550+ <td class="type">
551+ <span class="no_underline"></span>
552+ </td>
553+ <td>
554+ <tt>
555+ <span class="functName">
556+ <a href="#day-in-year-1" title="The day of the year (a number between 1 and 366)">day-in-year</a>
557+ </span>
558+ <span class="functName"></span> (
559+<span class="funcParam"> $date</span> as xs:anyAtomicType?
560+ ) as xs:integer?<br />
561+ <span class="padding"></span>
562+ </tt>
563+ </td>
564+ </tr>
565+ <tr>
566+ <td class="type">
567+ <span class="no_underline"></span>
568+ </td>
569+ <td>
570+ <tt>
571+ <span class="functName">
572+ <a href="#day-of-week-1" title="The day of the week, from a date">day-of-week</a>
573+ </span>
574+ <span class="functName"></span> (
575+<span class="funcParam"> $date</span> as xs:anyAtomicType?
576+ ) as xs:integer?<br />
577+ <span class="padding"></span>
578+ </tt>
579+ </td>
580+ </tr>
581+ <tr>
582+ <td class="type">
583+ <span class="no_underline"></span>
584+ </td>
585+ <td>
586+ <tt>
587+ <span class="functName">
588+ <a href="#day-of-week-abbrev-en-1" title="The abbreviated day of the week, from a date, in English">day-of-week-abbrev-en</a>
589+ </span>
590+ <span class="functName"></span> (
591+<span class="funcParam"> $date</span> as xs:anyAtomicType?
592+ ) as xs:string?<br />
593+ <span class="padding"></span>
594+ </tt>
595+ </td>
596+ </tr>
597+ <tr>
598+ <td class="type">
599+ <span class="no_underline"></span>
600+ </td>
601+ <td>
602+ <tt>
603+ <span class="functName">
604+ <a href="#day-of-week-name-en-1" title="The name of the day of the week, from a date, in English">day-of-week-name-en</a>
605+ </span>
606+ <span class="functName"></span> (
607+<span class="funcParam"> $date</span> as xs:anyAtomicType?
608+ ) as xs:string?<br />
609+ <span class="padding"></span>
610+ </tt>
611+ </td>
612+ </tr>
613+ <tr>
614+ <td class="type">
615+ <span class="no_underline"></span>
616+ </td>
617+ <td>
618+ <tt>
619+ <span class="functName">
620+ <a href="#dayTimeDuration-4" title="Construct a dayTimeDuration from a number of days, hours, etc.">dayTimeDuration</a>
621+ </span>
622+ <span class="functName"></span> (
623+<span class="funcParam"> $days</span> as xs:decimal?,
624+<span class="funcParam"> $hours</span> as xs:decimal?,
625+<span class="funcParam"> $minutes</span> as xs:decimal?,
626+<span class="funcParam"> $seconds</span> as xs:decimal?
627+ ) as xs:dayTimeDuration<br />
628+ <span class="padding"> Construct a dayTimeDuration from a number of days, hours, etc.</span>
629+ </tt>
630+ </td>
631+ </tr>
632+ <tr>
633+ <td class="type">
634+ <span class="no_underline"></span>
635+ </td>
636+ <td>
637+ <tt>
638+ <span class="functName">
639+ <a href="#days-in-month-1" title="Number of days in the month">days-in-month</a>
640+ </span>
641+ <span class="functName"></span> (
642+<span class="funcParam"> $date</span> as xs:anyAtomicType?
643+ ) as xs:integer?<br />
644+ <span class="padding"></span>
645+ </tt>
646+ </td>
647+ </tr>
648+ <tr>
649+ <td class="type">
650+ <span class="no_underline"></span>
651+ </td>
652+ <td>
653+ <tt>
654+ <span class="functName">
655+ <a href="#depth-of-node-1" title="The depth (level) of a node in an XML tree">depth-of-node</a>
656+ </span>
657+ <span class="functName"></span> (
658+<span class="funcParam"> $node</span> as node()?
659+ ) as xs:integer<br />
660+ <span class="padding"></span>
661+ </tt>
662+ </td>
663+ </tr>
664+ <tr>
665+ <td class="type">
666+ <span class="no_underline"></span>
667+ </td>
668+ <td>
669+ <tt>
670+ <span class="functName">
671+ <a href="#distinct-attribute-names-1" title="The distinct names of all attributes in an XML fragment">distinct-attribute-names</a>
672+ </span>
673+ <span class="functName"></span> (
674+<span class="funcParam"> $nodes</span> as node()*
675+ ) as xs:string*<br />
676+ <span class="padding"></span>
677+ </tt>
678+ </td>
679+ </tr>
680+ <tr>
681+ <td class="type">
682+ <span class="no_underline"></span>
683+ </td>
684+ <td>
685+ <tt>
686+ <span class="functName">
687+ <a href="#distinct-deep-1" title="The XML nodes with distinct values, taking into account attributes and descendants">distinct-deep</a>
688+ </span>
689+ <span class="functName"></span> (
690+<span class="funcParam"> $nodes</span> as node()*
691+ ) as node()*<br />
692+ <span class="padding"></span>
693+ </tt>
694+ </td>
695+ </tr>
696+ <tr>
697+ <td class="type">
698+ <span class="no_underline"></span>
699+ </td>
700+ <td>
701+ <tt>
702+ <span class="functName">
703+ <a href="#distinct-element-names-1" title="The distinct names of all elements in an XML fragment">distinct-element-names</a>
704+ </span>
705+ <span class="functName"></span> (
706+<span class="funcParam"> $nodes</span> as node()*
707+ ) as xs:string*<br />
708+ <span class="padding"></span>
709+ </tt>
710+ </td>
711+ </tr>
712+ <tr>
713+ <td class="type">
714+ <span class="no_underline"></span>
715+ </td>
716+ <td>
717+ <tt>
718+ <span class="functName">
719+ <a href="#distinct-element-paths-1" title="The distinct paths of all descendant elements in an XML fragment">distinct-element-paths</a>
720+ </span>
721+ <span class="functName"></span> (
722+<span class="funcParam"> $nodes</span> as node()*
723+ ) as xs:string*<br />
724+ <span class="padding"></span>
725+ </tt>
726+ </td>
727+ </tr>
728+ <tr>
729+ <td class="type">
730+ <span class="no_underline"></span>
731+ </td>
732+ <td>
733+ <tt>
734+ <span class="functName">
735+ <a href="#distinct-nodes-1" title="The distinct XML nodes in a sequence (by node identity)">distinct-nodes</a>
736+ </span>
737+ <span class="functName"></span> (
738+<span class="funcParam"> $nodes</span> as node()*
739+ ) as node()*<br />
740+ <span class="padding"></span>
741+ </tt>
742+ </td>
743+ </tr>
744+ <tr>
745+ <td class="type">
746+ <span class="no_underline"></span>
747+ </td>
748+ <td>
749+ <tt>
750+ <span class="functName">
751+ <a href="#duration-from-timezone-1" title="Converts a timezone like &quot;-05:00&quot; or &quot;Z&quot; into xs:dayTimeDuration">duration-from-timezone</a>
752+ </span>
753+ <span class="functName"></span> (
754+<span class="funcParam"> $timezone</span> as xs:string
755+ ) as xs:dayTimeDuration<br />
756+ <span class="padding"></span>
757+ </tt>
758+ </td>
759+ </tr>
760+ <tr>
761+ <td class="type">
762+ <span class="no_underline"></span>
763+ </td>
764+ <td>
765+ <tt>
766+ <span class="functName">
767+ <a href="#dynamic-path-2" title="Dynamically evaluates a simple XPath path">dynamic-path</a>
768+ </span>
769+ <span class="functName"></span> (
770+<span class="funcParam"> $parent</span> as node(),
771+<span class="funcParam"> $path</span> as xs:string
772+ ) as item()*<br />
773+ <span class="padding"></span>
774+ </tt>
775+ </td>
776+ </tr>
777+ <tr>
778+ <td class="type">
779+ <span class="no_underline"></span>
780+ </td>
781+ <td>
782+ <tt>
783+ <span class="functName">
784+ <a href="#escape-for-regex-1" title="Escapes regex special characters">escape-for-regex</a>
785+ </span>
786+ <span class="functName"></span> (
787+<span class="funcParam"> $arg</span> as xs:string?
788+ ) as xs:string<br />
789+ <span class="padding"></span>
790+ </tt>
791+ </td>
792+ </tr>
793+ <tr>
794+ <td class="type">
795+ <span class="no_underline"></span>
796+ </td>
797+ <td>
798+ <tt>
799+ <span class="functName">
800+ <a href="#exclusive-or-2" title="Whether one (and only one) of two boolean values is true">exclusive-or</a>
801+ </span>
802+ <span class="functName"></span> (
803+<span class="funcParam"> $arg1</span> as xs:boolean?,
804+<span class="funcParam"> $arg2</span> as xs:boolean?
805+ ) as xs:boolean?<br />
806+ <span class="padding"></span>
807+ </tt>
808+ </td>
809+ </tr>
810+ <tr>
811+ <td class="type">
812+ <span class="no_underline"></span>
813+ </td>
814+ <td>
815+ <tt>
816+ <span class="functName">
817+ <a href="#first-day-of-month-1" title="The first day of the month of a date">first-day-of-month</a>
818+ </span>
819+ <span class="functName"></span> (
820+<span class="funcParam"> $date</span> as xs:anyAtomicType?
821+ ) as xs:date?<br />
822+ <span class="padding"></span>
823+ </tt>
824+ </td>
825+ </tr>
826+ <tr>
827+ <td class="type">
828+ <span class="no_underline"></span>
829+ </td>
830+ <td>
831+ <tt>
832+ <span class="functName">
833+ <a href="#first-day-of-year-1" title="The first day of the year of a date">first-day-of-year</a>
834+ </span>
835+ <span class="functName"></span> (
836+<span class="funcParam"> $date</span> as xs:anyAtomicType?
837+ ) as xs:date?<br />
838+ <span class="padding"></span>
839+ </tt>
840+ </td>
841+ </tr>
842+ <tr>
843+ <td class="type">
844+ <span class="no_underline"></span>
845+ </td>
846+ <td>
847+ <tt>
848+ <span class="functName">
849+ <a href="#first-node-1" title="The XML node in a sequence that appears first in document order">first-node</a>
850+ </span>
851+ <span class="functName"></span> (
852+<span class="funcParam"> $nodes</span> as node()*
853+ ) as node()?<br />
854+ <span class="padding"></span>
855+ </tt>
856+ </td>
857+ </tr>
858+ <tr>
859+ <td class="type">
860+ <span class="no_underline"></span>
861+ </td>
862+ <td>
863+ <tt>
864+ <span class="functName">
865+ <a href="#follows-not-descendant-2" title="Whether an XML node follows another without being its descendant">follows-not-descendant</a>
866+ </span>
867+ <span class="functName"></span> (
868+<span class="funcParam"> $a</span> as node()?,
869+<span class="funcParam"> $b</span> as node()?
870+ ) as xs:boolean<br />
871+ <span class="padding"></span>
872+ </tt>
873+ </td>
874+ </tr>
875+ <tr>
876+ <td class="type">
877+ <span class="no_underline"></span>
878+ </td>
879+ <td>
880+ <tt>
881+ <span class="functName">
882+ <a href="#format-as-title-en-1" title="Moves title words like &quot;the&quot; and &quot;a&quot; to the end of strings">format-as-title-en</a>
883+ </span>
884+ <span class="functName"></span> (
885+<span class="funcParam"> $titles</span> as xs:string*
886+ ) as xs:string*<br />
887+ <span class="padding"></span>
888+ </tt>
889+ </td>
890+ </tr>
891+ <tr>
892+ <td class="type">
893+ <span class="no_underline"></span>
894+ </td>
895+ <td>
896+ <tt>
897+ <span class="functName">
898+ <a href="#fragment-from-uri-1" title="Returns the fragment from a URI">fragment-from-uri</a>
899+ </span>
900+ <span class="functName"></span> (
901+<span class="funcParam"> $uri</span> as xs:string?
902+ ) as xs:string?<br />
903+ <span class="padding"></span>
904+ </tt>
905+ </td>
906+ </tr>
907+ <tr>
908+ <td class="type">
909+ <span class="no_underline"></span>
910+ </td>
911+ <td>
912+ <tt>
913+ <span class="functName">
914+ <a href="#get-matches-2" title="Return the matching regions of a string">get-matches</a>
915+ </span>
916+ <span class="functName"></span> (
917+<span class="funcParam"> $string</span> as xs:string?,
918+<span class="funcParam"> $regex</span> as xs:string
919+ ) as xs:string*<br />
920+ <span class="padding"></span>
921+ </tt>
922+ </td>
923+ </tr>
924+ <tr>
925+ <td class="type">
926+ <span class="no_underline"></span>
927+ </td>
928+ <td>
929+ <tt>
930+ <span class="functName">
931+ <a href="#get-matches-and-non-matches-2" title="Splits a string into matching and non-matching regions">get-matches-and-non-matches</a>
932+ </span>
933+ <span class="functName"></span> (
934+<span class="funcParam"> $string</span> as xs:string?,
935+<span class="funcParam"> $regex</span> as xs:string
936+ ) as element(*)*<br />
937+ <span class="padding"></span>
938+ </tt>
939+ </td>
940+ </tr>
941+ <tr>
942+ <td class="type">
943+ <span class="no_underline"></span>
944+ </td>
945+ <td>
946+ <tt>
947+ <span class="functName">
948+ <a href="#has-element-only-content-1" title="Whether an element has element-only content">has-element-only-content</a>
949+ </span>
950+ <span class="functName"></span> (
951+<span class="funcParam"> $element</span> as element(*)
952+ ) as xs:boolean<br />
953+ <span class="padding"></span>
954+ </tt>
955+ </td>
956+ </tr>
957+ <tr>
958+ <td class="type">
959+ <span class="no_underline"></span>
960+ </td>
961+ <td>
962+ <tt>
963+ <span class="functName">
964+ <a href="#has-empty-content-1" title="Whether an element has empty content">has-empty-content</a>
965+ </span>
966+ <span class="functName"></span> (
967+<span class="funcParam"> $element</span> as element(*)
968+ ) as xs:boolean<br />
969+ <span class="padding"></span>
970+ </tt>
971+ </td>
972+ </tr>
973+ <tr>
974+ <td class="type">
975+ <span class="no_underline"></span>
976+ </td>
977+ <td>
978+ <tt>
979+ <span class="functName">
980+ <a href="#has-mixed-content-1" title="Whether an element has mixed content">has-mixed-content</a>
981+ </span>
982+ <span class="functName"></span> (
983+<span class="funcParam"> $element</span> as element(*)
984+ ) as xs:boolean<br />
985+ <span class="padding"></span>
986+ </tt>
987+ </td>
988+ </tr>
989+ <tr>
990+ <td class="type">
991+ <span class="no_underline"></span>
992+ </td>
993+ <td>
994+ <tt>
995+ <span class="functName">
996+ <a href="#has-simple-content-1" title="Whether an element has simple content">has-simple-content</a>
997+ </span>
998+ <span class="functName"></span> (
999+<span class="funcParam"> $element</span> as element(*)
1000+ ) as xs:boolean<br />
1001+ <span class="padding"></span>
1002+ </tt>
1003+ </td>
1004+ </tr>
1005+ <tr>
1006+ <td class="type">
1007+ <span class="no_underline"></span>
1008+ </td>
1009+ <td>
1010+ <tt>
1011+ <span class="functName">
1012+ <a href="#id-from-element-1" title="Gets the ID of an XML element">id-from-element</a>
1013+ </span>
1014+ <span class="functName"></span> (
1015+<span class="funcParam"> $element</span> as element(*)?
1016+ ) as xs:string?<br />
1017+ <span class="padding"></span>
1018+ </tt>
1019+ </td>
1020+ </tr>
1021+ <tr>
1022+ <td class="type">
1023+ <span class="no_underline"></span>
1024+ </td>
1025+ <td>
1026+ <tt>
1027+ <span class="functName">
1028+ <a href="#id-untyped-2" title="Gets XML element(s) that have an attribute with a particular value">id-untyped</a>
1029+ </span>
1030+ <span class="functName"></span> (
1031+<span class="funcParam"> $node</span> as node()*,
1032+<span class="funcParam"> $id</span> as xs:anyAtomicType
1033+ ) as element(*)*<br />
1034+ <span class="padding"></span>
1035+ </tt>
1036+ </td>
1037+ </tr>
1038+ <tr>
1039+ <td class="type">
1040+ <span class="no_underline"></span>
1041+ </td>
1042+ <td>
1043+ <tt>
1044+ <span class="functName">
1045+ <a href="#if-absent-2" title="The first argument if it is not empty, otherwise the second argument">if-absent</a>
1046+ </span>
1047+ <span class="functName"></span> (
1048+<span class="funcParam"> $arg</span> as item()*,
1049+<span class="funcParam"> $value</span> as item()*
1050+ ) as item()*<br />
1051+ <span class="padding"></span>
1052+ </tt>
1053+ </td>
1054+ </tr>
1055+ <tr>
1056+ <td class="type">
1057+ <span class="no_underline"></span>
1058+ </td>
1059+ <td>
1060+ <tt>
1061+ <span class="functName">
1062+ <a href="#if-empty-2" title="The first argument if it is not blank, otherwise the second argument">if-empty</a>
1063+ </span>
1064+ <span class="functName"></span> (
1065+<span class="funcParam"> $arg</span> as item()?,
1066+<span class="funcParam"> $value</span> as item()*
1067+ ) as item()*<br />
1068+ <span class="padding"></span>
1069+ </tt>
1070+ </td>
1071+ </tr>
1072+ <tr>
1073+ <td class="type">
1074+ <span class="no_underline"></span>
1075+ </td>
1076+ <td>
1077+ <tt>
1078+ <span class="functName">
1079+ <a href="#index-of-deep-equal-node-2" title="The position of a node in a sequence, based on contents and attributes">index-of-deep-equal-node</a>
1080+ </span>
1081+ <span class="functName"></span> (
1082+<span class="funcParam"> $nodes</span> as node()*,
1083+<span class="funcParam"> $nodeToFind</span> as node()
1084+ ) as xs:integer*<br />
1085+ <span class="padding"></span>
1086+ </tt>
1087+ </td>
1088+ </tr>
1089+ <tr>
1090+ <td class="type">
1091+ <span class="no_underline"></span>
1092+ </td>
1093+ <td>
1094+ <tt>
1095+ <span class="functName">
1096+ <a href="#index-of-match-first-2" title="The first position of a matching substring">index-of-match-first</a>
1097+ </span>
1098+ <span class="functName"></span> (
1099+<span class="funcParam"> $arg</span> as xs:string?,
1100+<span class="funcParam"> $pattern</span> as xs:string
1101+ ) as xs:integer?<br />
1102+ <span class="padding"></span>
1103+ </tt>
1104+ </td>
1105+ </tr>
1106+ <tr>
1107+ <td class="type">
1108+ <span class="no_underline"></span>
1109+ </td>
1110+ <td>
1111+ <tt>
1112+ <span class="functName">
1113+ <a href="#index-of-node-2" title="The position of a node in a sequence, based on node identity">index-of-node</a>
1114+ </span>
1115+ <span class="functName"></span> (
1116+<span class="funcParam"> $nodes</span> as node()*,
1117+<span class="funcParam"> $nodeToFind</span> as node()
1118+ ) as xs:integer*<br />
1119+ <span class="padding"></span>
1120+ </tt>
1121+ </td>
1122+ </tr>
1123+ <tr>
1124+ <td class="type">
1125+ <span class="no_underline"></span>
1126+ </td>
1127+ <td>
1128+ <tt>
1129+ <span class="functName">
1130+ <a href="#index-of-string-2" title="The position(s) of a substring">index-of-string</a>
1131+ </span>
1132+ <span class="functName"></span> (
1133+<span class="funcParam"> $arg</span> as xs:string?,
1134+<span class="funcParam"> $substring</span> as xs:string
1135+ ) as xs:integer*<br />
1136+ <span class="padding"></span>
1137+ </tt>
1138+ </td>
1139+ </tr>
1140+ <tr>
1141+ <td class="type">
1142+ <span class="no_underline"></span>
1143+ </td>
1144+ <td>
1145+ <tt>
1146+ <span class="functName">
1147+ <a href="#index-of-string-first-2" title="The first position of a substring">index-of-string-first</a>
1148+ </span>
1149+ <span class="functName"></span> (
1150+<span class="funcParam"> $arg</span> as xs:string?,
1151+<span class="funcParam"> $substring</span> as xs:string
1152+ ) as xs:integer?<br />
1153+ <span class="padding"></span>
1154+ </tt>
1155+ </td>
1156+ </tr>
1157+ <tr>
1158+ <td class="type">
1159+ <span class="no_underline"></span>
1160+ </td>
1161+ <td>
1162+ <tt>
1163+ <span class="functName">
1164+ <a href="#index-of-string-last-2" title="The last position of a substring">index-of-string-last</a>
1165+ </span>
1166+ <span class="functName"></span> (
1167+<span class="funcParam"> $arg</span> as xs:string?,
1168+<span class="funcParam"> $substring</span> as xs:string
1169+ ) as xs:integer?<br />
1170+ <span class="padding"></span>
1171+ </tt>
1172+ </td>
1173+ </tr>
1174+ <tr>
1175+ <td class="type">
1176+ <span class="no_underline"></span>
1177+ </td>
1178+ <td>
1179+ <tt>
1180+ <span class="functName">
1181+ <a href="#insert-string-3" title="Inserts a string at a specified position">insert-string</a>
1182+ </span>
1183+ <span class="functName"></span> (
1184+<span class="funcParam"> $originalString</span> as xs:string?,
1185+<span class="funcParam"> $stringToInsert</span> as xs:string?,
1186+<span class="funcParam"> $pos</span> as xs:integer
1187+ ) as xs:string<br />
1188+ <span class="padding"></span>
1189+ </tt>
1190+ </td>
1191+ </tr>
1192+ <tr>
1193+ <td class="type">
1194+ <span class="no_underline"></span>
1195+ </td>
1196+ <td>
1197+ <tt>
1198+ <span class="functName">
1199+ <a href="#is-a-number-1" title="Whether a value is numeric">is-a-number</a>
1200+ </span>
1201+ <span class="functName"></span> (
1202+<span class="funcParam"> $value</span> as xs:anyAtomicType?
1203+ ) as xs:boolean<br />
1204+ <span class="padding"></span>
1205+ </tt>
1206+ </td>
1207+ </tr>
1208+ <tr>
1209+ <td class="type">
1210+ <span class="no_underline"></span>
1211+ </td>
1212+ <td>
1213+ <tt>
1214+ <span class="functName">
1215+ <a href="#is-absolute-uri-1" title="Whether a URI is absolute">is-absolute-uri</a>
1216+ </span>
1217+ <span class="functName"></span> (
1218+<span class="funcParam"> $uri</span> as xs:string?
1219+ ) as xs:boolean<br />
1220+ <span class="padding"></span>
1221+ </tt>
1222+ </td>
1223+ </tr>
1224+ <tr>
1225+ <td class="type">
1226+ <span class="no_underline"></span>
1227+ </td>
1228+ <td>
1229+ <tt>
1230+ <span class="functName">
1231+ <a href="#is-ancestor-2" title="Whether an XML node is an ancestor of another node">is-ancestor</a>
1232+ </span>
1233+ <span class="functName"></span> (
1234+<span class="funcParam"> $node1</span> as node(),
1235+<span class="funcParam"> $node2</span> as node()
1236+ ) as xs:boolean<br />
1237+ <span class="padding"></span>
1238+ </tt>
1239+ </td>
1240+ </tr>
1241+ <tr>
1242+ <td class="type">
1243+ <span class="no_underline"></span>
1244+ </td>
1245+ <td>
1246+ <tt>
1247+ <span class="functName">
1248+ <a href="#is-descendant-2" title="Whether an XML node is a descendant of another node">is-descendant</a>
1249+ </span>
1250+ <span class="functName"></span> (
1251+<span class="funcParam"> $node1</span> as node(),
1252+<span class="funcParam"> $node2</span> as node()
1253+ ) as xs:boolean<br />
1254+ <span class="padding"></span>
1255+ </tt>
1256+ </td>
1257+ </tr>
1258+ <tr>
1259+ <td class="type">
1260+ <span class="no_underline"></span>
1261+ </td>
1262+ <td>
1263+ <tt>
1264+ <span class="functName">
1265+ <a href="#is-leap-year-1" title="Whether a date falls in a leap year">is-leap-year</a>
1266+ </span>
1267+ <span class="functName"></span> (
1268+<span class="funcParam"> $date</span> as xs:anyAtomicType?
1269+ ) as xs:boolean<br />
1270+ <span class="padding"></span>
1271+ </tt>
1272+ </td>
1273+ </tr>
1274+ <tr>
1275+ <td class="type">
1276+ <span class="no_underline"></span>
1277+ </td>
1278+ <td>
1279+ <tt>
1280+ <span class="functName">
1281+ <a href="#is-node-among-descendants-2" title="Whether an XML node is among the descendants of a sequence, based on node identity">is-node-among-descendants</a>
1282+ </span>
1283+ <span class="functName"></span> (
1284+<span class="funcParam"> $node</span> as node()?,
1285+<span class="funcParam"> $seq</span> as node()*
1286+ ) as xs:boolean<br />
1287+ <span class="padding"></span>
1288+ </tt>
1289+ </td>
1290+ </tr>
1291+ <tr>
1292+ <td class="type">
1293+ <span class="no_underline"></span>
1294+ </td>
1295+ <td>
1296+ <tt>
1297+ <span class="functName">
1298+ <a href="#is-node-among-descendants-deep-equal-2" title="Whether an XML node is among the descendants of a sequence, based on contents and attributes">is-node-among-descendants-deep-equal</a>
1299+ </span>
1300+ <span class="functName"></span> (
1301+<span class="funcParam"> $node</span> as node()?,
1302+<span class="funcParam"> $seq</span> as node()*
1303+ ) as xs:boolean<br />
1304+ <span class="padding"></span>
1305+ </tt>
1306+ </td>
1307+ </tr>
1308+ <tr>
1309+ <td class="type">
1310+ <span class="no_underline"></span>
1311+ </td>
1312+ <td>
1313+ <tt>
1314+ <span class="functName">
1315+ <a href="#is-node-in-sequence-2" title="Whether an XML node is in a sequence, based on node identity">is-node-in-sequence</a>
1316+ </span>
1317+ <span class="functName"></span> (
1318+<span class="funcParam"> $node</span> as node()?,
1319+<span class="funcParam"> $seq</span> as node()*
1320+ ) as xs:boolean<br />
1321+ <span class="padding"></span>
1322+ </tt>
1323+ </td>
1324+ </tr>
1325+ <tr>
1326+ <td class="type">
1327+ <span class="no_underline"></span>
1328+ </td>
1329+ <td>
1330+ <tt>
1331+ <span class="functName">
1332+ <a href="#is-node-in-sequence-deep-equal-2" title="Whether an XML node is in a sequence, based on contents and attributes">is-node-in-sequence-deep-equal</a>
1333+ </span>
1334+ <span class="functName"></span> (
1335+<span class="funcParam"> $node</span> as node()?,
1336+<span class="funcParam"> $seq</span> as node()*
1337+ ) as xs:boolean<br />
1338+ <span class="padding"></span>
1339+ </tt>
1340+ </td>
1341+ </tr>
1342+ <tr>
1343+ <td class="type">
1344+ <span class="no_underline"></span>
1345+ </td>
1346+ <td>
1347+ <tt>
1348+ <span class="functName">
1349+ <a href="#is-value-in-sequence-2" title="Whether an atomic value appears in a sequence">is-value-in-sequence</a>
1350+ </span>
1351+ <span class="functName"></span> (
1352+<span class="funcParam"> $value</span> as xs:anyAtomicType?,
1353+<span class="funcParam"> $seq</span> as xs:anyAtomicType*
1354+ ) as xs:boolean<br />
1355+ <span class="padding"></span>
1356+ </tt>
1357+ </td>
1358+ </tr>
1359+ <tr>
1360+ <td class="type">
1361+ <span class="no_underline"></span>
1362+ </td>
1363+ <td>
1364+ <tt>
1365+ <span class="functName">
1366+ <a href="#last-day-of-month-1" title="The last day of the month of a date">last-day-of-month</a>
1367+ </span>
1368+ <span class="functName"></span> (
1369+<span class="funcParam"> $date</span> as xs:anyAtomicType?
1370+ ) as xs:date?<br />
1371+ <span class="padding"></span>
1372+ </tt>
1373+ </td>
1374+ </tr>
1375+ <tr>
1376+ <td class="type">
1377+ <span class="no_underline"></span>
1378+ </td>
1379+ <td>
1380+ <tt>
1381+ <span class="functName">
1382+ <a href="#last-day-of-year-1" title="The last day of the month of a date">last-day-of-year</a>
1383+ </span>
1384+ <span class="functName"></span> (
1385+<span class="funcParam"> $date</span> as xs:anyAtomicType?
1386+ ) as xs:date?<br />
1387+ <span class="padding"></span>
1388+ </tt>
1389+ </td>
1390+ </tr>
1391+ <tr>
1392+ <td class="type">
1393+ <span class="no_underline"></span>
1394+ </td>
1395+ <td>
1396+ <tt>
1397+ <span class="functName">
1398+ <a href="#last-node-1" title="The XML node in a sequence that is last in document order">last-node</a>
1399+ </span>
1400+ <span class="functName"></span> (
1401+<span class="funcParam"> $nodes</span> as node()*
1402+ ) as node()?<br />
1403+ <span class="padding"></span>
1404+ </tt>
1405+ </td>
1406+ </tr>
1407+ <tr>
1408+ <td class="type">
1409+ <span class="no_underline"></span>
1410+ </td>
1411+ <td>
1412+ <tt>
1413+ <span class="functName">
1414+ <a href="#leaf-elements-1" title="All XML elements that don't have any child elements">leaf-elements</a>
1415+ </span>
1416+ <span class="functName"></span> (
1417+<span class="funcParam"> $root</span> as node()?
1418+ ) as element(*)*<br />
1419+ <span class="padding"></span>
1420+ </tt>
1421+ </td>
1422+ </tr>
1423+ <tr>
1424+ <td class="type">
1425+ <span class="no_underline"></span>
1426+ </td>
1427+ <td>
1428+ <tt>
1429+ <span class="functName">
1430+ <a href="#left-trim-1" title="Trims leading whitespace">left-trim</a>
1431+ </span>
1432+ <span class="functName"></span> (
1433+<span class="funcParam"> $arg</span> as xs:string?
1434+ ) as xs:string<br />
1435+ <span class="padding"></span>
1436+ </tt>
1437+ </td>
1438+ </tr>
1439+ <tr>
1440+ <td class="type">
1441+ <span class="no_underline"></span>
1442+ </td>
1443+ <td>
1444+ <tt>
1445+ <span class="functName">
1446+ <a href="#line-count-1" title="The number of lines">line-count</a>
1447+ </span>
1448+ <span class="functName"></span> (
1449+<span class="funcParam"> $arg</span> as xs:string?
1450+ ) as xs:integer<br />
1451+ <span class="padding"></span>
1452+ </tt>
1453+ </td>
1454+ </tr>
1455+ <tr>
1456+ <td class="type">
1457+ <span class="no_underline"></span>
1458+ </td>
1459+ <td>
1460+ <tt>
1461+ <span class="functName">
1462+ <a href="#lines-1" title="Split a string into separate lines">lines</a>
1463+ </span>
1464+ <span class="functName"></span> (
1465+<span class="funcParam"> $arg</span> as xs:string?
1466+ ) as xs:string*<br />
1467+ <span class="padding"></span>
1468+ </tt>
1469+ </td>
1470+ </tr>
1471+ <tr>
1472+ <td class="type">
1473+ <span class="no_underline"></span>
1474+ </td>
1475+ <td>
1476+ <tt>
1477+ <span class="functName">
1478+ <a href="#max-depth-1" title="The maximum depth of elements in an XML tree">max-depth</a>
1479+ </span>
1480+ <span class="functName"></span> (
1481+<span class="funcParam"> $root</span> as node()?
1482+ ) as xs:integer?<br />
1483+ <span class="padding"></span>
1484+ </tt>
1485+ </td>
1486+ </tr>
1487+ <tr>
1488+ <td class="type">
1489+ <span class="no_underline"></span>
1490+ </td>
1491+ <td>
1492+ <tt>
1493+ <span class="functName">
1494+ <a href="#max-determine-type-1" title="The maximum value in a sequence, figuring out its type (numeric or string)">max-determine-type</a>
1495+ </span>
1496+ <span class="functName"></span> (
1497+<span class="funcParam"> $seq</span> as xs:anyAtomicType*
1498+ ) as xs:anyAtomicType?<br />
1499+ <span class="padding"></span>
1500+ </tt>
1501+ </td>
1502+ </tr>
1503+ <tr>
1504+ <td class="type">
1505+ <span class="no_underline"></span>
1506+ </td>
1507+ <td>
1508+ <tt>
1509+ <span class="functName">
1510+ <a href="#max-line-length-1" title="The maximum line length">max-line-length</a>
1511+ </span>
1512+ <span class="functName"></span> (
1513+<span class="funcParam"> $arg</span> as xs:string?
1514+ ) as xs:integer<br />
1515+ <span class="padding"></span>
1516+ </tt>
1517+ </td>
1518+ </tr>
1519+ <tr>
1520+ <td class="type">
1521+ <span class="no_underline"></span>
1522+ </td>
1523+ <td>
1524+ <tt>
1525+ <span class="functName">
1526+ <a href="#max-node-1" title="The XML node whose typed value is the maximum">max-node</a>
1527+ </span>
1528+ <span class="functName"></span> (
1529+<span class="funcParam"> $nodes</span> as node()*
1530+ ) as node()*<br />
1531+ <span class="padding"></span>
1532+ </tt>
1533+ </td>
1534+ </tr>
1535+ <tr>
1536+ <td class="type">
1537+ <span class="no_underline"></span>
1538+ </td>
1539+ <td>
1540+ <tt>
1541+ <span class="functName">
1542+ <a href="#max-string-1" title="The maximum of a sequence of values, treating them like strings">max-string</a>
1543+ </span>
1544+ <span class="functName"></span> (
1545+<span class="funcParam"> $strings</span> as xs:anyAtomicType*
1546+ ) as xs:string?<br />
1547+ <span class="padding"></span>
1548+ </tt>
1549+ </td>
1550+ </tr>
1551+ <tr>
1552+ <td class="type">
1553+ <span class="no_underline"></span>
1554+ </td>
1555+ <td>
1556+ <tt>
1557+ <span class="functName">
1558+ <a href="#min-determine-type-1" title="The minimum value in a sequence, figuring out its type (numeric or string)">min-determine-type</a>
1559+ </span>
1560+ <span class="functName"></span> (
1561+<span class="funcParam"> $seq</span> as xs:anyAtomicType*
1562+ ) as xs:anyAtomicType?<br />
1563+ <span class="padding"></span>
1564+ </tt>
1565+ </td>
1566+ </tr>
1567+ <tr>
1568+ <td class="type">
1569+ <span class="no_underline"></span>
1570+ </td>
1571+ <td>
1572+ <tt>
1573+ <span class="functName">
1574+ <a href="#min-node-1" title="The XML node whose typed value is the minimum">min-node</a>
1575+ </span>
1576+ <span class="functName"></span> (
1577+<span class="funcParam"> $nodes</span> as node()*
1578+ ) as node()*<br />
1579+ <span class="padding"></span>
1580+ </tt>
1581+ </td>
1582+ </tr>
1583+ <tr>
1584+ <td class="type">
1585+ <span class="no_underline"></span>
1586+ </td>
1587+ <td>
1588+ <tt>
1589+ <span class="functName">
1590+ <a href="#min-non-empty-string-1" title="The minimum of a sequence of strings, ignoring &quot;empty&quot; values">min-non-empty-string</a>
1591+ </span>
1592+ <span class="functName"></span> (
1593+<span class="funcParam"> $strings</span> as xs:string*
1594+ ) as xs:string?<br />
1595+ <span class="padding"></span>
1596+ </tt>
1597+ </td>
1598+ </tr>
1599+ <tr>
1600+ <td class="type">
1601+ <span class="no_underline"></span>
1602+ </td>
1603+ <td>
1604+ <tt>
1605+ <span class="functName">
1606+ <a href="#min-string-1" title="The minimum of a sequence of values, treating them like strings">min-string</a>
1607+ </span>
1608+ <span class="functName"></span> (
1609+<span class="funcParam"> $strings</span> as xs:anyAtomicType*
1610+ ) as xs:string?<br />
1611+ <span class="padding"></span>
1612+ </tt>
1613+ </td>
1614+ </tr>
1615+ <tr>
1616+ <td class="type">
1617+ <span class="no_underline"></span>
1618+ </td>
1619+ <td>
1620+ <tt>
1621+ <span class="functName">
1622+ <a href="#mmddyyyy-to-date-1" title="Converts a string with format MMDDYYYY (with any delimiters) to a date">mmddyyyy-to-date</a>
1623+ </span>
1624+ <span class="functName"></span> (
1625+<span class="funcParam"> $dateString</span> as xs:string?
1626+ ) as xs:date?<br />
1627+ <span class="padding"></span>
1628+ </tt>
1629+ </td>
1630+ </tr>
1631+ <tr>
1632+ <td class="type">
1633+ <span class="no_underline"></span>
1634+ </td>
1635+ <td>
1636+ <tt>
1637+ <span class="functName">
1638+ <a href="#month-abbrev-en-1" title="The month of a date as an abbreviated word (Jan, Feb, etc.)">month-abbrev-en</a>
1639+ </span>
1640+ <span class="functName"></span> (
1641+<span class="funcParam"> $date</span> as xs:anyAtomicType?
1642+ ) as xs:string?<br />
1643+ <span class="padding"> The month of a date as an abbreviated word (Jan, Feb, etc.</span>
1644+ </tt>
1645+ </td>
1646+ </tr>
1647+ <tr>
1648+ <td class="type">
1649+ <span class="no_underline"></span>
1650+ </td>
1651+ <td>
1652+ <tt>
1653+ <span class="functName">
1654+ <a href="#month-name-en-1" title="The month of a date as a word (January, February, etc.)">month-name-en</a>
1655+ </span>
1656+ <span class="functName"></span> (
1657+<span class="funcParam"> $date</span> as xs:anyAtomicType?
1658+ ) as xs:string?<br />
1659+ <span class="padding"> The month of a date as a word (January, February, etc.</span>
1660+ </tt>
1661+ </td>
1662+ </tr>
1663+ <tr>
1664+ <td class="type">
1665+ <span class="no_underline"></span>
1666+ </td>
1667+ <td>
1668+ <tt>
1669+ <span class="functName">
1670+ <a href="#name-test-2" title="Whether a name matches a list of names or name wildcards">name-test</a>
1671+ </span>
1672+ <span class="functName"></span> (
1673+<span class="funcParam"> $testname</span> as xs:string?,
1674+<span class="funcParam"> $names</span> as xs:string*
1675+ ) as xs:boolean<br />
1676+ <span class="padding"></span>
1677+ </tt>
1678+ </td>
1679+ </tr>
1680+ <tr>
1681+ <td class="type">
1682+ <span class="no_underline"></span>
1683+ </td>
1684+ <td>
1685+ <tt>
1686+ <span class="functName">
1687+ <a href="#namespaces-in-use-1" title="A list of namespaces used in element/attribute names in an XML fragment">namespaces-in-use</a>
1688+ </span>
1689+ <span class="functName"></span> (
1690+<span class="funcParam"> $root</span> as node()?
1691+ ) as xs:anyURI*<br />
1692+ <span class="padding"></span>
1693+ </tt>
1694+ </td>
1695+ </tr>
1696+ <tr>
1697+ <td class="type">
1698+ <span class="no_underline"></span>
1699+ </td>
1700+ <td>
1701+ <tt>
1702+ <span class="functName">
1703+ <a href="#next-day-1" title="The next day">next-day</a>
1704+ </span>
1705+ <span class="functName"></span> (
1706+<span class="funcParam"> $date</span> as xs:anyAtomicType?
1707+ ) as xs:date?<br />
1708+ <span class="padding"></span>
1709+ </tt>
1710+ </td>
1711+ </tr>
1712+ <tr>
1713+ <td class="type">
1714+ <span class="no_underline"></span>
1715+ </td>
1716+ <td>
1717+ <tt>
1718+ <span class="functName">
1719+ <a href="#node-kind-1" title="The XML node kind (element, attribute, text, etc.)">node-kind</a>
1720+ </span>
1721+ <span class="functName"></span> (
1722+<span class="funcParam"> $nodes</span> as node()*
1723+ ) as xs:string*<br />
1724+ <span class="padding"> The XML node kind (element, attribute, text, etc.</span>
1725+ </tt>
1726+ </td>
1727+ </tr>
1728+ <tr>
1729+ <td class="type">
1730+ <span class="no_underline"></span>
1731+ </td>
1732+ <td>
1733+ <tt>
1734+ <span class="functName">
1735+ <a href="#non-distinct-values-1" title="Returns any values that appear more than once in a sequence">non-distinct-values</a>
1736+ </span>
1737+ <span class="functName"></span> (
1738+<span class="funcParam"> $seq</span> as xs:anyAtomicType*
1739+ ) as xs:anyAtomicType*<br />
1740+ <span class="padding"></span>
1741+ </tt>
1742+ </td>
1743+ </tr>
1744+ <tr>
1745+ <td class="type">
1746+ <span class="no_underline"></span>
1747+ </td>
1748+ <td>
1749+ <tt>
1750+ <span class="functName">
1751+ <a href="#number-of-matches-2" title="The number of regions that match a pattern">number-of-matches</a>
1752+ </span>
1753+ <span class="functName"></span> (
1754+<span class="funcParam"> $arg</span> as xs:string?,
1755+<span class="funcParam"> $pattern</span> as xs:string
1756+ ) as xs:integer<br />
1757+ <span class="padding"></span>
1758+ </tt>
1759+ </td>
1760+ </tr>
1761+ <tr>
1762+ <td class="type">
1763+ <span class="no_underline"></span>
1764+ </td>
1765+ <td>
1766+ <tt>
1767+ <span class="functName">
1768+ <a href="#open-ref-document-1" title="Resolves a relative URI and references it, returning an XML document">open-ref-document</a>
1769+ </span>
1770+ <span class="functName"></span> (
1771+<span class="funcParam"> $refNode</span> as node()
1772+ ) as document()<br />
1773+ <span class="padding"></span>
1774+ </tt>
1775+ </td>
1776+ </tr>
1777+ <tr>
1778+ <td class="type">
1779+ <span class="no_underline"></span>
1780+ </td>
1781+ <td>
1782+ <tt>
1783+ <span class="functName">
1784+ <a href="#ordinal-number-en-1" title="Reformats a number as an ordinal number, e.g. 1st, 2nd, 3rd.">ordinal-number-en</a>
1785+ </span>
1786+ <span class="functName"></span> (
1787+<span class="funcParam"> $num</span> as xs:integer?
1788+ ) as xs:string<br />
1789+ <span class="padding"> Reformats a number as an ordinal number, e.</span>
1790+ </tt>
1791+ </td>
1792+ </tr>
1793+ <tr>
1794+ <td class="type">
1795+ <span class="no_underline"></span>
1796+ </td>
1797+ <td>
1798+ <tt>
1799+ <span class="functName">
1800+ <a href="#pad-integer-to-length-2" title="Pads an integer to a desired length by adding leading zeros">pad-integer-to-length</a>
1801+ </span>
1802+ <span class="functName"></span> (
1803+<span class="funcParam"> $integerToPad</span> as xs:anyAtomicType?,
1804+<span class="funcParam"> $length</span> as xs:integer
1805+ ) as xs:string<br />
1806+ <span class="padding"></span>
1807+ </tt>
1808+ </td>
1809+ </tr>
1810+ <tr>
1811+ <td class="type">
1812+ <span class="no_underline"></span>
1813+ </td>
1814+ <td>
1815+ <tt>
1816+ <span class="functName">
1817+ <a href="#pad-string-to-length-3" title="Pads a string to a desired length">pad-string-to-length</a>
1818+ </span>
1819+ <span class="functName"></span> (
1820+<span class="funcParam"> $stringToPad</span> as xs:string?,
1821+<span class="funcParam"> $padChar</span> as xs:string,
1822+<span class="funcParam"> $length</span> as xs:integer
1823+ ) as xs:string<br />
1824+ <span class="padding"></span>
1825+ </tt>
1826+ </td>
1827+ </tr>
1828+ <tr>
1829+ <td class="type">
1830+ <span class="no_underline"></span>
1831+ </td>
1832+ <td>
1833+ <tt>
1834+ <span class="functName">
1835+ <a href="#path-to-node-1" title="A path to an XML node (or sequence of nodes)">path-to-node</a>
1836+ </span>
1837+ <span class="functName"></span> (
1838+<span class="funcParam"> $nodes</span> as node()*
1839+ ) as xs:string*<br />
1840+ <span class="padding"></span>
1841+ </tt>
1842+ </td>
1843+ </tr>
1844+ <tr>
1845+ <td class="type">
1846+ <span class="no_underline"></span>
1847+ </td>
1848+ <td>
1849+ <tt>
1850+ <span class="functName">
1851+ <a href="#path-to-node-with-pos-1" title="A unique path to an XML node (or sequence of nodes)">path-to-node-with-pos</a>
1852+ </span>
1853+ <span class="functName"></span> (
1854+<span class="funcParam"> $node</span> as node()?
1855+ ) as xs:string<br />
1856+ <span class="padding"></span>
1857+ </tt>
1858+ </td>
1859+ </tr>
1860+ <tr>
1861+ <td class="type">
1862+ <span class="no_underline"></span>
1863+ </td>
1864+ <td>
1865+ <tt>
1866+ <span class="functName">
1867+ <a href="#precedes-not-ancestor-2" title="Whether an XML node precedes another without being its ancestor">precedes-not-ancestor</a>
1868+ </span>
1869+ <span class="functName"></span> (
1870+<span class="funcParam"> $a</span> as node()?,
1871+<span class="funcParam"> $b</span> as node()?
1872+ ) as xs:boolean<br />
1873+ <span class="padding"></span>
1874+ </tt>
1875+ </td>
1876+ </tr>
1877+ <tr>
1878+ <td class="type">
1879+ <span class="no_underline"></span>
1880+ </td>
1881+ <td>
1882+ <tt>
1883+ <span class="functName">
1884+ <a href="#previous-day-1" title="The previous day">previous-day</a>
1885+ </span>
1886+ <span class="functName"></span> (
1887+<span class="funcParam"> $date</span> as xs:anyAtomicType?
1888+ ) as xs:date?<br />
1889+ <span class="padding"></span>
1890+ </tt>
1891+ </td>
1892+ </tr>
1893+ <tr>
1894+ <td class="type">
1895+ <span class="no_underline"></span>
1896+ </td>
1897+ <td>
1898+ <tt>
1899+ <span class="functName">
1900+ <a href="#remove-attributes-2" title="Removes attributes from an XML element, based on name">remove-attributes</a>
1901+ </span>
1902+ <span class="functName"></span> (
1903+<span class="funcParam"> $elements</span> as element(*)*,
1904+<span class="funcParam"> $names</span> as xs:string*
1905+ ) as element(*)<br />
1906+ <span class="padding"></span>
1907+ </tt>
1908+ </td>
1909+ </tr>
1910+ <tr>
1911+ <td class="type">
1912+ <span class="no_underline"></span>
1913+ </td>
1914+ <td>
1915+ <tt>
1916+ <span class="functName">
1917+ <a href="#remove-attributes-deep-2" title="Removes attributes from an XML fragment, based on name">remove-attributes-deep</a>
1918+ </span>
1919+ <span class="functName"></span> (
1920+<span class="funcParam"> $nodes</span> as node()*,
1921+<span class="funcParam"> $names</span> as xs:string*
1922+ ) as node()*<br />
1923+ <span class="padding"></span>
1924+ </tt>
1925+ </td>
1926+ </tr>
1927+ <tr>
1928+ <td class="type">
1929+ <span class="no_underline"></span>
1930+ </td>
1931+ <td>
1932+ <tt>
1933+ <span class="functName">
1934+ <a href="#remove-elements-2" title="Removes child elements from an XML node, based on name">remove-elements</a>
1935+ </span>
1936+ <span class="functName"></span> (
1937+<span class="funcParam"> $elements</span> as element(*)*,
1938+<span class="funcParam"> $names</span> as xs:string*
1939+ ) as element(*)*<br />
1940+ <span class="padding"></span>
1941+ </tt>
1942+ </td>
1943+ </tr>
1944+ <tr>
1945+ <td class="type">
1946+ <span class="no_underline"></span>
1947+ </td>
1948+ <td>
1949+ <tt>
1950+ <span class="functName">
1951+ <a href="#remove-elements-deep-2" title="Removes descendant elements from an XML node, based on name">remove-elements-deep</a>
1952+ </span>
1953+ <span class="functName"></span> (
1954+<span class="funcParam"> $nodes</span> as node()*,
1955+<span class="funcParam"> $names</span> as xs:string*
1956+ ) as node()*<br />
1957+ <span class="padding"></span>
1958+ </tt>
1959+ </td>
1960+ </tr>
1961+ <tr>
1962+ <td class="type">
1963+ <span class="no_underline"></span>
1964+ </td>
1965+ <td>
1966+ <tt>
1967+ <span class="functName">
1968+ <a href="#remove-elements-not-contents-2" title="Removes descendant XML elements but keeps their content">remove-elements-not-contents</a>
1969+ </span>
1970+ <span class="functName"></span> (
1971+<span class="funcParam"> $nodes</span> as node()*,
1972+<span class="funcParam"> $names</span> as xs:string*
1973+ ) as node()*<br />
1974+ <span class="padding"></span>
1975+ </tt>
1976+ </td>
1977+ </tr>
1978+ <tr>
1979+ <td class="type">
1980+ <span class="no_underline"></span>
1981+ </td>
1982+ <td>
1983+ <tt>
1984+ <span class="functName">
1985+ <a href="#repeat-string-2" title="Repeats a string a given number of times">repeat-string</a>
1986+ </span>
1987+ <span class="functName"></span> (
1988+<span class="funcParam"> $stringToRepeat</span> as xs:string?,
1989+<span class="funcParam"> $count</span> as xs:integer
1990+ ) as xs:string<br />
1991+ <span class="padding"></span>
1992+ </tt>
1993+ </td>
1994+ </tr>
1995+ <tr>
1996+ <td class="type">
1997+ <span class="no_underline"></span>
1998+ </td>
1999+ <td>
2000+ <tt>
2001+ <span class="functName">
2002+ <a href="#replace-beginning-3" title="Replaces the beginning of a string, up to a matched pattern">replace-beginning</a>
2003+ </span>
2004+ <span class="functName"></span> (
2005+<span class="funcParam"> $arg</span> as xs:string?,
2006+<span class="funcParam"> $pattern</span> as xs:string,
2007+<span class="funcParam"> $replacement</span> as xs:string
2008+ ) as xs:string<br />
2009+ <span class="padding"></span>
2010+ </tt>
2011+ </td>
2012+ </tr>
2013+ <tr>
2014+ <td class="type">
2015+ <span class="no_underline"></span>
2016+ </td>
2017+ <td>
2018+ <tt>
2019+ <span class="functName">
2020+ <a href="#replace-element-values-2" title="Updates the content of one or more elements">replace-element-values</a>
2021+ </span>
2022+ <span class="functName"></span> (
2023+<span class="funcParam"> $elements</span> as element(*)*,
2024+<span class="funcParam"> $values</span> as xs:anyAtomicType*
2025+ ) as element(*)*<br />
2026+ <span class="padding"></span>
2027+ </tt>
2028+ </td>
2029+ </tr>
2030+ <tr>
2031+ <td class="type">
2032+ <span class="no_underline"></span>
2033+ </td>
2034+ <td>
2035+ <tt>
2036+ <span class="functName">
2037+ <a href="#replace-first-3" title="Replaces the first match of a pattern">replace-first</a>
2038+ </span>
2039+ <span class="functName"></span> (
2040+<span class="funcParam"> $arg</span> as xs:string?,
2041+<span class="funcParam"> $pattern</span> as xs:string,
2042+<span class="funcParam"> $replacement</span> as xs:string
2043+ ) as xs:string<br />
2044+ <span class="padding"></span>
2045+ </tt>
2046+ </td>
2047+ </tr>
2048+ <tr>
2049+ <td class="type">
2050+ <span class="no_underline"></span>
2051+ </td>
2052+ <td>
2053+ <tt>
2054+ <span class="functName">
2055+ <a href="#replace-multi-3" title="Performs multiple replacements, using pairs of replace parameters">replace-multi</a>
2056+ </span>
2057+ <span class="functName"></span> (
2058+<span class="funcParam"> $arg</span> as xs:string?,
2059+<span class="funcParam"> $changeFrom</span> as xs:string*,
2060+<span class="funcParam"> $changeTo</span> as xs:string*
2061+ ) as xs:string?<br />
2062+ <span class="padding"></span>
2063+ </tt>
2064+ </td>
2065+ </tr>
2066+ <tr>
2067+ <td class="type">
2068+ <span class="no_underline"></span>
2069+ </td>
2070+ <td>
2071+ <tt>
2072+ <span class="functName">
2073+ <a href="#reverse-string-1" title="Reverses the order of characters">reverse-string</a>
2074+ </span>
2075+ <span class="functName"></span> (
2076+<span class="funcParam"> $arg</span> as xs:string?
2077+ ) as xs:string<br />
2078+ <span class="padding"></span>
2079+ </tt>
2080+ </td>
2081+ </tr>
2082+ <tr>
2083+ <td class="type">
2084+ <span class="no_underline"></span>
2085+ </td>
2086+ <td>
2087+ <tt>
2088+ <span class="functName">
2089+ <a href="#right-trim-1" title="Trims trailing whitespace">right-trim</a>
2090+ </span>
2091+ <span class="functName"></span> (
2092+<span class="funcParam"> $arg</span> as xs:string?
2093+ ) as xs:string<br />
2094+ <span class="padding"></span>
2095+ </tt>
2096+ </td>
2097+ </tr>
2098+ <tr>
2099+ <td class="type">
2100+ <span class="no_underline"></span>
2101+ </td>
2102+ <td>
2103+ <tt>
2104+ <span class="functName">
2105+ <a href="#scheme-from-uri-1" title="Returns the scheme from a URI">scheme-from-uri</a>
2106+ </span>
2107+ <span class="functName"></span> (
2108+<span class="funcParam"> $uri</span> as xs:string?
2109+ ) as xs:string?<br />
2110+ <span class="padding"></span>
2111+ </tt>
2112+ </td>
2113+ </tr>
2114+ <tr>
2115+ <td class="type">
2116+ <span class="no_underline"></span>
2117+ </td>
2118+ <td>
2119+ <tt>
2120+ <span class="functName">
2121+ <a href="#sequence-deep-equal-2" title="Whether two sequences have the same XML node content and/or values">sequence-deep-equal</a>
2122+ </span>
2123+ <span class="functName"></span> (
2124+<span class="funcParam"> $seq1</span> as item()*,
2125+<span class="funcParam"> $seq2</span> as item()*
2126+ ) as xs:boolean<br />
2127+ <span class="padding"></span>
2128+ </tt>
2129+ </td>
2130+ </tr>
2131+ <tr>
2132+ <td class="type">
2133+ <span class="no_underline"></span>
2134+ </td>
2135+ <td>
2136+ <tt>
2137+ <span class="functName">
2138+ <a href="#sequence-node-equal-2" title="Whether two sequences contain the same XML nodes, in the same order">sequence-node-equal</a>
2139+ </span>
2140+ <span class="functName"></span> (
2141+<span class="funcParam"> $seq1</span> as node()*,
2142+<span class="funcParam"> $seq2</span> as node()*
2143+ ) as xs:boolean<br />
2144+ <span class="padding"></span>
2145+ </tt>
2146+ </td>
2147+ </tr>
2148+ <tr>
2149+ <td class="type">
2150+ <span class="no_underline"></span>
2151+ </td>
2152+ <td>
2153+ <tt>
2154+ <span class="functName">
2155+ <a href="#sequence-node-equal-any-order-2" title="Whether two sequences contain the same XML nodes, regardless of order">sequence-node-equal-any-order</a>
2156+ </span>
2157+ <span class="functName"></span> (
2158+<span class="funcParam"> $seq1</span> as node()*,
2159+<span class="funcParam"> $seq2</span> as node()*
2160+ ) as xs:boolean<br />
2161+ <span class="padding"></span>
2162+ </tt>
2163+ </td>
2164+ </tr>
2165+ <tr>
2166+ <td class="type">
2167+ <span class="no_underline"></span>
2168+ </td>
2169+ <td>
2170+ <tt>
2171+ <span class="functName">
2172+ <a href="#sequence-type-1" title="The sequence type that represents a sequence of nodes or values">sequence-type</a>
2173+ </span>
2174+ <span class="functName"></span> (
2175+<span class="funcParam"> $items</span> as item()*
2176+ ) as xs:string<br />
2177+ <span class="padding"></span>
2178+ </tt>
2179+ </td>
2180+ </tr>
2181+ <tr>
2182+ <td class="type">
2183+ <span class="no_underline"></span>
2184+ </td>
2185+ <td>
2186+ <tt>
2187+ <span class="functName">
2188+ <a href="#siblings-1" title="The siblings of an XML node">siblings</a>
2189+ </span>
2190+ <span class="functName"></span> (
2191+<span class="funcParam"> $node</span> as node()?
2192+ ) as node()*<br />
2193+ <span class="padding"></span>
2194+ </tt>
2195+ </td>
2196+ </tr>
2197+ <tr>
2198+ <td class="type">
2199+ <span class="no_underline"></span>
2200+ </td>
2201+ <td>
2202+ <tt>
2203+ <span class="functName">
2204+ <a href="#siblings-same-name-1" title="The siblings of an XML element that have the same name">siblings-same-name</a>
2205+ </span>
2206+ <span class="functName"></span> (
2207+<span class="funcParam"> $element</span> as element(*)?
2208+ ) as element(*)*<br />
2209+ <span class="padding"></span>
2210+ </tt>
2211+ </td>
2212+ </tr>
2213+ <tr>
2214+ <td class="type">
2215+ <span class="no_underline"></span>
2216+ </td>
2217+ <td>
2218+ <tt>
2219+ <span class="functName">
2220+ <a href="#sort-1" title="Sorts a sequence of values or nodes">sort</a>
2221+ </span>
2222+ <span class="functName"></span> (
2223+<span class="funcParam"> $seq</span> as item()*
2224+ ) as item()*<br />
2225+ <span class="padding"></span>
2226+ </tt>
2227+ </td>
2228+ </tr>
2229+ <tr>
2230+ <td class="type">
2231+ <span class="no_underline"></span>
2232+ </td>
2233+ <td>
2234+ <tt>
2235+ <span class="functName">
2236+ <a href="#sort-as-numeric-1" title="Sorts a sequence of numeric values or nodes">sort-as-numeric</a>
2237+ </span>
2238+ <span class="functName"></span> (
2239+<span class="funcParam"> $seq</span> as item()*
2240+ ) as item()*<br />
2241+ <span class="padding"></span>
2242+ </tt>
2243+ </td>
2244+ </tr>
2245+ <tr>
2246+ <td class="type">
2247+ <span class="no_underline"></span>
2248+ </td>
2249+ <td>
2250+ <tt>
2251+ <span class="functName">
2252+ <a href="#sort-case-insensitive-1" title="Sorts a sequence of values or nodes regardless of capitalization">sort-case-insensitive</a>
2253+ </span>
2254+ <span class="functName"></span> (
2255+<span class="funcParam"> $seq</span> as item()*
2256+ ) as item()*<br />
2257+ <span class="padding"></span>
2258+ </tt>
2259+ </td>
2260+ </tr>
2261+ <tr>
2262+ <td class="type">
2263+ <span class="no_underline"></span>
2264+ </td>
2265+ <td>
2266+ <tt>
2267+ <span class="functName">
2268+ <a href="#sort-document-order-1" title="Sorts a sequence of nodes in document order">sort-document-order</a>
2269+ </span>
2270+ <span class="functName"></span> (
2271+<span class="funcParam"> $seq</span> as node()*
2272+ ) as node()*<br />
2273+ <span class="padding"></span>
2274+ </tt>
2275+ </td>
2276+ </tr>
2277+ <tr>
2278+ <td class="type">
2279+ <span class="no_underline"></span>
2280+ </td>
2281+ <td>
2282+ <tt>
2283+ <span class="functName">
2284+ <a href="#substring-after-if-contains-2" title="Performs substring-after, returning the entire string if it does not contain the delimiter">substring-after-if-contains</a>
2285+ </span>
2286+ <span class="functName"></span> (
2287+<span class="funcParam"> $arg</span> as xs:string?,
2288+<span class="funcParam"> $delim</span> as xs:string
2289+ ) as xs:string?<br />
2290+ <span class="padding"></span>
2291+ </tt>
2292+ </td>
2293+ </tr>
2294+ <tr>
2295+ <td class="type">
2296+ <span class="no_underline"></span>
2297+ </td>
2298+ <td>
2299+ <tt>
2300+ <span class="functName">
2301+ <a href="#substring-after-last-2" title="The substring after the last occurrence of a delimiter">substring-after-last</a>
2302+ </span>
2303+ <span class="functName"></span> (
2304+<span class="funcParam"> $arg</span> as xs:string?,
2305+<span class="funcParam"> $delim</span> as xs:string
2306+ ) as xs:string<br />
2307+ <span class="padding"></span>
2308+ </tt>
2309+ </td>
2310+ </tr>
2311+ <tr>
2312+ <td class="type">
2313+ <span class="no_underline"></span>
2314+ </td>
2315+ <td>
2316+ <tt>
2317+ <span class="functName">
2318+ <a href="#substring-after-last-match-2" title="The substring after the last text that matches a regex">substring-after-last-match</a>
2319+ </span>
2320+ <span class="functName"></span> (
2321+<span class="funcParam"> $arg</span> as xs:string?,
2322+<span class="funcParam"> $regex</span> as xs:string
2323+ ) as xs:string<br />
2324+ <span class="padding"></span>
2325+ </tt>
2326+ </td>
2327+ </tr>
2328+ <tr>
2329+ <td class="type">
2330+ <span class="no_underline"></span>
2331+ </td>
2332+ <td>
2333+ <tt>
2334+ <span class="functName">
2335+ <a href="#substring-after-match-2" title="The substring after the first text that matches a regex">substring-after-match</a>
2336+ </span>
2337+ <span class="functName"></span> (
2338+<span class="funcParam"> $arg</span> as xs:string?,
2339+<span class="funcParam"> $regex</span> as xs:string
2340+ ) as xs:string?<br />
2341+ <span class="padding"></span>
2342+ </tt>
2343+ </td>
2344+ </tr>
2345+ <tr>
2346+ <td class="type">
2347+ <span class="no_underline"></span>
2348+ </td>
2349+ <td>
2350+ <tt>
2351+ <span class="functName">
2352+ <a href="#substring-before-if-contains-2" title="Performs substring-before, returning the entire string if it does not contain the delimiter">substring-before-if-contains</a>
2353+ </span>
2354+ <span class="functName"></span> (
2355+<span class="funcParam"> $arg</span> as xs:string?,
2356+<span class="funcParam"> $delim</span> as xs:string
2357+ ) as xs:string?<br />
2358+ <span class="padding"></span>
2359+ </tt>
2360+ </td>
2361+ </tr>
2362+ <tr>
2363+ <td class="type">
2364+ <span class="no_underline"></span>
2365+ </td>
2366+ <td>
2367+ <tt>
2368+ <span class="functName">
2369+ <a href="#substring-before-last-2" title="The substring before the last occurrence of a delimiter">substring-before-last</a>
2370+ </span>
2371+ <span class="functName"></span> (
2372+<span class="funcParam"> $arg</span> as xs:string?,
2373+<span class="funcParam"> $delim</span> as xs:string
2374+ ) as xs:string<br />
2375+ <span class="padding"></span>
2376+ </tt>
2377+ </td>
2378+ </tr>
2379+ <tr>
2380+ <td class="type">
2381+ <span class="no_underline"></span>
2382+ </td>
2383+ <td>
2384+ <tt>
2385+ <span class="functName">
2386+ <a href="#substring-before-last-match-2" title="The substring after the first text that matches a regex">substring-before-last-match</a>
2387+ </span>
2388+ <span class="functName"></span> (
2389+<span class="funcParam"> $arg</span> as xs:string?,
2390+<span class="funcParam"> $regex</span> as xs:string
2391+ ) as xs:string?<br />
2392+ <span class="padding"></span>
2393+ </tt>
2394+ </td>
2395+ </tr>
2396+ <tr>
2397+ <td class="type">
2398+ <span class="no_underline"></span>
2399+ </td>
2400+ <td>
2401+ <tt>
2402+ <span class="functName">
2403+ <a href="#substring-before-match-2" title="The substring before the last text that matches a regex">substring-before-match</a>
2404+ </span>
2405+ <span class="functName"></span> (
2406+<span class="funcParam"> $arg</span> as xs:string?,
2407+<span class="funcParam"> $regex</span> as xs:string
2408+ ) as xs:string<br />
2409+ <span class="padding"></span>
2410+ </tt>
2411+ </td>
2412+ </tr>
2413+ <tr>
2414+ <td class="type">
2415+ <span class="no_underline"></span>
2416+ </td>
2417+ <td>
2418+ <tt>
2419+ <span class="functName">
2420+ <a href="#time-3" title="Construct a time from an hour, minute and second">time</a>
2421+ </span>
2422+ <span class="functName"></span> (
2423+<span class="funcParam"> $hour</span> as xs:anyAtomicType,
2424+<span class="funcParam"> $minute</span> as xs:anyAtomicType,
2425+<span class="funcParam"> $second</span> as xs:anyAtomicType
2426+ ) as xs:time<br />
2427+ <span class="padding"></span>
2428+ </tt>
2429+ </td>
2430+ </tr>
2431+ <tr>
2432+ <td class="type">
2433+ <span class="no_underline"></span>
2434+ </td>
2435+ <td>
2436+ <tt>
2437+ <span class="functName">
2438+ <a href="#timezone-from-duration-1" title="Converts an xs:dayTimeDuration into a timezone like &quot;-05:00&quot; or &quot;Z&quot;">timezone-from-duration</a>
2439+ </span>
2440+ <span class="functName"></span> (
2441+<span class="funcParam"> $duration</span> as xs:dayTimeDuration
2442+ ) as xs:string<br />
2443+ <span class="padding"></span>
2444+ </tt>
2445+ </td>
2446+ </tr>
2447+ <tr>
2448+ <td class="type">
2449+ <span class="no_underline"></span>
2450+ </td>
2451+ <td>
2452+ <tt>
2453+ <span class="functName">
2454+ <a href="#total-days-from-duration-1" title="The total number of days in a dayTimeDuration">total-days-from-duration</a>
2455+ </span>
2456+ <span class="functName"></span> (
2457+<span class="funcParam"> $duration</span> as xs:dayTimeDuration?
2458+ ) as xs:decimal?<br />
2459+ <span class="padding"></span>
2460+ </tt>
2461+ </td>
2462+ </tr>
2463+ <tr>
2464+ <td class="type">
2465+ <span class="no_underline"></span>
2466+ </td>
2467+ <td>
2468+ <tt>
2469+ <span class="functName">
2470+ <a href="#total-hours-from-duration-1" title="The total number of hours in a dayTimeDuration">total-hours-from-duration</a>
2471+ </span>
2472+ <span class="functName"></span> (
2473+<span class="funcParam"> $duration</span> as xs:dayTimeDuration?
2474+ ) as xs:decimal?<br />
2475+ <span class="padding"></span>
2476+ </tt>
2477+ </td>
2478+ </tr>
2479+ <tr>
2480+ <td class="type">
2481+ <span class="no_underline"></span>
2482+ </td>
2483+ <td>
2484+ <tt>
2485+ <span class="functName">
2486+ <a href="#total-minutes-from-duration-1" title="The total number of minutes in a dayTimeDuration">total-minutes-from-duration</a>
2487+ </span>
2488+ <span class="functName"></span> (
2489+<span class="funcParam"> $duration</span> as xs:dayTimeDuration?
2490+ ) as xs:decimal?<br />
2491+ <span class="padding"></span>
2492+ </tt>
2493+ </td>
2494+ </tr>
2495+ <tr>
2496+ <td class="type">
2497+ <span class="no_underline"></span>
2498+ </td>
2499+ <td>
2500+ <tt>
2501+ <span class="functName">
2502+ <a href="#total-months-from-duration-1" title="The total number of months in a yearMonthDuration">total-months-from-duration</a>
2503+ </span>
2504+ <span class="functName"></span> (
2505+<span class="funcParam"> $duration</span> as xs:yearMonthDuration?
2506+ ) as xs:decimal?<br />
2507+ <span class="padding"></span>
2508+ </tt>
2509+ </td>
2510+ </tr>
2511+ <tr>
2512+ <td class="type">
2513+ <span class="no_underline"></span>
2514+ </td>
2515+ <td>
2516+ <tt>
2517+ <span class="functName">
2518+ <a href="#total-seconds-from-duration-1" title="The total number of seconds in a dayTimeDuration">total-seconds-from-duration</a>
2519+ </span>
2520+ <span class="functName"></span> (
2521+<span class="funcParam"> $duration</span> as xs:dayTimeDuration?
2522+ ) as xs:decimal?<br />
2523+ <span class="padding"></span>
2524+ </tt>
2525+ </td>
2526+ </tr>
2527+ <tr>
2528+ <td class="type">
2529+ <span class="no_underline"></span>
2530+ </td>
2531+ <td>
2532+ <tt>
2533+ <span class="functName">
2534+ <a href="#total-years-from-duration-1" title="The total number of years in a yearMonthDuration">total-years-from-duration</a>
2535+ </span>
2536+ <span class="functName"></span> (
2537+<span class="funcParam"> $duration</span> as xs:yearMonthDuration?
2538+ ) as xs:decimal?<br />
2539+ <span class="padding"></span>
2540+ </tt>
2541+ </td>
2542+ </tr>
2543+ <tr>
2544+ <td class="type">
2545+ <span class="no_underline"></span>
2546+ </td>
2547+ <td>
2548+ <tt>
2549+ <span class="functName">
2550+ <a href="#trim-1" title="Trims leading and trailing whitespace">trim</a>
2551+ </span>
2552+ <span class="functName"></span> (
2553+<span class="funcParam"> $arg</span> as xs:string?
2554+ ) as xs:string<br />
2555+ <span class="padding"></span>
2556+ </tt>
2557+ </td>
2558+ </tr>
2559+ <tr>
2560+ <td class="type">
2561+ <span class="no_underline"></span>
2562+ </td>
2563+ <td>
2564+ <tt>
2565+ <span class="functName">
2566+ <a href="#update-attributes-3" title="Updates the attribute value of an XML element">update-attributes</a>
2567+ </span>
2568+ <span class="functName"></span> (
2569+<span class="funcParam"> $elements</span> as element(*)*,
2570+<span class="funcParam"> $attrNames</span> as xs:QName*,
2571+<span class="funcParam"> $attrValues</span> as xs:anyAtomicType*
2572+ ) as element(*)?<br />
2573+ <span class="padding"></span>
2574+ </tt>
2575+ </td>
2576+ </tr>
2577+ <tr>
2578+ <td class="type">
2579+ <span class="no_underline"></span>
2580+ </td>
2581+ <td>
2582+ <tt>
2583+ <span class="functName">
2584+ <a href="#value-except-2" title="The values in one sequence that aren't in another sequence">value-except</a>
2585+ </span>
2586+ <span class="functName"></span> (
2587+<span class="funcParam"> $arg1</span> as xs:anyAtomicType*,
2588+<span class="funcParam"> $arg2</span> as xs:anyAtomicType*
2589+ ) as xs:anyAtomicType*<br />
2590+ <span class="padding"></span>
2591+ </tt>
2592+ </td>
2593+ </tr>
2594+ <tr>
2595+ <td class="type">
2596+ <span class="no_underline"></span>
2597+ </td>
2598+ <td>
2599+ <tt>
2600+ <span class="functName">
2601+ <a href="#value-intersect-2" title="The intersection of two sequences of values">value-intersect</a>
2602+ </span>
2603+ <span class="functName"></span> (
2604+<span class="funcParam"> $arg1</span> as xs:anyAtomicType*,
2605+<span class="funcParam"> $arg2</span> as xs:anyAtomicType*
2606+ ) as xs:anyAtomicType*<br />
2607+ <span class="padding"></span>
2608+ </tt>
2609+ </td>
2610+ </tr>
2611+ <tr>
2612+ <td class="type">
2613+ <span class="no_underline"></span>
2614+ </td>
2615+ <td>
2616+ <tt>
2617+ <span class="functName">
2618+ <a href="#value-union-2" title="The union of two sequences of values">value-union</a>
2619+ </span>
2620+ <span class="functName"></span> (
2621+<span class="funcParam"> $arg1</span> as xs:anyAtomicType*,
2622+<span class="funcParam"> $arg2</span> as xs:anyAtomicType*
2623+ ) as xs:anyAtomicType*<br />
2624+ <span class="padding"></span>
2625+ </tt>
2626+ </td>
2627+ </tr>
2628+ <tr>
2629+ <td class="type">
2630+ <span class="no_underline"></span>
2631+ </td>
2632+ <td>
2633+ <tt>
2634+ <span class="functName">
2635+ <a href="#word-count-1" title="The number of words">word-count</a>
2636+ </span>
2637+ <span class="functName"></span> (
2638+<span class="funcParam"> $arg</span> as xs:string?
2639+ ) as xs:integer<br />
2640+ <span class="padding"></span>
2641+ </tt>
2642+ </td>
2643+ </tr>
2644+ <tr>
2645+ <td class="type">
2646+ <span class="no_underline"></span>
2647+ </td>
2648+ <td>
2649+ <tt>
2650+ <span class="functName">
2651+ <a href="#words-to-camel-case-1" title="Turns a string of words into camelCase">words-to-camel-case</a>
2652+ </span>
2653+ <span class="functName"></span> (
2654+<span class="funcParam"> $arg</span> as xs:string?
2655+ ) as xs:string<br />
2656+ <span class="padding"></span>
2657+ </tt>
2658+ </td>
2659+ </tr>
2660+ <tr>
2661+ <td class="type">
2662+ <span class="no_underline"></span>
2663+ </td>
2664+ <td>
2665+ <tt>
2666+ <span class="functName">
2667+ <a href="#wrap-values-in-elements-2" title="Wraps a sequence of atomic values in XML elements">wrap-values-in-elements</a>
2668+ </span>
2669+ <span class="functName"></span> (
2670+<span class="funcParam"> $values</span> as xs:anyAtomicType*,
2671+<span class="funcParam"> $elementName</span> as xs:QName
2672+ ) as element(*)*<br />
2673+ <span class="padding"></span>
2674+ </tt>
2675+ </td>
2676+ </tr>
2677+ <tr>
2678+ <td class="type">
2679+ <span class="no_underline"></span>
2680+ </td>
2681+ <td>
2682+ <tt>
2683+ <span class="functName">
2684+ <a href="#yearMonthDuration-2" title="Construct a yearMonthDuration from a number of years and months">yearMonthDuration</a>
2685+ </span>
2686+ <span class="functName"></span> (
2687+<span class="funcParam"> $years</span> as xs:decimal?,
2688+<span class="funcParam"> $months</span> as xs:integer?
2689+ ) as xs:yearMonthDuration<br />
2690+ <span class="padding"></span>
2691+ </tt>
2692+ </td>
2693+ </tr>
2694+ </table>
2695+ <div class="section">
2696+ <span id="functions">Functions</span>
2697+ </div>
2698+ <div class="subsection" id="add-attributes-3">
2699+ <span class="no_underline"></span>add-attributes<a href="#function_summary">
2700+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
2701+ </a>
2702+ </div>
2703+ <pre class="signature">declare function functx:add-attributes<span class="functName"></span> (
2704+<span class="funcParam"> $elements</span> as element(*)*,
2705+<span class="funcParam"> $attrNames</span> as xs:QName*,
2706+<span class="funcParam"> $attrValues</span> as xs:anyAtomicType*
2707+ ) as element(*)?</pre>
2708+ <p> Adds attributes to XML elements
2709+</p>
2710+ <div class="subsubsection">Parameters:</div>
2711+ <ul>
2712+ <li>$elements the element(s) to which you wish to add the attribute</li>
2713+ <li>$attrNames the name(s) of the attribute(s) to add</li>
2714+ <li>$attrValues the value(s) of the attribute(s) to add</li>
2715+ </ul>
2716+ <div class="subsubsection">Version:</div>
2717+ <p class="annotationText">1.0</p>
2718+ <div class="subsubsection">Author:</div>
2719+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
2720+ <div class="subsubsection">See:</div>
2721+ <ul>
2722+ <li>
2723+ <a href="http://www.xqueryfunctions.com/xq/functx_add-attributes.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_add-attributes.html</a>
2724+ </li>
2725+ </ul>
2726+ <hr />
2727+ <div class="subsection" id="add-months-2">
2728+ <span class="no_underline"></span>add-months<a href="#function_summary">
2729+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
2730+ </a>
2731+ </div>
2732+ <pre class="signature">declare function functx:add-months<span class="functName"></span> (
2733+<span class="funcParam"> $date</span> as xs:anyAtomicType?,
2734+<span class="funcParam"> $months</span> as xs:integer
2735+ ) as xs:date?</pre>
2736+ <p> Adds months to a date
2737+</p>
2738+ <div class="subsubsection">Parameters:</div>
2739+ <ul>
2740+ <li>$date the date</li>
2741+ <li>$months the number of months to add</li>
2742+ </ul>
2743+ <div class="subsubsection">Version:</div>
2744+ <p class="annotationText">1.0</p>
2745+ <div class="subsubsection">Author:</div>
2746+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
2747+ <div class="subsubsection">See:</div>
2748+ <ul>
2749+ <li>
2750+ <a href="http://www.xqueryfunctions.com/xq/functx_add-months.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_add-months.html</a>
2751+ </li>
2752+ </ul>
2753+ <hr />
2754+ <div class="subsection" id="add-or-update-attributes-3">
2755+ <span class="no_underline"></span>add-or-update-attributes<a href="#function_summary">
2756+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
2757+ </a>
2758+ </div>
2759+ <pre class="signature">declare function functx:add-or-update-attributes<span class="functName"></span> (
2760+<span class="funcParam"> $elements</span> as element(*)*,
2761+<span class="funcParam"> $attrNames</span> as xs:QName*,
2762+<span class="funcParam"> $attrValues</span> as xs:anyAtomicType*
2763+ ) as element(*)?</pre>
2764+ <p> Adds attributes to XML elements
2765+</p>
2766+ <div class="subsubsection">Parameters:</div>
2767+ <ul>
2768+ <li>$elements the element(s) to which you wish to add the attribute</li>
2769+ <li>$attrNames the name(s) of the attribute(s) to add</li>
2770+ <li>$attrValues the value(s) of the attribute(s) to add</li>
2771+ </ul>
2772+ <div class="subsubsection">Version:</div>
2773+ <p class="annotationText">1.0</p>
2774+ <div class="subsubsection">Author:</div>
2775+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
2776+ <div class="subsubsection">See:</div>
2777+ <ul>
2778+ <li>
2779+ <a href="http://www.xqueryfunctions.com/xq/functx_add-or-update-attributes.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_add-or-update-attributes.html</a>
2780+ </li>
2781+ </ul>
2782+ <hr />
2783+ <div class="subsection" id="all-whitespace-1">
2784+ <span class="no_underline"></span>all-whitespace<a href="#function_summary">
2785+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
2786+ </a>
2787+ </div>
2788+ <pre class="signature">declare function functx:all-whitespace<span class="functName"></span> (
2789+<span class="funcParam"> $arg</span> as xs:string?
2790+ ) as xs:boolean</pre>
2791+ <p> Whether a value is all whitespace or a zero-length string
2792+</p>
2793+ <div class="subsubsection">Parameters:</div>
2794+ <ul>
2795+ <li>$arg the string (or node) to test</li>
2796+ </ul>
2797+ <div class="subsubsection">Version:</div>
2798+ <p class="annotationText">1.0</p>
2799+ <div class="subsubsection">Author:</div>
2800+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
2801+ <div class="subsubsection">See:</div>
2802+ <ul>
2803+ <li>
2804+ <a href="http://www.xqueryfunctions.com/xq/functx_all-whitespace.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_all-whitespace.html</a>
2805+ </li>
2806+ </ul>
2807+ <hr />
2808+ <div class="subsection" id="are-distinct-values-1">
2809+ <span class="no_underline"></span>are-distinct-values<a href="#function_summary">
2810+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
2811+ </a>
2812+ </div>
2813+ <pre class="signature">declare function functx:are-distinct-values<span class="functName"></span> (
2814+<span class="funcParam"> $seq</span> as xs:anyAtomicType*
2815+ ) as xs:boolean</pre>
2816+ <p> Whether all the values in a sequence are distinct
2817+</p>
2818+ <div class="subsubsection">Parameters:</div>
2819+ <ul>
2820+ <li>$seq the sequence of values</li>
2821+ </ul>
2822+ <div class="subsubsection">Version:</div>
2823+ <p class="annotationText">1.0</p>
2824+ <div class="subsubsection">Author:</div>
2825+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
2826+ <div class="subsubsection">See:</div>
2827+ <ul>
2828+ <li>
2829+ <a href="http://www.xqueryfunctions.com/xq/functx_are-distinct-values.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_are-distinct-values.html</a>
2830+ </li>
2831+ </ul>
2832+ <hr />
2833+ <div class="subsection" id="atomic-type-1">
2834+ <span class="no_underline"></span>atomic-type<a href="#function_summary">
2835+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
2836+ </a>
2837+ </div>
2838+ <pre class="signature">declare function functx:atomic-type<span class="functName"></span> (
2839+<span class="funcParam"> $values</span> as xs:anyAtomicType*
2840+ ) as xs:string*</pre>
2841+ <p> The built-in type of an atomic value
2842+</p>
2843+ <div class="subsubsection">Parameters:</div>
2844+ <ul>
2845+ <li>$values the value(s) whose type you want to determine</li>
2846+ </ul>
2847+ <div class="subsubsection">Version:</div>
2848+ <p class="annotationText">1.0</p>
2849+ <div class="subsubsection">Author:</div>
2850+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
2851+ <div class="subsubsection">See:</div>
2852+ <ul>
2853+ <li>
2854+ <a href="http://www.xqueryfunctions.com/xq/functx_atomic-type.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_atomic-type.html</a>
2855+ </li>
2856+ </ul>
2857+ <hr />
2858+ <div class="subsection" id="avg-empty-is-zero-2">
2859+ <span class="no_underline"></span>avg-empty-is-zero<a href="#function_summary">
2860+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
2861+ </a>
2862+ </div>
2863+ <pre class="signature">declare function functx:avg-empty-is-zero<span class="functName"></span> (
2864+<span class="funcParam"> $values</span> as xs:anyAtomicType*,
2865+<span class="funcParam"> $allNodes</span> as node()*
2866+ ) as xs:double</pre>
2867+ <p> The average, counting "empty" values as zero
2868+</p>
2869+ <div class="subsubsection">Parameters:</div>
2870+ <ul>
2871+ <li>$values the values to be averaged</li>
2872+ <li>$allNodes the sequence of all nodes to find the average over</li>
2873+ </ul>
2874+ <div class="subsubsection">Version:</div>
2875+ <p class="annotationText">1.0</p>
2876+ <div class="subsubsection">Author:</div>
2877+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
2878+ <div class="subsubsection">See:</div>
2879+ <ul>
2880+ <li>
2881+ <a href="http://www.xqueryfunctions.com/xq/functx_avg-empty-is-zero.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_avg-empty-is-zero.html</a>
2882+ </li>
2883+ </ul>
2884+ <hr />
2885+ <div class="subsection" id="between-exclusive-3">
2886+ <span class="no_underline"></span>between-exclusive<a href="#function_summary">
2887+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
2888+ </a>
2889+ </div>
2890+ <pre class="signature">declare function functx:between-exclusive<span class="functName"></span> (
2891+<span class="funcParam"> $value</span> as xs:anyAtomicType?,
2892+<span class="funcParam"> $minValue</span> as xs:anyAtomicType,
2893+<span class="funcParam"> $maxValue</span> as xs:anyAtomicType
2894+ ) as xs:boolean</pre>
2895+ <p> Whether a value is between two provided values
2896+</p>
2897+ <div class="subsubsection">Parameters:</div>
2898+ <ul>
2899+ <li>$value the value to be tested</li>
2900+ <li>$minValue the minimum value</li>
2901+ <li>$maxValue the maximum value</li>
2902+ </ul>
2903+ <div class="subsubsection">Version:</div>
2904+ <p class="annotationText">1.0</p>
2905+ <div class="subsubsection">Author:</div>
2906+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
2907+ <div class="subsubsection">See:</div>
2908+ <ul>
2909+ <li>
2910+ <a href="http://www.xqueryfunctions.com/xq/functx_between-exclusive.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_between-exclusive.html</a>
2911+ </li>
2912+ </ul>
2913+ <hr />
2914+ <div class="subsection" id="between-inclusive-3">
2915+ <span class="no_underline"></span>between-inclusive<a href="#function_summary">
2916+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
2917+ </a>
2918+ </div>
2919+ <pre class="signature">declare function functx:between-inclusive<span class="functName"></span> (
2920+<span class="funcParam"> $value</span> as xs:anyAtomicType?,
2921+<span class="funcParam"> $minValue</span> as xs:anyAtomicType,
2922+<span class="funcParam"> $maxValue</span> as xs:anyAtomicType
2923+ ) as xs:boolean</pre>
2924+ <p> Whether a value is between two provided values, or equal to one of them
2925+</p>
2926+ <div class="subsubsection">Parameters:</div>
2927+ <ul>
2928+ <li>$value the value to be tested</li>
2929+ <li>$minValue the minimum value</li>
2930+ <li>$maxValue the maximum value</li>
2931+ </ul>
2932+ <div class="subsubsection">Version:</div>
2933+ <p class="annotationText">1.0</p>
2934+ <div class="subsubsection">Author:</div>
2935+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
2936+ <div class="subsubsection">See:</div>
2937+ <ul>
2938+ <li>
2939+ <a href="http://www.xqueryfunctions.com/xq/functx_between-inclusive.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_between-inclusive.html</a>
2940+ </li>
2941+ </ul>
2942+ <hr />
2943+ <div class="subsection" id="camel-case-to-words-2">
2944+ <span class="no_underline"></span>camel-case-to-words<a href="#function_summary">
2945+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
2946+ </a>
2947+ </div>
2948+ <pre class="signature">declare function functx:camel-case-to-words<span class="functName"></span> (
2949+<span class="funcParam"> $arg</span> as xs:string?,
2950+<span class="funcParam"> $delim</span> as xs:string
2951+ ) as xs:string</pre>
2952+ <p> Turns a camelCase string into space-separated words
2953+</p>
2954+ <div class="subsubsection">Parameters:</div>
2955+ <ul>
2956+ <li>$arg the string to modify</li>
2957+ <li>$delim the delimiter for the words (e.g. a space)</li>
2958+ </ul>
2959+ <div class="subsubsection">Version:</div>
2960+ <p class="annotationText">1.0</p>
2961+ <div class="subsubsection">Author:</div>
2962+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
2963+ <div class="subsubsection">See:</div>
2964+ <ul>
2965+ <li>
2966+ <a href="http://www.xqueryfunctions.com/xq/functx_camel-case-to-words.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_camel-case-to-words.html</a>
2967+ </li>
2968+ </ul>
2969+ <hr />
2970+ <div class="subsection" id="capitalize-first-1">
2971+ <span class="no_underline"></span>capitalize-first<a href="#function_summary">
2972+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
2973+ </a>
2974+ </div>
2975+ <pre class="signature">declare function functx:capitalize-first<span class="functName"></span> (
2976+<span class="funcParam"> $arg</span> as xs:string?
2977+ ) as xs:string?</pre>
2978+ <p> Capitalizes the first character of a string
2979+</p>
2980+ <div class="subsubsection">Parameters:</div>
2981+ <ul>
2982+ <li>$arg the word or phrase to capitalize</li>
2983+ </ul>
2984+ <div class="subsubsection">Version:</div>
2985+ <p class="annotationText">1.0</p>
2986+ <div class="subsubsection">Author:</div>
2987+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
2988+ <div class="subsubsection">See:</div>
2989+ <ul>
2990+ <li>
2991+ <a href="http://www.xqueryfunctions.com/xq/functx_capitalize-first.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_capitalize-first.html</a>
2992+ </li>
2993+ </ul>
2994+ <hr />
2995+ <div class="subsection" id="change-element-names-deep-3">
2996+ <span class="no_underline"></span>change-element-names-deep<a href="#function_summary">
2997+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
2998+ </a>
2999+ </div>
3000+ <pre class="signature">declare function functx:change-element-names-deep<span class="functName"></span> (
3001+<span class="funcParam"> $nodes</span> as node()*,
3002+<span class="funcParam"> $oldNames</span> as xs:QName*,
3003+<span class="funcParam"> $newNames</span> as xs:QName*
3004+ ) as node()*</pre>
3005+ <p> Changes the names of elements in an XML fragment
3006+</p>
3007+ <div class="subsubsection">Parameters:</div>
3008+ <ul>
3009+ <li>$nodes the element(s) to change</li>
3010+ <li>$oldNames the sequence of names to change from</li>
3011+ <li>$newNames the sequence of names to change to</li>
3012+ </ul>
3013+ <div class="subsubsection">Version:</div>
3014+ <p class="annotationText">1.0</p>
3015+ <div class="subsubsection">Author:</div>
3016+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3017+ <div class="subsubsection">See:</div>
3018+ <ul>
3019+ <li>
3020+ <a href="http://www.xqueryfunctions.com/xq/functx_change-element-names-deep.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_change-element-names-deep.html</a>
3021+ </li>
3022+ </ul>
3023+ <hr />
3024+ <div class="subsection" id="change-element-ns-3">
3025+ <span class="no_underline"></span>change-element-ns<a href="#function_summary">
3026+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3027+ </a>
3028+ </div>
3029+ <pre class="signature">declare function functx:change-element-ns<span class="functName"></span> (
3030+<span class="funcParam"> $elements</span> as element(*)*,
3031+<span class="funcParam"> $newns</span> as xs:string,
3032+<span class="funcParam"> $prefix</span> as xs:string
3033+ ) as element(*)?</pre>
3034+ <p> Changes the namespace of XML elements
3035+</p>
3036+ <div class="subsubsection">Parameters:</div>
3037+ <ul>
3038+ <li>$elements the elements to change</li>
3039+ <li>$newns the new namespace</li>
3040+ <li>$prefix the prefix to use for the new namespace</li>
3041+ </ul>
3042+ <div class="subsubsection">Version:</div>
3043+ <p class="annotationText">1.0</p>
3044+ <div class="subsubsection">Author:</div>
3045+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3046+ <div class="subsubsection">See:</div>
3047+ <ul>
3048+ <li>
3049+ <a href="http://www.xqueryfunctions.com/xq/functx_change-element-ns.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_change-element-ns.html</a>
3050+ </li>
3051+ </ul>
3052+ <hr />
3053+ <div class="subsection" id="change-element-ns-deep-3">
3054+ <span class="no_underline"></span>change-element-ns-deep<a href="#function_summary">
3055+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3056+ </a>
3057+ </div>
3058+ <pre class="signature">declare function functx:change-element-ns-deep<span class="functName"></span> (
3059+<span class="funcParam"> $nodes</span> as node()*,
3060+<span class="funcParam"> $newns</span> as xs:string,
3061+<span class="funcParam"> $prefix</span> as xs:string
3062+ ) as node()*</pre>
3063+ <p> Changes the namespace of XML elements and its descendants
3064+</p>
3065+ <div class="subsubsection">Parameters:</div>
3066+ <ul>
3067+ <li>$nodes the nodes to change</li>
3068+ <li>$newns the new namespace</li>
3069+ <li>$prefix the prefix to use for the new namespace</li>
3070+ </ul>
3071+ <div class="subsubsection">Version:</div>
3072+ <p class="annotationText">1.0</p>
3073+ <div class="subsubsection">Author:</div>
3074+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3075+ <div class="subsubsection">See:</div>
3076+ <ul>
3077+ <li>
3078+ <a href="http://www.xqueryfunctions.com/xq/functx_change-element-ns-deep.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_change-element-ns-deep.html</a>
3079+ </li>
3080+ </ul>
3081+ <hr />
3082+ <div class="subsection" id="chars-1">
3083+ <span class="no_underline"></span>chars<a href="#function_summary">
3084+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3085+ </a>
3086+ </div>
3087+ <pre class="signature">declare function functx:chars<span class="functName"></span> (
3088+<span class="funcParam"> $arg</span> as xs:string?
3089+ ) as xs:string*</pre>
3090+ <p> Converts a string to a sequence of characters
3091+</p>
3092+ <div class="subsubsection">Parameters:</div>
3093+ <ul>
3094+ <li>$arg the string to split</li>
3095+ </ul>
3096+ <div class="subsubsection">Version:</div>
3097+ <p class="annotationText">1.0</p>
3098+ <div class="subsubsection">Author:</div>
3099+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3100+ <div class="subsubsection">See:</div>
3101+ <ul>
3102+ <li>
3103+ <a href="http://www.xqueryfunctions.com/xq/functx_chars.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_chars.html</a>
3104+ </li>
3105+ </ul>
3106+ <hr />
3107+ <div class="subsection" id="contains-any-of-2">
3108+ <span class="no_underline"></span>contains-any-of<a href="#function_summary">
3109+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3110+ </a>
3111+ </div>
3112+ <pre class="signature">declare function functx:contains-any-of<span class="functName"></span> (
3113+<span class="funcParam"> $arg</span> as xs:string?,
3114+<span class="funcParam"> $searchStrings</span> as xs:string*
3115+ ) as xs:boolean</pre>
3116+ <p> Whether a string contains any of a sequence of strings
3117+</p>
3118+ <div class="subsubsection">Parameters:</div>
3119+ <ul>
3120+ <li>$arg the string to test</li>
3121+ <li>$searchStrings the strings to look for</li>
3122+ </ul>
3123+ <div class="subsubsection">Version:</div>
3124+ <p class="annotationText">1.0</p>
3125+ <div class="subsubsection">Author:</div>
3126+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3127+ <div class="subsubsection">See:</div>
3128+ <ul>
3129+ <li>
3130+ <a href="http://www.xqueryfunctions.com/xq/functx_contains-any-of.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_contains-any-of.html</a>
3131+ </li>
3132+ </ul>
3133+ <hr />
3134+ <div class="subsection" id="contains-case-insensitive-2">
3135+ <span class="no_underline"></span>contains-case-insensitive<a href="#function_summary">
3136+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3137+ </a>
3138+ </div>
3139+ <pre class="signature">declare function functx:contains-case-insensitive<span class="functName"></span> (
3140+<span class="funcParam"> $arg</span> as xs:string?,
3141+<span class="funcParam"> $substring</span> as xs:string
3142+ ) as xs:boolean?</pre>
3143+ <p> Whether one string contains another, without regard to case
3144+</p>
3145+ <div class="subsubsection">Parameters:</div>
3146+ <ul>
3147+ <li>$arg the string to search</li>
3148+ <li>$substring the substring to find</li>
3149+ </ul>
3150+ <div class="subsubsection">Version:</div>
3151+ <p class="annotationText">1.0</p>
3152+ <div class="subsubsection">Author:</div>
3153+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3154+ <div class="subsubsection">See:</div>
3155+ <ul>
3156+ <li>
3157+ <a href="http://www.xqueryfunctions.com/xq/functx_contains-case-insensitive.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_contains-case-insensitive.html</a>
3158+ </li>
3159+ </ul>
3160+ <hr />
3161+ <div class="subsection" id="contains-word-2">
3162+ <span class="no_underline"></span>contains-word<a href="#function_summary">
3163+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3164+ </a>
3165+ </div>
3166+ <pre class="signature">declare function functx:contains-word<span class="functName"></span> (
3167+<span class="funcParam"> $arg</span> as xs:string?,
3168+<span class="funcParam"> $word</span> as xs:string
3169+ ) as xs:boolean</pre>
3170+ <p> Whether one string contains another, as a separate word
3171+</p>
3172+ <div class="subsubsection">Parameters:</div>
3173+ <ul>
3174+ <li>$arg the string to search</li>
3175+ <li>$word the word to find</li>
3176+ </ul>
3177+ <div class="subsubsection">Version:</div>
3178+ <p class="annotationText">1.0</p>
3179+ <div class="subsubsection">Author:</div>
3180+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3181+ <div class="subsubsection">See:</div>
3182+ <ul>
3183+ <li>
3184+ <a href="http://www.xqueryfunctions.com/xq/functx_contains-word.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_contains-word.html</a>
3185+ </li>
3186+ </ul>
3187+ <hr />
3188+ <div class="subsection" id="copy-attributes-2">
3189+ <span class="no_underline"></span>copy-attributes<a href="#function_summary">
3190+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3191+ </a>
3192+ </div>
3193+ <pre class="signature">declare function functx:copy-attributes<span class="functName"></span> (
3194+<span class="funcParam"> $copyTo</span> as element(*),
3195+<span class="funcParam"> $copyFrom</span> as element(*)
3196+ ) as element(*)</pre>
3197+ <p> Copies attributes from one element to another
3198+</p>
3199+ <div class="subsubsection">Parameters:</div>
3200+ <ul>
3201+ <li>$copyTo the element to copy attributes to</li>
3202+ <li>$copyFrom the element to copy attributes from</li>
3203+ </ul>
3204+ <div class="subsubsection">Version:</div>
3205+ <p class="annotationText">1.0</p>
3206+ <div class="subsubsection">Author:</div>
3207+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3208+ <div class="subsubsection">See:</div>
3209+ <ul>
3210+ <li>
3211+ <a href="http://www.xqueryfunctions.com/xq/functx_copy-attributes.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_copy-attributes.html</a>
3212+ </li>
3213+ </ul>
3214+ <hr />
3215+ <div class="subsection" id="date-3">
3216+ <span class="no_underline"></span>date<a href="#function_summary">
3217+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3218+ </a>
3219+ </div>
3220+ <pre class="signature">declare function functx:date<span class="functName"></span> (
3221+<span class="funcParam"> $year</span> as xs:anyAtomicType,
3222+<span class="funcParam"> $month</span> as xs:anyAtomicType,
3223+<span class="funcParam"> $day</span> as xs:anyAtomicType
3224+ ) as xs:date</pre>
3225+ <p> Construct a date from a year, month and day
3226+</p>
3227+ <div class="subsubsection">Parameters:</div>
3228+ <ul>
3229+ <li>$year the year</li>
3230+ <li>$month the month</li>
3231+ <li>$day the day</li>
3232+ </ul>
3233+ <div class="subsubsection">Version:</div>
3234+ <p class="annotationText">1.0</p>
3235+ <div class="subsubsection">Author:</div>
3236+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3237+ <div class="subsubsection">See:</div>
3238+ <ul>
3239+ <li>
3240+ <a href="http://www.xqueryfunctions.com/xq/functx_date.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_date.html</a>
3241+ </li>
3242+ </ul>
3243+ <hr />
3244+ <div class="subsection" id="dateTime-6">
3245+ <span class="no_underline"></span>dateTime<a href="#function_summary">
3246+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3247+ </a>
3248+ </div>
3249+ <pre class="signature">declare function functx:dateTime<span class="functName"></span> (
3250+<span class="funcParam"> $year</span> as xs:anyAtomicType,
3251+<span class="funcParam"> $month</span> as xs:anyAtomicType,
3252+<span class="funcParam"> $day</span> as xs:anyAtomicType,
3253+<span class="funcParam"> $hour</span> as xs:anyAtomicType,
3254+<span class="funcParam"> $minute</span> as xs:anyAtomicType,
3255+<span class="funcParam"> $second</span> as xs:anyAtomicType
3256+ ) as xs:dateTime</pre>
3257+ <p> Construct a date/time from individual components
3258+</p>
3259+ <div class="subsubsection">Parameters:</div>
3260+ <ul>
3261+ <li>$year the year</li>
3262+ <li>$month the month</li>
3263+ <li>$day the day</li>
3264+ <li>$hour the hour</li>
3265+ <li>$minute the minute</li>
3266+ <li>$second the second</li>
3267+ </ul>
3268+ <div class="subsubsection">Version:</div>
3269+ <p class="annotationText">1.0</p>
3270+ <div class="subsubsection">Author:</div>
3271+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3272+ <div class="subsubsection">See:</div>
3273+ <ul>
3274+ <li>
3275+ <a href="http://www.xqueryfunctions.com/xq/functx_datetime.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_datetime.html</a>
3276+ </li>
3277+ </ul>
3278+ <hr />
3279+ <div class="subsection" id="day-in-year-1">
3280+ <span class="no_underline"></span>day-in-year<a href="#function_summary">
3281+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3282+ </a>
3283+ </div>
3284+ <pre class="signature">declare function functx:day-in-year<span class="functName"></span> (
3285+<span class="funcParam"> $date</span> as xs:anyAtomicType?
3286+ ) as xs:integer?</pre>
3287+ <p> The day of the year (a number between 1 and 366)
3288+</p>
3289+ <div class="subsubsection">Parameters:</div>
3290+ <ul>
3291+ <li>$date the date</li>
3292+ </ul>
3293+ <div class="subsubsection">Version:</div>
3294+ <p class="annotationText">1.0</p>
3295+ <div class="subsubsection">Author:</div>
3296+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3297+ <div class="subsubsection">See:</div>
3298+ <ul>
3299+ <li>
3300+ <a href="http://www.xqueryfunctions.com/xq/functx_day-in-year.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_day-in-year.html</a>
3301+ </li>
3302+ </ul>
3303+ <hr />
3304+ <div class="subsection" id="day-of-week-1">
3305+ <span class="no_underline"></span>day-of-week<a href="#function_summary">
3306+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3307+ </a>
3308+ </div>
3309+ <pre class="signature">declare function functx:day-of-week<span class="functName"></span> (
3310+<span class="funcParam"> $date</span> as xs:anyAtomicType?
3311+ ) as xs:integer?</pre>
3312+ <p> The day of the week, from a date
3313+</p>
3314+ <div class="subsubsection">Parameters:</div>
3315+ <ul>
3316+ <li>$date the date</li>
3317+ </ul>
3318+ <div class="subsubsection">Version:</div>
3319+ <p class="annotationText">1.0</p>
3320+ <div class="subsubsection">Author:</div>
3321+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3322+ <div class="subsubsection">See:</div>
3323+ <ul>
3324+ <li>
3325+ <a href="http://www.xqueryfunctions.com/xq/functx_day-of-week.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_day-of-week.html</a>
3326+ </li>
3327+ </ul>
3328+ <hr />
3329+ <div class="subsection" id="day-of-week-abbrev-en-1">
3330+ <span class="no_underline"></span>day-of-week-abbrev-en<a href="#function_summary">
3331+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3332+ </a>
3333+ </div>
3334+ <pre class="signature">declare function functx:day-of-week-abbrev-en<span class="functName"></span> (
3335+<span class="funcParam"> $date</span> as xs:anyAtomicType?
3336+ ) as xs:string?</pre>
3337+ <p> The abbreviated day of the week, from a date, in English
3338+</p>
3339+ <div class="subsubsection">Parameters:</div>
3340+ <ul>
3341+ <li>$date the date</li>
3342+ </ul>
3343+ <div class="subsubsection">Version:</div>
3344+ <p class="annotationText">1.0</p>
3345+ <div class="subsubsection">Author:</div>
3346+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3347+ <div class="subsubsection">See:</div>
3348+ <ul>
3349+ <li>
3350+ <a href="http://www.xqueryfunctions.com/xq/functx_day-of-week-abbrev-en.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_day-of-week-abbrev-en.html</a>
3351+ </li>
3352+ </ul>
3353+ <hr />
3354+ <div class="subsection" id="day-of-week-name-en-1">
3355+ <span class="no_underline"></span>day-of-week-name-en<a href="#function_summary">
3356+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3357+ </a>
3358+ </div>
3359+ <pre class="signature">declare function functx:day-of-week-name-en<span class="functName"></span> (
3360+<span class="funcParam"> $date</span> as xs:anyAtomicType?
3361+ ) as xs:string?</pre>
3362+ <p> The name of the day of the week, from a date, in English
3363+</p>
3364+ <div class="subsubsection">Parameters:</div>
3365+ <ul>
3366+ <li>$date the date</li>
3367+ </ul>
3368+ <div class="subsubsection">Version:</div>
3369+ <p class="annotationText">1.0</p>
3370+ <div class="subsubsection">Author:</div>
3371+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3372+ <div class="subsubsection">See:</div>
3373+ <ul>
3374+ <li>
3375+ <a href="http://www.xqueryfunctions.com/xq/functx_day-of-week-name-en.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_day-of-week-name-en.html</a>
3376+ </li>
3377+ </ul>
3378+ <hr />
3379+ <div class="subsection" id="dayTimeDuration-4">
3380+ <span class="no_underline"></span>dayTimeDuration<a href="#function_summary">
3381+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3382+ </a>
3383+ </div>
3384+ <pre class="signature">declare function functx:dayTimeDuration<span class="functName"></span> (
3385+<span class="funcParam"> $days</span> as xs:decimal?,
3386+<span class="funcParam"> $hours</span> as xs:decimal?,
3387+<span class="funcParam"> $minutes</span> as xs:decimal?,
3388+<span class="funcParam"> $seconds</span> as xs:decimal?
3389+ ) as xs:dayTimeDuration</pre>
3390+ <p> Construct a dayTimeDuration from a number of days, hours, etc.
3391+</p>
3392+ <div class="subsubsection">Parameters:</div>
3393+ <ul>
3394+ <li>$days the number of days</li>
3395+ <li>$hours the number of hours</li>
3396+ <li>$minutes the number of minutes</li>
3397+ <li>$seconds the number of seconds</li>
3398+ </ul>
3399+ <div class="subsubsection">Version:</div>
3400+ <p class="annotationText">1.0</p>
3401+ <div class="subsubsection">Author:</div>
3402+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3403+ <div class="subsubsection">See:</div>
3404+ <ul>
3405+ <li>
3406+ <a href="http://www.xqueryfunctions.com/xq/functx_daytimeduration.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_daytimeduration.html</a>
3407+ </li>
3408+ </ul>
3409+ <hr />
3410+ <div class="subsection" id="days-in-month-1">
3411+ <span class="no_underline"></span>days-in-month<a href="#function_summary">
3412+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3413+ </a>
3414+ </div>
3415+ <pre class="signature">declare function functx:days-in-month<span class="functName"></span> (
3416+<span class="funcParam"> $date</span> as xs:anyAtomicType?
3417+ ) as xs:integer?</pre>
3418+ <p> Number of days in the month
3419+</p>
3420+ <div class="subsubsection">Parameters:</div>
3421+ <ul>
3422+ <li>$date the date</li>
3423+ </ul>
3424+ <div class="subsubsection">Version:</div>
3425+ <p class="annotationText">1.0</p>
3426+ <div class="subsubsection">Author:</div>
3427+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3428+ <div class="subsubsection">See:</div>
3429+ <ul>
3430+ <li>
3431+ <a href="http://www.xqueryfunctions.com/xq/functx_days-in-month.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_days-in-month.html</a>
3432+ </li>
3433+ </ul>
3434+ <hr />
3435+ <div class="subsection" id="depth-of-node-1">
3436+ <span class="no_underline"></span>depth-of-node<a href="#function_summary">
3437+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3438+ </a>
3439+ </div>
3440+ <pre class="signature">declare function functx:depth-of-node<span class="functName"></span> (
3441+<span class="funcParam"> $node</span> as node()?
3442+ ) as xs:integer</pre>
3443+ <p> The depth (level) of a node in an XML tree
3444+</p>
3445+ <div class="subsubsection">Parameters:</div>
3446+ <ul>
3447+ <li>$node the node to check</li>
3448+ </ul>
3449+ <div class="subsubsection">Version:</div>
3450+ <p class="annotationText">1.0</p>
3451+ <div class="subsubsection">Author:</div>
3452+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3453+ <div class="subsubsection">See:</div>
3454+ <ul>
3455+ <li>
3456+ <a href="http://www.xqueryfunctions.com/xq/functx_depth-of-node.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_depth-of-node.html</a>
3457+ </li>
3458+ </ul>
3459+ <hr />
3460+ <div class="subsection" id="distinct-attribute-names-1">
3461+ <span class="no_underline"></span>distinct-attribute-names<a href="#function_summary">
3462+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3463+ </a>
3464+ </div>
3465+ <pre class="signature">declare function functx:distinct-attribute-names<span class="functName"></span> (
3466+<span class="funcParam"> $nodes</span> as node()*
3467+ ) as xs:string*</pre>
3468+ <p> The distinct names of all attributes in an XML fragment
3469+</p>
3470+ <div class="subsubsection">Parameters:</div>
3471+ <ul>
3472+ <li>$nodes the root to start from</li>
3473+ </ul>
3474+ <div class="subsubsection">Version:</div>
3475+ <p class="annotationText">1.0</p>
3476+ <div class="subsubsection">Author:</div>
3477+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3478+ <div class="subsubsection">See:</div>
3479+ <ul>
3480+ <li>
3481+ <a href="http://www.xqueryfunctions.com/xq/functx_distinct-attribute-names.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_distinct-attribute-names.html</a>
3482+ </li>
3483+ </ul>
3484+ <hr />
3485+ <div class="subsection" id="distinct-deep-1">
3486+ <span class="no_underline"></span>distinct-deep<a href="#function_summary">
3487+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3488+ </a>
3489+ </div>
3490+ <pre class="signature">declare function functx:distinct-deep<span class="functName"></span> (
3491+<span class="funcParam"> $nodes</span> as node()*
3492+ ) as node()*</pre>
3493+ <p> The XML nodes with distinct values, taking into account attributes and descendants
3494+</p>
3495+ <div class="subsubsection">Parameters:</div>
3496+ <ul>
3497+ <li>$nodes the sequence of nodes to test</li>
3498+ </ul>
3499+ <div class="subsubsection">Version:</div>
3500+ <p class="annotationText">1.0</p>
3501+ <div class="subsubsection">Author:</div>
3502+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3503+ <div class="subsubsection">See:</div>
3504+ <ul>
3505+ <li>
3506+ <a href="http://www.xqueryfunctions.com/xq/functx_distinct-deep.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_distinct-deep.html</a>
3507+ </li>
3508+ </ul>
3509+ <hr />
3510+ <div class="subsection" id="distinct-element-names-1">
3511+ <span class="no_underline"></span>distinct-element-names<a href="#function_summary">
3512+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3513+ </a>
3514+ </div>
3515+ <pre class="signature">declare function functx:distinct-element-names<span class="functName"></span> (
3516+<span class="funcParam"> $nodes</span> as node()*
3517+ ) as xs:string*</pre>
3518+ <p> The distinct names of all elements in an XML fragment
3519+</p>
3520+ <div class="subsubsection">Parameters:</div>
3521+ <ul>
3522+ <li>$nodes the root(s) to start from</li>
3523+ </ul>
3524+ <div class="subsubsection">Version:</div>
3525+ <p class="annotationText">1.0</p>
3526+ <div class="subsubsection">Author:</div>
3527+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3528+ <div class="subsubsection">See:</div>
3529+ <ul>
3530+ <li>
3531+ <a href="http://www.xqueryfunctions.com/xq/functx_distinct-element-names.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_distinct-element-names.html</a>
3532+ </li>
3533+ </ul>
3534+ <hr />
3535+ <div class="subsection" id="distinct-element-paths-1">
3536+ <span class="no_underline"></span>distinct-element-paths<a href="#function_summary">
3537+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3538+ </a>
3539+ </div>
3540+ <pre class="signature">declare function functx:distinct-element-paths<span class="functName"></span> (
3541+<span class="funcParam"> $nodes</span> as node()*
3542+ ) as xs:string*</pre>
3543+ <p> The distinct paths of all descendant elements in an XML fragment
3544+</p>
3545+ <div class="subsubsection">Parameters:</div>
3546+ <ul>
3547+ <li>$nodes the root(s) to start from</li>
3548+ </ul>
3549+ <div class="subsubsection">Version:</div>
3550+ <p class="annotationText">1.0</p>
3551+ <div class="subsubsection">Author:</div>
3552+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3553+ <div class="subsubsection">See:</div>
3554+ <ul>
3555+ <li>
3556+ <a href="http://www.xqueryfunctions.com/xq/functx_distinct-element-paths.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_distinct-element-paths.html</a>
3557+ </li>
3558+ </ul>
3559+ <hr />
3560+ <div class="subsection" id="distinct-nodes-1">
3561+ <span class="no_underline"></span>distinct-nodes<a href="#function_summary">
3562+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3563+ </a>
3564+ </div>
3565+ <pre class="signature">declare function functx:distinct-nodes<span class="functName"></span> (
3566+<span class="funcParam"> $nodes</span> as node()*
3567+ ) as node()*</pre>
3568+ <p> The distinct XML nodes in a sequence (by node identity)
3569+</p>
3570+ <div class="subsubsection">Parameters:</div>
3571+ <ul>
3572+ <li>$nodes the node sequence</li>
3573+ </ul>
3574+ <div class="subsubsection">Version:</div>
3575+ <p class="annotationText">1.0</p>
3576+ <div class="subsubsection">Author:</div>
3577+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3578+ <div class="subsubsection">See:</div>
3579+ <ul>
3580+ <li>
3581+ <a href="http://www.xqueryfunctions.com/xq/functx_distinct-nodes.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_distinct-nodes.html</a>
3582+ </li>
3583+ </ul>
3584+ <hr />
3585+ <div class="subsection" id="duration-from-timezone-1">
3586+ <span class="no_underline"></span>duration-from-timezone<a href="#function_summary">
3587+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3588+ </a>
3589+ </div>
3590+ <pre class="signature">declare function functx:duration-from-timezone<span class="functName"></span> (
3591+<span class="funcParam"> $timezone</span> as xs:string
3592+ ) as xs:dayTimeDuration</pre>
3593+ <p> Converts a timezone like "-05:00" or "Z" into xs:dayTimeDuration
3594+</p>
3595+ <div class="subsubsection">Parameters:</div>
3596+ <ul>
3597+ <li>$timezone the time zone, in (+|-)HH:MM format</li>
3598+ </ul>
3599+ <div class="subsubsection">Version:</div>
3600+ <p class="annotationText">1.0</p>
3601+ <div class="subsubsection">Author:</div>
3602+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3603+ <div class="subsubsection">See:</div>
3604+ <ul>
3605+ <li>
3606+ <a href="http://www.xqueryfunctions.com/xq/functx_duration-from-timezone.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_duration-from-timezone.html</a>
3607+ </li>
3608+ </ul>
3609+ <hr />
3610+ <div class="subsection" id="dynamic-path-2">
3611+ <span class="no_underline"></span>dynamic-path<a href="#function_summary">
3612+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3613+ </a>
3614+ </div>
3615+ <pre class="signature">declare function functx:dynamic-path<span class="functName"></span> (
3616+<span class="funcParam"> $parent</span> as node(),
3617+<span class="funcParam"> $path</span> as xs:string
3618+ ) as item()*</pre>
3619+ <p> Dynamically evaluates a simple XPath path
3620+</p>
3621+ <div class="subsubsection">Parameters:</div>
3622+ <ul>
3623+ <li>$parent the root to start from</li>
3624+ <li>$path the path expression</li>
3625+ </ul>
3626+ <div class="subsubsection">Version:</div>
3627+ <p class="annotationText">1.0</p>
3628+ <div class="subsubsection">Author:</div>
3629+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3630+ <div class="subsubsection">See:</div>
3631+ <ul>
3632+ <li>
3633+ <a href="http://www.xqueryfunctions.com/xq/functx_dynamic-path.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_dynamic-path.html</a>
3634+ </li>
3635+ </ul>
3636+ <hr />
3637+ <div class="subsection" id="escape-for-regex-1">
3638+ <span class="no_underline"></span>escape-for-regex<a href="#function_summary">
3639+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3640+ </a>
3641+ </div>
3642+ <pre class="signature">declare function functx:escape-for-regex<span class="functName"></span> (
3643+<span class="funcParam"> $arg</span> as xs:string?
3644+ ) as xs:string</pre>
3645+ <p> Escapes regex special characters
3646+</p>
3647+ <div class="subsubsection">Parameters:</div>
3648+ <ul>
3649+ <li>$arg the string to escape</li>
3650+ </ul>
3651+ <div class="subsubsection">Version:</div>
3652+ <p class="annotationText">1.0</p>
3653+ <div class="subsubsection">Author:</div>
3654+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3655+ <div class="subsubsection">See:</div>
3656+ <ul>
3657+ <li>
3658+ <a href="http://www.xqueryfunctions.com/xq/functx_escape-for-regex.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_escape-for-regex.html</a>
3659+ </li>
3660+ </ul>
3661+ <hr />
3662+ <div class="subsection" id="exclusive-or-2">
3663+ <span class="no_underline"></span>exclusive-or<a href="#function_summary">
3664+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3665+ </a>
3666+ </div>
3667+ <pre class="signature">declare function functx:exclusive-or<span class="functName"></span> (
3668+<span class="funcParam"> $arg1</span> as xs:boolean?,
3669+<span class="funcParam"> $arg2</span> as xs:boolean?
3670+ ) as xs:boolean?</pre>
3671+ <p> Whether one (and only one) of two boolean values is true
3672+</p>
3673+ <div class="subsubsection">Parameters:</div>
3674+ <ul>
3675+ <li>$arg1 the first boolean value</li>
3676+ <li>$arg2 the second boolean value</li>
3677+ </ul>
3678+ <div class="subsubsection">Version:</div>
3679+ <p class="annotationText">1.0</p>
3680+ <div class="subsubsection">Author:</div>
3681+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3682+ <div class="subsubsection">See:</div>
3683+ <ul>
3684+ <li>
3685+ <a href="http://www.xqueryfunctions.com/xq/functx_exclusive-or.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_exclusive-or.html</a>
3686+ </li>
3687+ </ul>
3688+ <hr />
3689+ <div class="subsection" id="first-day-of-month-1">
3690+ <span class="no_underline"></span>first-day-of-month<a href="#function_summary">
3691+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3692+ </a>
3693+ </div>
3694+ <pre class="signature">declare function functx:first-day-of-month<span class="functName"></span> (
3695+<span class="funcParam"> $date</span> as xs:anyAtomicType?
3696+ ) as xs:date?</pre>
3697+ <p> The first day of the month of a date
3698+</p>
3699+ <div class="subsubsection">Parameters:</div>
3700+ <ul>
3701+ <li>$date the date</li>
3702+ </ul>
3703+ <div class="subsubsection">Version:</div>
3704+ <p class="annotationText">1.0</p>
3705+ <div class="subsubsection">Author:</div>
3706+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3707+ <div class="subsubsection">See:</div>
3708+ <ul>
3709+ <li>
3710+ <a href="http://www.xqueryfunctions.com/xq/functx_first-day-of-month.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_first-day-of-month.html</a>
3711+ </li>
3712+ </ul>
3713+ <hr />
3714+ <div class="subsection" id="first-day-of-year-1">
3715+ <span class="no_underline"></span>first-day-of-year<a href="#function_summary">
3716+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3717+ </a>
3718+ </div>
3719+ <pre class="signature">declare function functx:first-day-of-year<span class="functName"></span> (
3720+<span class="funcParam"> $date</span> as xs:anyAtomicType?
3721+ ) as xs:date?</pre>
3722+ <p> The first day of the year of a date
3723+</p>
3724+ <div class="subsubsection">Parameters:</div>
3725+ <ul>
3726+ <li>$date the date</li>
3727+ </ul>
3728+ <div class="subsubsection">Version:</div>
3729+ <p class="annotationText">1.0</p>
3730+ <div class="subsubsection">Author:</div>
3731+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3732+ <div class="subsubsection">See:</div>
3733+ <ul>
3734+ <li>
3735+ <a href="http://www.xqueryfunctions.com/xq/functx_first-day-of-year.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_first-day-of-year.html</a>
3736+ </li>
3737+ </ul>
3738+ <hr />
3739+ <div class="subsection" id="first-node-1">
3740+ <span class="no_underline"></span>first-node<a href="#function_summary">
3741+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3742+ </a>
3743+ </div>
3744+ <pre class="signature">declare function functx:first-node<span class="functName"></span> (
3745+<span class="funcParam"> $nodes</span> as node()*
3746+ ) as node()?</pre>
3747+ <p> The XML node in a sequence that appears first in document order
3748+</p>
3749+ <div class="subsubsection">Parameters:</div>
3750+ <ul>
3751+ <li>$nodes the sequence of nodes</li>
3752+ </ul>
3753+ <div class="subsubsection">Version:</div>
3754+ <p class="annotationText">1.0</p>
3755+ <div class="subsubsection">Author:</div>
3756+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3757+ <div class="subsubsection">See:</div>
3758+ <ul>
3759+ <li>
3760+ <a href="http://www.xqueryfunctions.com/xq/functx_first-node.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_first-node.html</a>
3761+ </li>
3762+ </ul>
3763+ <hr />
3764+ <div class="subsection" id="follows-not-descendant-2">
3765+ <span class="no_underline"></span>follows-not-descendant<a href="#function_summary">
3766+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3767+ </a>
3768+ </div>
3769+ <pre class="signature">declare function functx:follows-not-descendant<span class="functName"></span> (
3770+<span class="funcParam"> $a</span> as node()?,
3771+<span class="funcParam"> $b</span> as node()?
3772+ ) as xs:boolean</pre>
3773+ <p> Whether an XML node follows another without being its descendant
3774+</p>
3775+ <div class="subsubsection">Parameters:</div>
3776+ <ul>
3777+ <li>$a the first node</li>
3778+ <li>$b the second node</li>
3779+ </ul>
3780+ <div class="subsubsection">Version:</div>
3781+ <p class="annotationText">1.0</p>
3782+ <div class="subsubsection">Author:</div>
3783+ <p class="annotationText">W3C XML Query Working Group</p>
3784+ <div class="subsubsection">See:</div>
3785+ <ul>
3786+ <li>
3787+ <a href="http://www.xqueryfunctions.com/xq/functx_follows-not-descendant.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_follows-not-descendant.html</a>
3788+ </li>
3789+ </ul>
3790+ <hr />
3791+ <div class="subsection" id="format-as-title-en-1">
3792+ <span class="no_underline"></span>format-as-title-en<a href="#function_summary">
3793+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3794+ </a>
3795+ </div>
3796+ <pre class="signature">declare function functx:format-as-title-en<span class="functName"></span> (
3797+<span class="funcParam"> $titles</span> as xs:string*
3798+ ) as xs:string*</pre>
3799+ <p> Moves title words like "the" and "a" to the end of strings
3800+</p>
3801+ <div class="subsubsection">Parameters:</div>
3802+ <ul>
3803+ <li>$titles the titles to format</li>
3804+ </ul>
3805+ <div class="subsubsection">Version:</div>
3806+ <p class="annotationText">1.0</p>
3807+ <div class="subsubsection">Author:</div>
3808+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3809+ <div class="subsubsection">See:</div>
3810+ <ul>
3811+ <li>
3812+ <a href="http://www.xqueryfunctions.com/xq/functx_format-as-title-en.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_format-as-title-en.html</a>
3813+ </li>
3814+ </ul>
3815+ <hr />
3816+ <div class="subsection" id="fragment-from-uri-1">
3817+ <span class="no_underline"></span>fragment-from-uri<a href="#function_summary">
3818+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3819+ </a>
3820+ </div>
3821+ <pre class="signature">declare function functx:fragment-from-uri<span class="functName"></span> (
3822+<span class="funcParam"> $uri</span> as xs:string?
3823+ ) as xs:string?</pre>
3824+ <p> Returns the fragment from a URI
3825+</p>
3826+ <div class="subsubsection">Parameters:</div>
3827+ <ul>
3828+ <li>$uri the URI</li>
3829+ </ul>
3830+ <div class="subsubsection">Version:</div>
3831+ <p class="annotationText">1.0</p>
3832+ <div class="subsubsection">Author:</div>
3833+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3834+ <div class="subsubsection">See:</div>
3835+ <ul>
3836+ <li>
3837+ <a href="http://www.xqueryfunctions.com/xq/functx_fragment-from-uri.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_fragment-from-uri.html</a>
3838+ </li>
3839+ </ul>
3840+ <hr />
3841+ <div class="subsection" id="get-matches-2">
3842+ <span class="no_underline"></span>get-matches<a href="#function_summary">
3843+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3844+ </a>
3845+ </div>
3846+ <pre class="signature">declare function functx:get-matches<span class="functName"></span> (
3847+<span class="funcParam"> $string</span> as xs:string?,
3848+<span class="funcParam"> $regex</span> as xs:string
3849+ ) as xs:string*</pre>
3850+ <p> Return the matching regions of a string
3851+</p>
3852+ <div class="subsubsection">Parameters:</div>
3853+ <ul>
3854+ <li>$string the string to split</li>
3855+ <li>$regex the pattern</li>
3856+ </ul>
3857+ <div class="subsubsection">Version:</div>
3858+ <p class="annotationText">1.0</p>
3859+ <div class="subsubsection">Author:</div>
3860+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3861+ <div class="subsubsection">See:</div>
3862+ <ul>
3863+ <li>
3864+ <a href="http://www.xqueryfunctions.com/xq/functx_get-matches.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_get-matches.html</a>
3865+ </li>
3866+ </ul>
3867+ <hr />
3868+ <div class="subsection" id="get-matches-and-non-matches-2">
3869+ <span class="no_underline"></span>get-matches-and-non-matches<a href="#function_summary">
3870+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3871+ </a>
3872+ </div>
3873+ <pre class="signature">declare function functx:get-matches-and-non-matches<span class="functName"></span> (
3874+<span class="funcParam"> $string</span> as xs:string?,
3875+<span class="funcParam"> $regex</span> as xs:string
3876+ ) as element(*)*</pre>
3877+ <p> Splits a string into matching and non-matching regions
3878+</p>
3879+ <div class="subsubsection">Parameters:</div>
3880+ <ul>
3881+ <li>$string the string to split</li>
3882+ <li>$regex the pattern</li>
3883+ </ul>
3884+ <div class="subsubsection">Version:</div>
3885+ <p class="annotationText">1.0</p>
3886+ <div class="subsubsection">Author:</div>
3887+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3888+ <div class="subsubsection">See:</div>
3889+ <ul>
3890+ <li>
3891+ <a href="http://www.xqueryfunctions.com/xq/functx_get-matches-and-non-matches.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_get-matches-and-non-matches.html</a>
3892+ </li>
3893+ </ul>
3894+ <hr />
3895+ <div class="subsection" id="has-element-only-content-1">
3896+ <span class="no_underline"></span>has-element-only-content<a href="#function_summary">
3897+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3898+ </a>
3899+ </div>
3900+ <pre class="signature">declare function functx:has-element-only-content<span class="functName"></span> (
3901+<span class="funcParam"> $element</span> as element(*)
3902+ ) as xs:boolean</pre>
3903+ <p> Whether an element has element-only content
3904+</p>
3905+ <div class="subsubsection">Parameters:</div>
3906+ <ul>
3907+ <li>$element the XML element to test</li>
3908+ </ul>
3909+ <div class="subsubsection">Version:</div>
3910+ <p class="annotationText">1.0</p>
3911+ <div class="subsubsection">Author:</div>
3912+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3913+ <div class="subsubsection">See:</div>
3914+ <ul>
3915+ <li>
3916+ <a href="http://www.xqueryfunctions.com/xq/functx_has-element-only-content.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_has-element-only-content.html</a>
3917+ </li>
3918+ </ul>
3919+ <hr />
3920+ <div class="subsection" id="has-empty-content-1">
3921+ <span class="no_underline"></span>has-empty-content<a href="#function_summary">
3922+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3923+ </a>
3924+ </div>
3925+ <pre class="signature">declare function functx:has-empty-content<span class="functName"></span> (
3926+<span class="funcParam"> $element</span> as element(*)
3927+ ) as xs:boolean</pre>
3928+ <p> Whether an element has empty content
3929+</p>
3930+ <div class="subsubsection">Parameters:</div>
3931+ <ul>
3932+ <li>$element the XML element to test</li>
3933+ </ul>
3934+ <div class="subsubsection">Version:</div>
3935+ <p class="annotationText">1.0</p>
3936+ <div class="subsubsection">Author:</div>
3937+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3938+ <div class="subsubsection">See:</div>
3939+ <ul>
3940+ <li>
3941+ <a href="http://www.xqueryfunctions.com/xq/functx_has-empty-content.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_has-empty-content.html</a>
3942+ </li>
3943+ </ul>
3944+ <hr />
3945+ <div class="subsection" id="has-mixed-content-1">
3946+ <span class="no_underline"></span>has-mixed-content<a href="#function_summary">
3947+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3948+ </a>
3949+ </div>
3950+ <pre class="signature">declare function functx:has-mixed-content<span class="functName"></span> (
3951+<span class="funcParam"> $element</span> as element(*)
3952+ ) as xs:boolean</pre>
3953+ <p> Whether an element has mixed content
3954+</p>
3955+ <div class="subsubsection">Parameters:</div>
3956+ <ul>
3957+ <li>$element the XML element to test</li>
3958+ </ul>
3959+ <div class="subsubsection">Version:</div>
3960+ <p class="annotationText">1.0</p>
3961+ <div class="subsubsection">Author:</div>
3962+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3963+ <div class="subsubsection">See:</div>
3964+ <ul>
3965+ <li>
3966+ <a href="http://www.xqueryfunctions.com/xq/functx_has-mixed-content.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_has-mixed-content.html</a>
3967+ </li>
3968+ </ul>
3969+ <hr />
3970+ <div class="subsection" id="has-simple-content-1">
3971+ <span class="no_underline"></span>has-simple-content<a href="#function_summary">
3972+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3973+ </a>
3974+ </div>
3975+ <pre class="signature">declare function functx:has-simple-content<span class="functName"></span> (
3976+<span class="funcParam"> $element</span> as element(*)
3977+ ) as xs:boolean</pre>
3978+ <p> Whether an element has simple content
3979+</p>
3980+ <div class="subsubsection">Parameters:</div>
3981+ <ul>
3982+ <li>$element the XML element to test</li>
3983+ </ul>
3984+ <div class="subsubsection">Version:</div>
3985+ <p class="annotationText">1.0</p>
3986+ <div class="subsubsection">Author:</div>
3987+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
3988+ <div class="subsubsection">See:</div>
3989+ <ul>
3990+ <li>
3991+ <a href="http://www.xqueryfunctions.com/xq/functx_has-simple-content.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_has-simple-content.html</a>
3992+ </li>
3993+ </ul>
3994+ <hr />
3995+ <div class="subsection" id="id-from-element-1">
3996+ <span class="no_underline"></span>id-from-element<a href="#function_summary">
3997+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
3998+ </a>
3999+ </div>
4000+ <pre class="signature">declare function functx:id-from-element<span class="functName"></span> (
4001+<span class="funcParam"> $element</span> as element(*)?
4002+ ) as xs:string?</pre>
4003+ <p> Gets the ID of an XML element
4004+</p>
4005+ <div class="subsubsection">Parameters:</div>
4006+ <ul>
4007+ <li>$element the element</li>
4008+ </ul>
4009+ <div class="subsubsection">Version:</div>
4010+ <p class="annotationText">1.0</p>
4011+ <div class="subsubsection">Author:</div>
4012+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4013+ <div class="subsubsection">See:</div>
4014+ <ul>
4015+ <li>
4016+ <a href="http://www.xqueryfunctions.com/xq/functx_id-from-element.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_id-from-element.html</a>
4017+ </li>
4018+ </ul>
4019+ <hr />
4020+ <div class="subsection" id="id-untyped-2">
4021+ <span class="no_underline"></span>id-untyped<a href="#function_summary">
4022+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4023+ </a>
4024+ </div>
4025+ <pre class="signature">declare function functx:id-untyped<span class="functName"></span> (
4026+<span class="funcParam"> $node</span> as node()*,
4027+<span class="funcParam"> $id</span> as xs:anyAtomicType
4028+ ) as element(*)*</pre>
4029+ <p> Gets XML element(s) that have an attribute with a particular value
4030+</p>
4031+ <div class="subsubsection">Parameters:</div>
4032+ <ul>
4033+ <li>$node the root node(s) to start from</li>
4034+ <li>$id the "id" to find</li>
4035+ </ul>
4036+ <div class="subsubsection">Version:</div>
4037+ <p class="annotationText">1.0</p>
4038+ <div class="subsubsection">Author:</div>
4039+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4040+ <div class="subsubsection">See:</div>
4041+ <ul>
4042+ <li>
4043+ <a href="http://www.xqueryfunctions.com/xq/functx_id-untyped.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_id-untyped.html</a>
4044+ </li>
4045+ </ul>
4046+ <hr />
4047+ <div class="subsection" id="if-absent-2">
4048+ <span class="no_underline"></span>if-absent<a href="#function_summary">
4049+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4050+ </a>
4051+ </div>
4052+ <pre class="signature">declare function functx:if-absent<span class="functName"></span> (
4053+<span class="funcParam"> $arg</span> as item()*,
4054+<span class="funcParam"> $value</span> as item()*
4055+ ) as item()*</pre>
4056+ <p> The first argument if it is not empty, otherwise the second argument
4057+</p>
4058+ <div class="subsubsection">Parameters:</div>
4059+ <ul>
4060+ <li>$arg the item(s) that may be absent</li>
4061+ <li>$value the item(s) to use if the item is absent</li>
4062+ </ul>
4063+ <div class="subsubsection">Version:</div>
4064+ <p class="annotationText">1.0</p>
4065+ <div class="subsubsection">Author:</div>
4066+ <p class="annotationText">W3C XML Query WG</p>
4067+ <div class="subsubsection">See:</div>
4068+ <ul>
4069+ <li>
4070+ <a href="http://www.xqueryfunctions.com/xq/functx_if-absent.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_if-absent.html</a>
4071+ </li>
4072+ </ul>
4073+ <hr />
4074+ <div class="subsection" id="if-empty-2">
4075+ <span class="no_underline"></span>if-empty<a href="#function_summary">
4076+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4077+ </a>
4078+ </div>
4079+ <pre class="signature">declare function functx:if-empty<span class="functName"></span> (
4080+<span class="funcParam"> $arg</span> as item()?,
4081+<span class="funcParam"> $value</span> as item()*
4082+ ) as item()*</pre>
4083+ <p> The first argument if it is not blank, otherwise the second argument
4084+</p>
4085+ <div class="subsubsection">Parameters:</div>
4086+ <ul>
4087+ <li>$arg the node that may be empty</li>
4088+ <li>$value the item(s) to use if the node is empty</li>
4089+ </ul>
4090+ <div class="subsubsection">Version:</div>
4091+ <p class="annotationText">1.0</p>
4092+ <div class="subsubsection">Author:</div>
4093+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4094+ <div class="subsubsection">See:</div>
4095+ <ul>
4096+ <li>
4097+ <a href="http://www.xqueryfunctions.com/xq/functx_if-empty.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_if-empty.html</a>
4098+ </li>
4099+ </ul>
4100+ <hr />
4101+ <div class="subsection" id="index-of-deep-equal-node-2">
4102+ <span class="no_underline"></span>index-of-deep-equal-node<a href="#function_summary">
4103+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4104+ </a>
4105+ </div>
4106+ <pre class="signature">declare function functx:index-of-deep-equal-node<span class="functName"></span> (
4107+<span class="funcParam"> $nodes</span> as node()*,
4108+<span class="funcParam"> $nodeToFind</span> as node()
4109+ ) as xs:integer*</pre>
4110+ <p> The position of a node in a sequence, based on contents and attributes
4111+</p>
4112+ <div class="subsubsection">Parameters:</div>
4113+ <ul>
4114+ <li>$nodes the node sequence</li>
4115+ <li>$nodeToFind the node to find in the sequence</li>
4116+ </ul>
4117+ <div class="subsubsection">Version:</div>
4118+ <p class="annotationText">1.0</p>
4119+ <div class="subsubsection">Author:</div>
4120+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4121+ <div class="subsubsection">See:</div>
4122+ <ul>
4123+ <li>
4124+ <a href="http://www.xqueryfunctions.com/xq/functx_index-of-deep-equal-node.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_index-of-deep-equal-node.html</a>
4125+ </li>
4126+ </ul>
4127+ <hr />
4128+ <div class="subsection" id="index-of-match-first-2">
4129+ <span class="no_underline"></span>index-of-match-first<a href="#function_summary">
4130+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4131+ </a>
4132+ </div>
4133+ <pre class="signature">declare function functx:index-of-match-first<span class="functName"></span> (
4134+<span class="funcParam"> $arg</span> as xs:string?,
4135+<span class="funcParam"> $pattern</span> as xs:string
4136+ ) as xs:integer?</pre>
4137+ <p> The first position of a matching substring
4138+</p>
4139+ <div class="subsubsection">Parameters:</div>
4140+ <ul>
4141+ <li>$arg the string</li>
4142+ <li>$pattern the pattern to match</li>
4143+ </ul>
4144+ <div class="subsubsection">Version:</div>
4145+ <p class="annotationText">1.0</p>
4146+ <div class="subsubsection">Author:</div>
4147+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4148+ <div class="subsubsection">See:</div>
4149+ <ul>
4150+ <li>
4151+ <a href="http://www.xqueryfunctions.com/xq/functx_index-of-match-first.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_index-of-match-first.html</a>
4152+ </li>
4153+ </ul>
4154+ <hr />
4155+ <div class="subsection" id="index-of-node-2">
4156+ <span class="no_underline"></span>index-of-node<a href="#function_summary">
4157+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4158+ </a>
4159+ </div>
4160+ <pre class="signature">declare function functx:index-of-node<span class="functName"></span> (
4161+<span class="funcParam"> $nodes</span> as node()*,
4162+<span class="funcParam"> $nodeToFind</span> as node()
4163+ ) as xs:integer*</pre>
4164+ <p> The position of a node in a sequence, based on node identity
4165+</p>
4166+ <div class="subsubsection">Parameters:</div>
4167+ <ul>
4168+ <li>$nodes the node sequence</li>
4169+ <li>$nodeToFind the node to find in the sequence</li>
4170+ </ul>
4171+ <div class="subsubsection">Version:</div>
4172+ <p class="annotationText">1.0</p>
4173+ <div class="subsubsection">Author:</div>
4174+ <p class="annotationText">W3C XML Query Working Group</p>
4175+ <div class="subsubsection">See:</div>
4176+ <ul>
4177+ <li>
4178+ <a href="http://www.xqueryfunctions.com/xq/functx_index-of-node.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_index-of-node.html</a>
4179+ </li>
4180+ </ul>
4181+ <hr />
4182+ <div class="subsection" id="index-of-string-2">
4183+ <span class="no_underline"></span>index-of-string<a href="#function_summary">
4184+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4185+ </a>
4186+ </div>
4187+ <pre class="signature">declare function functx:index-of-string<span class="functName"></span> (
4188+<span class="funcParam"> $arg</span> as xs:string?,
4189+<span class="funcParam"> $substring</span> as xs:string
4190+ ) as xs:integer*</pre>
4191+ <p> The position(s) of a substring
4192+</p>
4193+ <div class="subsubsection">Parameters:</div>
4194+ <ul>
4195+ <li>$arg the string</li>
4196+ <li>$substring the substring to find</li>
4197+ </ul>
4198+ <div class="subsubsection">Version:</div>
4199+ <p class="annotationText">1.0</p>
4200+ <div class="subsubsection">Author:</div>
4201+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4202+ <div class="subsubsection">See:</div>
4203+ <ul>
4204+ <li>
4205+ <a href="http://www.xqueryfunctions.com/xq/functx_index-of-string.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_index-of-string.html</a>
4206+ </li>
4207+ </ul>
4208+ <hr />
4209+ <div class="subsection" id="index-of-string-first-2">
4210+ <span class="no_underline"></span>index-of-string-first<a href="#function_summary">
4211+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4212+ </a>
4213+ </div>
4214+ <pre class="signature">declare function functx:index-of-string-first<span class="functName"></span> (
4215+<span class="funcParam"> $arg</span> as xs:string?,
4216+<span class="funcParam"> $substring</span> as xs:string
4217+ ) as xs:integer?</pre>
4218+ <p> The first position of a substring
4219+</p>
4220+ <div class="subsubsection">Parameters:</div>
4221+ <ul>
4222+ <li>$arg the string</li>
4223+ <li>$substring the substring to find</li>
4224+ </ul>
4225+ <div class="subsubsection">Version:</div>
4226+ <p class="annotationText">1.0</p>
4227+ <div class="subsubsection">Author:</div>
4228+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4229+ <div class="subsubsection">See:</div>
4230+ <ul>
4231+ <li>
4232+ <a href="http://www.xqueryfunctions.com/xq/functx_index-of-string-first.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_index-of-string-first.html</a>
4233+ </li>
4234+ </ul>
4235+ <hr />
4236+ <div class="subsection" id="index-of-string-last-2">
4237+ <span class="no_underline"></span>index-of-string-last<a href="#function_summary">
4238+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4239+ </a>
4240+ </div>
4241+ <pre class="signature">declare function functx:index-of-string-last<span class="functName"></span> (
4242+<span class="funcParam"> $arg</span> as xs:string?,
4243+<span class="funcParam"> $substring</span> as xs:string
4244+ ) as xs:integer?</pre>
4245+ <p> The last position of a substring
4246+</p>
4247+ <div class="subsubsection">Parameters:</div>
4248+ <ul>
4249+ <li>$arg the string</li>
4250+ <li>$substring the substring to find</li>
4251+ </ul>
4252+ <div class="subsubsection">Version:</div>
4253+ <p class="annotationText">1.0</p>
4254+ <div class="subsubsection">Author:</div>
4255+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4256+ <div class="subsubsection">See:</div>
4257+ <ul>
4258+ <li>
4259+ <a href="http://www.xqueryfunctions.com/xq/functx_index-of-string-last.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_index-of-string-last.html</a>
4260+ </li>
4261+ </ul>
4262+ <hr />
4263+ <div class="subsection" id="insert-string-3">
4264+ <span class="no_underline"></span>insert-string<a href="#function_summary">
4265+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4266+ </a>
4267+ </div>
4268+ <pre class="signature">declare function functx:insert-string<span class="functName"></span> (
4269+<span class="funcParam"> $originalString</span> as xs:string?,
4270+<span class="funcParam"> $stringToInsert</span> as xs:string?,
4271+<span class="funcParam"> $pos</span> as xs:integer
4272+ ) as xs:string</pre>
4273+ <p> Inserts a string at a specified position
4274+</p>
4275+ <div class="subsubsection">Parameters:</div>
4276+ <ul>
4277+ <li>$originalString the original string to insert into</li>
4278+ <li>$stringToInsert the string to insert</li>
4279+ <li>$pos the position</li>
4280+ </ul>
4281+ <div class="subsubsection">Version:</div>
4282+ <p class="annotationText">1.0</p>
4283+ <div class="subsubsection">Author:</div>
4284+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4285+ <div class="subsubsection">See:</div>
4286+ <ul>
4287+ <li>
4288+ <a href="http://www.xqueryfunctions.com/xq/functx_insert-string.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_insert-string.html</a>
4289+ </li>
4290+ </ul>
4291+ <hr />
4292+ <div class="subsection" id="is-a-number-1">
4293+ <span class="no_underline"></span>is-a-number<a href="#function_summary">
4294+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4295+ </a>
4296+ </div>
4297+ <pre class="signature">declare function functx:is-a-number<span class="functName"></span> (
4298+<span class="funcParam"> $value</span> as xs:anyAtomicType?
4299+ ) as xs:boolean</pre>
4300+ <p> Whether a value is numeric
4301+</p>
4302+ <div class="subsubsection">Parameters:</div>
4303+ <ul>
4304+ <li>$value the value to test</li>
4305+ </ul>
4306+ <div class="subsubsection">Version:</div>
4307+ <p class="annotationText">1.0</p>
4308+ <div class="subsubsection">Author:</div>
4309+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4310+ <div class="subsubsection">See:</div>
4311+ <ul>
4312+ <li>
4313+ <a href="http://www.xqueryfunctions.com/xq/functx_is-a-number.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_is-a-number.html</a>
4314+ </li>
4315+ </ul>
4316+ <hr />
4317+ <div class="subsection" id="is-absolute-uri-1">
4318+ <span class="no_underline"></span>is-absolute-uri<a href="#function_summary">
4319+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4320+ </a>
4321+ </div>
4322+ <pre class="signature">declare function functx:is-absolute-uri<span class="functName"></span> (
4323+<span class="funcParam"> $uri</span> as xs:string?
4324+ ) as xs:boolean</pre>
4325+ <p> Whether a URI is absolute
4326+</p>
4327+ <div class="subsubsection">Parameters:</div>
4328+ <ul>
4329+ <li>$uri the URI to test</li>
4330+ </ul>
4331+ <div class="subsubsection">Version:</div>
4332+ <p class="annotationText">1.0</p>
4333+ <div class="subsubsection">Author:</div>
4334+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4335+ <div class="subsubsection">See:</div>
4336+ <ul>
4337+ <li>
4338+ <a href="http://www.xqueryfunctions.com/xq/functx_is-absolute-uri.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_is-absolute-uri.html</a>
4339+ </li>
4340+ </ul>
4341+ <hr />
4342+ <div class="subsection" id="is-ancestor-2">
4343+ <span class="no_underline"></span>is-ancestor<a href="#function_summary">
4344+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4345+ </a>
4346+ </div>
4347+ <pre class="signature">declare function functx:is-ancestor<span class="functName"></span> (
4348+<span class="funcParam"> $node1</span> as node(),
4349+<span class="funcParam"> $node2</span> as node()
4350+ ) as xs:boolean</pre>
4351+ <p> Whether an XML node is an ancestor of another node
4352+</p>
4353+ <div class="subsubsection">Parameters:</div>
4354+ <ul>
4355+ <li>$node1 the first node</li>
4356+ <li>$node2 the second node</li>
4357+ </ul>
4358+ <div class="subsubsection">Version:</div>
4359+ <p class="annotationText">1.0</p>
4360+ <div class="subsubsection">Author:</div>
4361+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4362+ <div class="subsubsection">See:</div>
4363+ <ul>
4364+ <li>
4365+ <a href="http://www.xqueryfunctions.com/xq/functx_is-ancestor.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_is-ancestor.html</a>
4366+ </li>
4367+ </ul>
4368+ <hr />
4369+ <div class="subsection" id="is-descendant-2">
4370+ <span class="no_underline"></span>is-descendant<a href="#function_summary">
4371+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4372+ </a>
4373+ </div>
4374+ <pre class="signature">declare function functx:is-descendant<span class="functName"></span> (
4375+<span class="funcParam"> $node1</span> as node(),
4376+<span class="funcParam"> $node2</span> as node()
4377+ ) as xs:boolean</pre>
4378+ <p> Whether an XML node is a descendant of another node
4379+</p>
4380+ <div class="subsubsection">Parameters:</div>
4381+ <ul>
4382+ <li>$node1 the first node</li>
4383+ <li>$node2 the second node</li>
4384+ </ul>
4385+ <div class="subsubsection">Version:</div>
4386+ <p class="annotationText">1.0</p>
4387+ <div class="subsubsection">Author:</div>
4388+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4389+ <div class="subsubsection">See:</div>
4390+ <ul>
4391+ <li>
4392+ <a href="http://www.xqueryfunctions.com/xq/functx_is-descendant.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_is-descendant.html</a>
4393+ </li>
4394+ </ul>
4395+ <hr />
4396+ <div class="subsection" id="is-leap-year-1">
4397+ <span class="no_underline"></span>is-leap-year<a href="#function_summary">
4398+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4399+ </a>
4400+ </div>
4401+ <pre class="signature">declare function functx:is-leap-year<span class="functName"></span> (
4402+<span class="funcParam"> $date</span> as xs:anyAtomicType?
4403+ ) as xs:boolean</pre>
4404+ <p> Whether a date falls in a leap year
4405+</p>
4406+ <div class="subsubsection">Parameters:</div>
4407+ <ul>
4408+ <li>$date the date or year</li>
4409+ </ul>
4410+ <div class="subsubsection">Version:</div>
4411+ <p class="annotationText">1.0</p>
4412+ <div class="subsubsection">Author:</div>
4413+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4414+ <div class="subsubsection">See:</div>
4415+ <ul>
4416+ <li>
4417+ <a href="http://www.xqueryfunctions.com/xq/functx_is-leap-year.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_is-leap-year.html</a>
4418+ </li>
4419+ </ul>
4420+ <hr />
4421+ <div class="subsection" id="is-node-among-descendants-2">
4422+ <span class="no_underline"></span>is-node-among-descendants<a href="#function_summary">
4423+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4424+ </a>
4425+ </div>
4426+ <pre class="signature">declare function functx:is-node-among-descendants<span class="functName"></span> (
4427+<span class="funcParam"> $node</span> as node()?,
4428+<span class="funcParam"> $seq</span> as node()*
4429+ ) as xs:boolean</pre>
4430+ <p> Whether an XML node is among the descendants of a sequence, based on node identity
4431+</p>
4432+ <div class="subsubsection">Parameters:</div>
4433+ <ul>
4434+ <li>$node the node to test</li>
4435+ <li>$seq the sequence of nodes to search</li>
4436+ </ul>
4437+ <div class="subsubsection">Version:</div>
4438+ <p class="annotationText">1.0</p>
4439+ <div class="subsubsection">Author:</div>
4440+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4441+ <div class="subsubsection">See:</div>
4442+ <ul>
4443+ <li>
4444+ <a href="http://www.xqueryfunctions.com/xq/functx_is-node-among-descendants.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_is-node-among-descendants.html</a>
4445+ </li>
4446+ </ul>
4447+ <hr />
4448+ <div class="subsection" id="is-node-among-descendants-deep-equal-2">
4449+ <span class="no_underline"></span>is-node-among-descendants-deep-equal<a href="#function_summary">
4450+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4451+ </a>
4452+ </div>
4453+ <pre class="signature">declare function functx:is-node-among-descendants-deep-equal<span class="functName"></span> (
4454+<span class="funcParam"> $node</span> as node()?,
4455+<span class="funcParam"> $seq</span> as node()*
4456+ ) as xs:boolean</pre>
4457+ <p> Whether an XML node is among the descendants of a sequence, based on contents and attributes
4458+</p>
4459+ <div class="subsubsection">Parameters:</div>
4460+ <ul>
4461+ <li>$node the node to test</li>
4462+ <li>$seq the sequence of nodes to search</li>
4463+ </ul>
4464+ <div class="subsubsection">Version:</div>
4465+ <p class="annotationText">1.0</p>
4466+ <div class="subsubsection">Author:</div>
4467+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4468+ <div class="subsubsection">See:</div>
4469+ <ul>
4470+ <li>
4471+ <a href="http://www.xqueryfunctions.com/xq/functx_is-node-among-descendants-deep-equal.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_is-node-among-descendants-deep-equal.html</a>
4472+ </li>
4473+ </ul>
4474+ <hr />
4475+ <div class="subsection" id="is-node-in-sequence-2">
4476+ <span class="no_underline"></span>is-node-in-sequence<a href="#function_summary">
4477+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4478+ </a>
4479+ </div>
4480+ <pre class="signature">declare function functx:is-node-in-sequence<span class="functName"></span> (
4481+<span class="funcParam"> $node</span> as node()?,
4482+<span class="funcParam"> $seq</span> as node()*
4483+ ) as xs:boolean</pre>
4484+ <p> Whether an XML node is in a sequence, based on node identity
4485+</p>
4486+ <div class="subsubsection">Parameters:</div>
4487+ <ul>
4488+ <li>$node the node to test</li>
4489+ <li>$seq the sequence of nodes to search</li>
4490+ </ul>
4491+ <div class="subsubsection">Version:</div>
4492+ <p class="annotationText">1.0</p>
4493+ <div class="subsubsection">Author:</div>
4494+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4495+ <div class="subsubsection">See:</div>
4496+ <ul>
4497+ <li>
4498+ <a href="http://www.xqueryfunctions.com/xq/functx_is-node-in-sequence.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_is-node-in-sequence.html</a>
4499+ </li>
4500+ </ul>
4501+ <hr />
4502+ <div class="subsection" id="is-node-in-sequence-deep-equal-2">
4503+ <span class="no_underline"></span>is-node-in-sequence-deep-equal<a href="#function_summary">
4504+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4505+ </a>
4506+ </div>
4507+ <pre class="signature">declare function functx:is-node-in-sequence-deep-equal<span class="functName"></span> (
4508+<span class="funcParam"> $node</span> as node()?,
4509+<span class="funcParam"> $seq</span> as node()*
4510+ ) as xs:boolean</pre>
4511+ <p> Whether an XML node is in a sequence, based on contents and attributes
4512+</p>
4513+ <div class="subsubsection">Parameters:</div>
4514+ <ul>
4515+ <li>$node the node to test</li>
4516+ <li>$seq the sequence of nodes to search</li>
4517+ </ul>
4518+ <div class="subsubsection">Version:</div>
4519+ <p class="annotationText">1.0</p>
4520+ <div class="subsubsection">Author:</div>
4521+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4522+ <div class="subsubsection">See:</div>
4523+ <ul>
4524+ <li>
4525+ <a href="http://www.xqueryfunctions.com/xq/functx_is-node-in-sequence-deep-equal.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_is-node-in-sequence-deep-equal.html</a>
4526+ </li>
4527+ </ul>
4528+ <hr />
4529+ <div class="subsection" id="is-value-in-sequence-2">
4530+ <span class="no_underline"></span>is-value-in-sequence<a href="#function_summary">
4531+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4532+ </a>
4533+ </div>
4534+ <pre class="signature">declare function functx:is-value-in-sequence<span class="functName"></span> (
4535+<span class="funcParam"> $value</span> as xs:anyAtomicType?,
4536+<span class="funcParam"> $seq</span> as xs:anyAtomicType*
4537+ ) as xs:boolean</pre>
4538+ <p> Whether an atomic value appears in a sequence
4539+</p>
4540+ <div class="subsubsection">Parameters:</div>
4541+ <ul>
4542+ <li>$value the atomic value to test</li>
4543+ <li>$seq the sequence of values to search</li>
4544+ </ul>
4545+ <div class="subsubsection">Version:</div>
4546+ <p class="annotationText">1.0</p>
4547+ <div class="subsubsection">Author:</div>
4548+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4549+ <div class="subsubsection">See:</div>
4550+ <ul>
4551+ <li>
4552+ <a href="http://www.xqueryfunctions.com/xq/functx_is-value-in-sequence.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_is-value-in-sequence.html</a>
4553+ </li>
4554+ </ul>
4555+ <hr />
4556+ <div class="subsection" id="last-day-of-month-1">
4557+ <span class="no_underline"></span>last-day-of-month<a href="#function_summary">
4558+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4559+ </a>
4560+ </div>
4561+ <pre class="signature">declare function functx:last-day-of-month<span class="functName"></span> (
4562+<span class="funcParam"> $date</span> as xs:anyAtomicType?
4563+ ) as xs:date?</pre>
4564+ <p> The last day of the month of a date
4565+</p>
4566+ <div class="subsubsection">Parameters:</div>
4567+ <ul>
4568+ <li>$date the date</li>
4569+ </ul>
4570+ <div class="subsubsection">Version:</div>
4571+ <p class="annotationText">1.0</p>
4572+ <div class="subsubsection">Author:</div>
4573+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4574+ <div class="subsubsection">See:</div>
4575+ <ul>
4576+ <li>
4577+ <a href="http://www.xqueryfunctions.com/xq/functx_last-day-of-month.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_last-day-of-month.html</a>
4578+ </li>
4579+ </ul>
4580+ <hr />
4581+ <div class="subsection" id="last-day-of-year-1">
4582+ <span class="no_underline"></span>last-day-of-year<a href="#function_summary">
4583+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4584+ </a>
4585+ </div>
4586+ <pre class="signature">declare function functx:last-day-of-year<span class="functName"></span> (
4587+<span class="funcParam"> $date</span> as xs:anyAtomicType?
4588+ ) as xs:date?</pre>
4589+ <p> The last day of the month of a date
4590+</p>
4591+ <div class="subsubsection">Parameters:</div>
4592+ <ul>
4593+ <li>$date the date</li>
4594+ </ul>
4595+ <div class="subsubsection">Version:</div>
4596+ <p class="annotationText">1.0</p>
4597+ <div class="subsubsection">Author:</div>
4598+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4599+ <div class="subsubsection">See:</div>
4600+ <ul>
4601+ <li>
4602+ <a href="http://www.xqueryfunctions.com/xq/functx_last-day-of-year.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_last-day-of-year.html</a>
4603+ </li>
4604+ </ul>
4605+ <hr />
4606+ <div class="subsection" id="last-node-1">
4607+ <span class="no_underline"></span>last-node<a href="#function_summary">
4608+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4609+ </a>
4610+ </div>
4611+ <pre class="signature">declare function functx:last-node<span class="functName"></span> (
4612+<span class="funcParam"> $nodes</span> as node()*
4613+ ) as node()?</pre>
4614+ <p> The XML node in a sequence that is last in document order
4615+</p>
4616+ <div class="subsubsection">Parameters:</div>
4617+ <ul>
4618+ <li>$nodes the sequence of nodes</li>
4619+ </ul>
4620+ <div class="subsubsection">Version:</div>
4621+ <p class="annotationText">1.0</p>
4622+ <div class="subsubsection">Author:</div>
4623+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4624+ <div class="subsubsection">See:</div>
4625+ <ul>
4626+ <li>
4627+ <a href="http://www.xqueryfunctions.com/xq/functx_last-node.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_last-node.html</a>
4628+ </li>
4629+ </ul>
4630+ <hr />
4631+ <div class="subsection" id="leaf-elements-1">
4632+ <span class="no_underline"></span>leaf-elements<a href="#function_summary">
4633+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4634+ </a>
4635+ </div>
4636+ <pre class="signature">declare function functx:leaf-elements<span class="functName"></span> (
4637+<span class="funcParam"> $root</span> as node()?
4638+ ) as element(*)*</pre>
4639+ <p> All XML elements that don't have any child elements
4640+</p>
4641+ <div class="subsubsection">Parameters:</div>
4642+ <ul>
4643+ <li>$root the root</li>
4644+ </ul>
4645+ <div class="subsubsection">Version:</div>
4646+ <p class="annotationText">1.0</p>
4647+ <div class="subsubsection">Author:</div>
4648+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4649+ <div class="subsubsection">See:</div>
4650+ <ul>
4651+ <li>
4652+ <a href="http://www.xqueryfunctions.com/xq/functx_leaf-elements.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_leaf-elements.html</a>
4653+ </li>
4654+ </ul>
4655+ <hr />
4656+ <div class="subsection" id="left-trim-1">
4657+ <span class="no_underline"></span>left-trim<a href="#function_summary">
4658+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4659+ </a>
4660+ </div>
4661+ <pre class="signature">declare function functx:left-trim<span class="functName"></span> (
4662+<span class="funcParam"> $arg</span> as xs:string?
4663+ ) as xs:string</pre>
4664+ <p> Trims leading whitespace
4665+</p>
4666+ <div class="subsubsection">Parameters:</div>
4667+ <ul>
4668+ <li>$arg the string to trim</li>
4669+ </ul>
4670+ <div class="subsubsection">Version:</div>
4671+ <p class="annotationText">1.0</p>
4672+ <div class="subsubsection">Author:</div>
4673+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4674+ <div class="subsubsection">See:</div>
4675+ <ul>
4676+ <li>
4677+ <a href="http://www.xqueryfunctions.com/xq/functx_left-trim.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_left-trim.html</a>
4678+ </li>
4679+ </ul>
4680+ <hr />
4681+ <div class="subsection" id="line-count-1">
4682+ <span class="no_underline"></span>line-count<a href="#function_summary">
4683+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4684+ </a>
4685+ </div>
4686+ <pre class="signature">declare function functx:line-count<span class="functName"></span> (
4687+<span class="funcParam"> $arg</span> as xs:string?
4688+ ) as xs:integer</pre>
4689+ <p> The number of lines
4690+</p>
4691+ <div class="subsubsection">Parameters:</div>
4692+ <ul>
4693+ <li>$arg the string to test</li>
4694+ </ul>
4695+ <div class="subsubsection">Version:</div>
4696+ <p class="annotationText">1.0</p>
4697+ <div class="subsubsection">Author:</div>
4698+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4699+ <div class="subsubsection">See:</div>
4700+ <ul>
4701+ <li>
4702+ <a href="http://www.xqueryfunctions.com/xq/functx_line-count.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_line-count.html</a>
4703+ </li>
4704+ </ul>
4705+ <hr />
4706+ <div class="subsection" id="lines-1">
4707+ <span class="no_underline"></span>lines<a href="#function_summary">
4708+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4709+ </a>
4710+ </div>
4711+ <pre class="signature">declare function functx:lines<span class="functName"></span> (
4712+<span class="funcParam"> $arg</span> as xs:string?
4713+ ) as xs:string*</pre>
4714+ <p> Split a string into separate lines
4715+</p>
4716+ <div class="subsubsection">Parameters:</div>
4717+ <ul>
4718+ <li>$arg the string to split</li>
4719+ </ul>
4720+ <div class="subsubsection">Version:</div>
4721+ <p class="annotationText">1.0</p>
4722+ <div class="subsubsection">Author:</div>
4723+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4724+ <div class="subsubsection">See:</div>
4725+ <ul>
4726+ <li>
4727+ <a href="http://www.xqueryfunctions.com/xq/functx_lines.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_lines.html</a>
4728+ </li>
4729+ </ul>
4730+ <hr />
4731+ <div class="subsection" id="max-depth-1">
4732+ <span class="no_underline"></span>max-depth<a href="#function_summary">
4733+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4734+ </a>
4735+ </div>
4736+ <pre class="signature">declare function functx:max-depth<span class="functName"></span> (
4737+<span class="funcParam"> $root</span> as node()?
4738+ ) as xs:integer?</pre>
4739+ <p> The maximum depth of elements in an XML tree
4740+</p>
4741+ <div class="subsubsection">Parameters:</div>
4742+ <ul>
4743+ <li>$root the root to start from</li>
4744+ </ul>
4745+ <div class="subsubsection">Version:</div>
4746+ <p class="annotationText">1.0</p>
4747+ <div class="subsubsection">Author:</div>
4748+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4749+ <div class="subsubsection">See:</div>
4750+ <ul>
4751+ <li>
4752+ <a href="http://www.xqueryfunctions.com/xq/functx_max-depth.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_max-depth.html</a>
4753+ </li>
4754+ </ul>
4755+ <hr />
4756+ <div class="subsection" id="max-determine-type-1">
4757+ <span class="no_underline"></span>max-determine-type<a href="#function_summary">
4758+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4759+ </a>
4760+ </div>
4761+ <pre class="signature">declare function functx:max-determine-type<span class="functName"></span> (
4762+<span class="funcParam"> $seq</span> as xs:anyAtomicType*
4763+ ) as xs:anyAtomicType?</pre>
4764+ <p> The maximum value in a sequence, figuring out its type (numeric or string)
4765+</p>
4766+ <div class="subsubsection">Parameters:</div>
4767+ <ul>
4768+ <li>$seq the sequence of values to test</li>
4769+ </ul>
4770+ <div class="subsubsection">Version:</div>
4771+ <p class="annotationText">1.0</p>
4772+ <div class="subsubsection">Author:</div>
4773+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4774+ <div class="subsubsection">See:</div>
4775+ <ul>
4776+ <li>
4777+ <a href="http://www.xqueryfunctions.com/xq/functx_max-determine-type.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_max-determine-type.html</a>
4778+ </li>
4779+ </ul>
4780+ <hr />
4781+ <div class="subsection" id="max-line-length-1">
4782+ <span class="no_underline"></span>max-line-length<a href="#function_summary">
4783+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4784+ </a>
4785+ </div>
4786+ <pre class="signature">declare function functx:max-line-length<span class="functName"></span> (
4787+<span class="funcParam"> $arg</span> as xs:string?
4788+ ) as xs:integer</pre>
4789+ <p> The maximum line length
4790+</p>
4791+ <div class="subsubsection">Parameters:</div>
4792+ <ul>
4793+ <li>$arg the string to test</li>
4794+ </ul>
4795+ <div class="subsubsection">Version:</div>
4796+ <p class="annotationText">1.0</p>
4797+ <div class="subsubsection">Author:</div>
4798+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4799+ <div class="subsubsection">See:</div>
4800+ <ul>
4801+ <li>
4802+ <a href="http://www.xqueryfunctions.com/xq/functx_max-line-length.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_max-line-length.html</a>
4803+ </li>
4804+ </ul>
4805+ <hr />
4806+ <div class="subsection" id="max-node-1">
4807+ <span class="no_underline"></span>max-node<a href="#function_summary">
4808+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4809+ </a>
4810+ </div>
4811+ <pre class="signature">declare function functx:max-node<span class="functName"></span> (
4812+<span class="funcParam"> $nodes</span> as node()*
4813+ ) as node()*</pre>
4814+ <p> The XML node whose typed value is the maximum
4815+</p>
4816+ <div class="subsubsection">Parameters:</div>
4817+ <ul>
4818+ <li>$nodes the sequence of nodes to test</li>
4819+ </ul>
4820+ <div class="subsubsection">Version:</div>
4821+ <p class="annotationText">1.0</p>
4822+ <div class="subsubsection">Author:</div>
4823+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4824+ <div class="subsubsection">See:</div>
4825+ <ul>
4826+ <li>
4827+ <a href="http://www.xqueryfunctions.com/xq/functx_max-node.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_max-node.html</a>
4828+ </li>
4829+ </ul>
4830+ <hr />
4831+ <div class="subsection" id="max-string-1">
4832+ <span class="no_underline"></span>max-string<a href="#function_summary">
4833+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4834+ </a>
4835+ </div>
4836+ <pre class="signature">declare function functx:max-string<span class="functName"></span> (
4837+<span class="funcParam"> $strings</span> as xs:anyAtomicType*
4838+ ) as xs:string?</pre>
4839+ <p> The maximum of a sequence of values, treating them like strings
4840+</p>
4841+ <div class="subsubsection">Parameters:</div>
4842+ <ul>
4843+ <li>$strings the sequence of values</li>
4844+ </ul>
4845+ <div class="subsubsection">Version:</div>
4846+ <p class="annotationText">1.0</p>
4847+ <div class="subsubsection">Author:</div>
4848+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4849+ <div class="subsubsection">See:</div>
4850+ <ul>
4851+ <li>
4852+ <a href="http://www.xqueryfunctions.com/xq/functx_max-string.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_max-string.html</a>
4853+ </li>
4854+ </ul>
4855+ <hr />
4856+ <div class="subsection" id="min-determine-type-1">
4857+ <span class="no_underline"></span>min-determine-type<a href="#function_summary">
4858+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4859+ </a>
4860+ </div>
4861+ <pre class="signature">declare function functx:min-determine-type<span class="functName"></span> (
4862+<span class="funcParam"> $seq</span> as xs:anyAtomicType*
4863+ ) as xs:anyAtomicType?</pre>
4864+ <p> The minimum value in a sequence, figuring out its type (numeric or string)
4865+</p>
4866+ <div class="subsubsection">Parameters:</div>
4867+ <ul>
4868+ <li>$seq the sequence of values to test</li>
4869+ </ul>
4870+ <div class="subsubsection">Version:</div>
4871+ <p class="annotationText">1.0</p>
4872+ <div class="subsubsection">Author:</div>
4873+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4874+ <div class="subsubsection">See:</div>
4875+ <ul>
4876+ <li>
4877+ <a href="http://www.xqueryfunctions.com/xq/functx_min-determine-type.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_min-determine-type.html</a>
4878+ </li>
4879+ </ul>
4880+ <hr />
4881+ <div class="subsection" id="min-node-1">
4882+ <span class="no_underline"></span>min-node<a href="#function_summary">
4883+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4884+ </a>
4885+ </div>
4886+ <pre class="signature">declare function functx:min-node<span class="functName"></span> (
4887+<span class="funcParam"> $nodes</span> as node()*
4888+ ) as node()*</pre>
4889+ <p> The XML node whose typed value is the minimum
4890+</p>
4891+ <div class="subsubsection">Parameters:</div>
4892+ <ul>
4893+ <li>$nodes the sequence of nodes to test</li>
4894+ </ul>
4895+ <div class="subsubsection">Version:</div>
4896+ <p class="annotationText">1.0</p>
4897+ <div class="subsubsection">Author:</div>
4898+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4899+ <div class="subsubsection">See:</div>
4900+ <ul>
4901+ <li>
4902+ <a href="http://www.xqueryfunctions.com/xq/functx_min-node.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_min-node.html</a>
4903+ </li>
4904+ </ul>
4905+ <hr />
4906+ <div class="subsection" id="min-non-empty-string-1">
4907+ <span class="no_underline"></span>min-non-empty-string<a href="#function_summary">
4908+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4909+ </a>
4910+ </div>
4911+ <pre class="signature">declare function functx:min-non-empty-string<span class="functName"></span> (
4912+<span class="funcParam"> $strings</span> as xs:string*
4913+ ) as xs:string?</pre>
4914+ <p> The minimum of a sequence of strings, ignoring "empty" values
4915+</p>
4916+ <div class="subsubsection">Parameters:</div>
4917+ <ul>
4918+ <li>$strings the sequence of strings to search</li>
4919+ </ul>
4920+ <div class="subsubsection">Version:</div>
4921+ <p class="annotationText">1.0</p>
4922+ <div class="subsubsection">Author:</div>
4923+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4924+ <div class="subsubsection">See:</div>
4925+ <ul>
4926+ <li>
4927+ <a href="http://www.xqueryfunctions.com/xq/functx_min-non-empty-string.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_min-non-empty-string.html</a>
4928+ </li>
4929+ </ul>
4930+ <hr />
4931+ <div class="subsection" id="min-string-1">
4932+ <span class="no_underline"></span>min-string<a href="#function_summary">
4933+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4934+ </a>
4935+ </div>
4936+ <pre class="signature">declare function functx:min-string<span class="functName"></span> (
4937+<span class="funcParam"> $strings</span> as xs:anyAtomicType*
4938+ ) as xs:string?</pre>
4939+ <p> The minimum of a sequence of values, treating them like strings
4940+</p>
4941+ <div class="subsubsection">Parameters:</div>
4942+ <ul>
4943+ <li>$strings the sequence of strings</li>
4944+ </ul>
4945+ <div class="subsubsection">Version:</div>
4946+ <p class="annotationText">1.0</p>
4947+ <div class="subsubsection">Author:</div>
4948+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4949+ <div class="subsubsection">See:</div>
4950+ <ul>
4951+ <li>
4952+ <a href="http://www.xqueryfunctions.com/xq/functx_min-string.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_min-string.html</a>
4953+ </li>
4954+ </ul>
4955+ <hr />
4956+ <div class="subsection" id="mmddyyyy-to-date-1">
4957+ <span class="no_underline"></span>mmddyyyy-to-date<a href="#function_summary">
4958+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4959+ </a>
4960+ </div>
4961+ <pre class="signature">declare function functx:mmddyyyy-to-date<span class="functName"></span> (
4962+<span class="funcParam"> $dateString</span> as xs:string?
4963+ ) as xs:date?</pre>
4964+ <p> Converts a string with format MMDDYYYY (with any delimiters) to a date
4965+</p>
4966+ <div class="subsubsection">Parameters:</div>
4967+ <ul>
4968+ <li>$dateString the MMDDYYYY string</li>
4969+ </ul>
4970+ <div class="subsubsection">Version:</div>
4971+ <p class="annotationText">1.0</p>
4972+ <div class="subsubsection">Author:</div>
4973+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4974+ <div class="subsubsection">See:</div>
4975+ <ul>
4976+ <li>
4977+ <a href="http://www.xqueryfunctions.com/xq/functx_mmddyyyy-to-date.html" target="_blank">http://www.xqueryfunctions.com/xq/functx_mmddyyyy-to-date.html</a>
4978+ </li>
4979+ </ul>
4980+ <hr />
4981+ <div class="subsection" id="month-abbrev-en-1">
4982+ <span class="no_underline"></span>month-abbrev-en<a href="#function_summary">
4983+ <img class="floatright" src="images/up.gif" alt="back to 'Function Summary'" title="back to 'Function Summary'" />
4984+ </a>
4985+ </div>
4986+ <pre class="signature">declare function functx:month-abbrev-en<span class="functName"></span> (
4987+<span class="funcParam"> $date</span> as xs:anyAtomicType?
4988+ ) as xs:string?</pre>
4989+ <p> The month of a date as an abbreviated word (Jan, Feb, etc.)
4990+</p>
4991+ <div class="subsubsection">Parameters:</div>
4992+ <ul>
4993+ <li>$date the date</li>
4994+ </ul>
4995+ <div class="subsubsection">Version:</div>
4996+ <p class="annotationText">1.0</p>
4997+ <div class="subsubsection">Author:</div>
4998+ <p class="annotationText">Priscilla Walmsley, Datypic</p>
4999+ <div class="subsubsection">See:</div>
5000+ <ul>
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches