Difference between revisions of "Array Module"

From BaseX Documentation
Jump to navigation Jump to search
Line 36: Line 36:
  
 
==array:subarray==
 
==array:subarray==
 +
 
{| width='100%'
 
{| width='100%'
 
| width='120' | '''Signatures'''
 
| width='120' | '''Signatures'''
Line 41: Line 42:
 
|-
 
|-
 
| '''Summary'''
 
| '''Summary'''
| Gets an array containing all members from a supplied array starting at a supplied position, up to a specified length.<br/>The two-argument version of the function returns the same result as the three-argument version when called with $length equal to the value of {{Code|array:size($array) - $start + 1}}.
+
| Gets an array containing all members from a supplied array starting at a supplied position, up to a specified length.<br/>The two-argument version of the function returns the same result as the three-argument version when called with {{Code|$length}} equal to the value of {{Code|array:size($array) - $start + 1}}.
 
|-
 
|-
 
| '''Errors'''
 
| '''Errors'''
|{{Error|FOAY0001|#Errors}} if {{Code|$start}} is less than one, or if {{Code|$start + $length}} is greater than {{Code|array:size($array) + 1}}.<br/>{{Error|FOAY0002|#Errors}} if {{Code|$length}} is less than zero.
+
|{{Error|FOAY0001|#Errors}}: {{Code|$start}} is less than one, or if {{Code|$start + $length}} is greater than {{Code|array:size($array) + 1}}.<br/>{{Error|FOAY0002|#Errors}}: {{Code|$length}} is less than zero.
 
|-
 
|-
 
| '''Examples'''
 
| '''Examples'''
 
|
 
|
 
* <code>array:append(['member1'], 'member2')</code> returns the array {{Code|["member1", "member2"]}}.
 
* <code>array:append(['member1'], 'member2')</code> returns the array {{Code|["member1", "member2"]}}.
 +
|}
 +
 +
==array:remove==
 +
 +
{| width='100%'
 +
| width='120' | '''Signatures'''
 +
|{{Func|array:remove|$array as array(*), $index as xs:integer|array(*)}}
 +
|-
 +
| '''Summary'''
 +
| Constructs a new array without the member at the specified {{Code|$index}}.
 +
|-
 +
| '''Errors'''
 +
|{{Error|FOAY0001|#Errors}}: {{Code|$index}} is not in the range {{Code|1}} to {{Code|array:size($array)}} inclusive.
 +
|-
 +
| '''Examples'''
 +
|
 +
* <code>array:append(["a"], 1)</code> returns the array {{Code|[]}}.
 +
|}
 +
 +
==array:insert-before==
 +
 +
{| width='100%'
 +
| width='120' | '''Signatures'''
 +
|{{Func|array:insert-before|$array as array(*), $index as xs:integer, $insert as item()*|array(*)}}
 +
|-
 +
| '''Summary'''
 +
| Constructs a new array by adding one new member at a specified position. Setting {{Code|$index}} to the value {{Code|array:size($array) + 1}} delivers the same result as {{Code|array:append($array, $insert)}}.
 +
|-
 +
| '''Errors'''
 +
|{{Error|FOAY0001|#Errors}}: {{Code|$index}} is not in the range {{Code|1}} to {{Code|array:size($array) + 1}} inclusive.
 +
|-
 +
| '''Examples'''
 +
|
 +
* <code>array:insert-before(["a"], 1, "b")</code> returns the array {{Code|["b", "a"]}}.
 +
|}
 +
 +
==array:head==
 +
 +
{| width='100%'
 +
| width='120' | '''Signatures'''
 +
|{{Func|array:head|$array as array(*)|item()*}}
 +
|-
 +
| '''Summary'''
 +
| Returns the first member of {{Code|$array}}. This function is equivalent to the expression {{Code|$array(1)}}.
 +
|-
 +
| '''Errors'''
 +
|{{Error|FOAY0001|#Errors}}: The array is empty.
 +
|-
 +
| '''Examples'''
 +
|
 +
* <code>array:head(["a", "b"])</code> returns {{Code|"a"}}.
 +
* <code>array:head([["a", "b"], ["c", "d"]])</code> returns the array {{Code|["a", "b"]}}.
 
|}
 
|}
  

Revision as of 22:08, 9 August 2014

This XQuery Module contains functions for manipulating arrays, which will officially be introduced with XQuery 3.1.
Please note that the functions are subject to change until the specification has reached its final stage.

Conventions

All functions in this module are assigned to the http://www.w3.org/2005/xpath-functions/array namespace, which is statically bound to the array prefix.

Functions

array:size

Signatures array:size($input as array(*)) as xs:integer
Summary Returns the number of members in the supplied array. Note that because an array is an item, the fn:count function when applied to an array always returns 1.
Examples
  • array:size([1 to 10]) returns 10.
  • array:size(array { 1 to 10 }) returns 10.

array:append

Signatures array:append($array as array(*), $insert as item()*) as array(*)
Summary Adds one member at the end of the array. The result is an array whose size is array:size($array) + 1, in which all members in positions 1 to array:size($array) are the same as the members in the corresponding position of $array, and the member in position array:size($array) + 1 is $insert.
Examples
  • array:append([], 'member1') returns the array ["member1"].

array:subarray

Signatures array:subarray($array as array(*), $start as xs:integer) as array(*)
array:subarray($array as array(*), $start as xs:integer, $length as xs:integer) as array(*)
Summary Gets an array containing all members from a supplied array starting at a supplied position, up to a specified length.
The two-argument version of the function returns the same result as the three-argument version when called with $length equal to the value of array:size($array) - $start + 1.
Errors FOAY0001:: $start is less than one, or if $start + $length is greater than array:size($array) + 1.
FOAY0002:: $length is less than zero.
Examples
  • array:append(['member1'], 'member2') returns the array ["member1", "member2"].

array:remove

Signatures array:remove($array as array(*), $index as xs:integer) as array(*)
Summary Constructs a new array without the member at the specified $index.
Errors FOAY0001:: $index is not in the range 1 to array:size($array) inclusive.
Examples
  • array:append(["a"], 1) returns the array [].

array:insert-before

Signatures array:insert-before($array as array(*), $index as xs:integer, $insert as item()*) as array(*)
Summary Constructs a new array by adding one new member at a specified position. Setting $index to the value array:size($array) + 1 delivers the same result as array:append($array, $insert).
Errors FOAY0001:: $index is not in the range 1 to array:size($array) + 1 inclusive.
Examples
  • array:insert-before(["a"], 1, "b") returns the array ["b", "a"].

array:head

Signatures array:head($array as array(*)) as item()*
Summary Returns the first member of $array. This function is equivalent to the expression $array(1).
Errors FOAY0001:: The array is empty.
Examples
  • array:head(["a", "b"]) returns "a".
  • array:head([["a", "b"], ["c", "d"]]) returns the array ["a", "b"].

array:serialize

Signatures map:serialize($input as map(*)) as xs:string
Summary This function is specific to BaseX. It returns a string representation of the supplied array. The purpose of this function is to get an insight into the structure of an array item; it cannot necessarily be used for reconstructing the original array.
Examples
  • array:serialize([ 1, (2, 3), 4 to 6 ]) returns [1, (2, 3), (4, 5, 6)].

Errors

Code Description
FOAY0001 The specified index extends beyonds the bounds of an array.
FOAY0002 The specified length is less than zero.

Changelog

Introduced with Version 8.0.