Changes

Jump to navigation Jump to search
2,313 bytes added ,  06:54, 29 November 2019
no edit summary
All functions and errors in this module and errors are assigned to the <code><nowiki>http://basex.org/modules/util</nowiki></code> namespace, which is statically bound to the {{Code|util}} prefix.<br/>
=FunctionsConditions{{Mark|Introduced with 9.1:}}
==util:if==
|-
| width='120' | '''Signatures'''
|{{Func|util:if|$codition condition as item()*, $then as item()*|item()*}}<br/>{{Func|util:if|$codition condition as item()*, $then as item()*, $else as item()*|item()*}}<br/>
|-
| '''Summary'''
|Alternative writing for the if/then/else expression. :* If the ''effective boolean value'' of {{Code|$condition yields false}} is true, the {{Code|$then}} branch will be evaluated.* Otherwise, and if no {{Code|$else}} branch will be evaluated. If no third argument is supplied, an empty sequence is will be returned.
|-
| '''Examples'''
|}
==util:or== {| width='100%'|-| width='120' | '''Signatures'''|{{Func|util:or|$items as item()*, $default as item()*|item()*}}|-| '''Summary'''|Returns {{Code|$items}} if it is a non-empty sequence. Otherwise, returns {{Code|$default}}. The function is equivalent to one of the following expressions:* <code>if(exists($items)) then $items else $default</code>* <code>$items ?: $default</code> (see [[XQuery Extensions#Elvis Operator|Elvis Operator]] for more details)|-| '''Examples'''|* <code>util:or(123, 456)</code> returns {{Code|123}}.* <code>util:or(1[. = 0], -1)</code> returns {{Code|-at1}}.|} =Positional Access= ==util:item==
{| width='100%'
|-
| width='120' | '''Signatures'''
|{{Func|util:item-at|$sequence as item()*, $position as xs:double|item()?}}<br/>
|-
| '''Summary'''
| '''Examples'''
|
* <code>util:item-at(reverse(1 to 5), 1)</code> returns <code>5</code>.* <code>util:item-at(('a','b'), 0)</code> returns an empty sequence.
|}
==util:item-range==
{| width='100%'
|-
| width='120' | '''Signatures'''
|{{Func|util:item-range|$sequence as item()*, $first as xs:double, $last as xs:double|item()*}}<br/>
|-
| '''Summary'''
| '''Examples'''
|
* <code>util:item-range(//item, 11, 20)</code> returns all path results from (if available) position 11 to 20.
|}
==util:last-from==
{| width='100%'
|-
| width='120' | '''Signatures'''
|{{Func|util:last-from|$sequence as item()*|item()?}}<br/>
|-
| '''Summary'''
| '''Examples'''
|
* <code>util:last-from(reverse(1 to 100))</code> returns <code>1</code>.|} ==util:init== {| width='100%'|-| width='120' | '''Signatures'''|{{Func|util:init|$sequence as item()*|item()*}}<br/>|-| '''Summary'''|Returns all items of a {{Code|$sequence}} except for the last one. Equivalent to <code>$sequence[position() < last()]</code>.|-| '''Examples'''|* <code>util:init(1 to 4)</code> returns <code>1 2 3</code>.
|}
 
=Helper Functions=
==util:replicate==
|
* <code>util:replicate('A', 3)</code> returns <code>A A A</code>.
|}
 
==util:chars==
 
{| width='100%'
|-
| width='120' | '''Signatures'''
|{{Func|util:chars|$string as xs:string|xs:string*}}<br/>
|-
| '''Summary'''
|Returns all characters of a {{Code|$string}} as a sequence. Equivalent to <code>string-to-codepoints($string) ! codepoints-to-string(.)</code>.
|-
| '''Examples'''
|
* <code>util:chars('AB')</code> returns the two strings <code>A</code> and <code>B</code>.
|}
 
==util:ddo==
 
{{Mark|Introduced with Version 9.3:}}
 
{| width='100%'
|-
| width='120' | '''Signatures'''
|{{Func|util:ddo|$nodes as node()*|node()*}}<br/>
|-
| '''Summary'''
|Returns nodes in ''distinct document order'': duplicate nodes will be removed, and the remaining nodes will be returned in [https://www.w3.org/TR/xquery-31/#dt-document-order document order]. All results of path expression are in distinct document order, so the function is equivalent to the expression <code>$nodes/self::node()</code>.
|}
=Changelog=
 
;Version 9.3
* Added: [[#util:ddo|util:ddo]]
 
;Version 9.2
* Added: [[#util:chars|util:chars]], [[#util:init|util:init]]
* Updates: [[#util:item|util:item]], [[#util:last|util:last]], [[#util:range|util:range]] renamed (before: {{Code|util:item-at}}, {{Code|util:item-range}}, {{Code|util:last-from}})
;Version 9.1
* Added: [[#util:if|util:if]], [[#util:or|util:or]]
;Version 9.0
Bureaucrats, editor, reviewer, Administrators
13,550

edits

Navigation menu