http://www.zorba-xquery.com/modules/random ZC

Module Description
Before using any of the functions below please remember to import the module namespace:
import module namespace r = "http://www.zorba-xquery.com/modules/random";

This module provides several functions for generating (pseudo-)random numbers and strings.

Author:

Matthias Brantner, Sorin Nasoi

XQuery version and encoding for this module:

xquery version "3.0" encoding "utf-8";

Zorba version for this module:

The latest version of this module is 2.0. For more information about module versioning in Zorba please check out this resource.

Module Resources
Namespaces
an http://www.zorba-xquery.com/annotations
r http://www.zorba-xquery.com/modules/random
ver http://www.zorba-xquery.com/options/versioning
zerr http://www.zorba-xquery.com/errors
Function Summary
Nondeterministic random ( ) as xs:integer
This function generates one random number.
Nondeterministic External random ( $num as xs:integer ) as xs:integer*
This function generates an arbitrary number of random numbers.
Nondeterministic random-between ( $lower as xs:integer, $upper as xs:integer ) as xs:integer
This function generates one random number within a given range.
Nondeterministic random-between ( $lower as xs:integer, $upper as xs:integer, $num as xs:integer ) as xs:integer*
This function generates an arbitrary number of random numbers within a given range.
External seeded-random ( $seed as xs:integer, $num as xs:integer ) as xs:integer*
This function generates an arbitrary number of pseudo-random numbers.
seeded-random-between ( $seed as xs:integer, $lower as xs:integer, $upper as xs:integer, $num as xs:integer ) as xs:integer*
This function generates an arbitrary number of pseudo-random numbers within a given range.
Nondeterministic External uuid ( ) as xs:string
This function returns a uuid.
Functions
random back to 'Function Summary'
declare function r:random (

) as xs:integer

This function generates one random number. The function is nondeterministic.

The function is based on r:random#1. Specifically, it returns the value of invoking r:random(1).

Returns:

Nondeterministic External random back to 'Function Summary'
declare function r:random (
            $num as xs:integer
) as xs:integer*

This function generates an arbitrary number of random numbers. The function is nondeterministic because the sequence is not repeatable.

However, the function is based on posix function srand() and rand(). Specifically, it invokes srand() with some random number based on the current time and then returns the values returned by invoking rand() $num-times.

Parameters:
Returns:

random-between back to 'Function Summary'
declare function r:random-between (
            $lower as xs:integer,
            $upper as xs:integer
) as xs:integer

This function generates one random number within a given range. The function is nondeterministic.

The function is based on r:random-between#3. Specifically, it returns the value of invoking r:random-betwen($lower, $upper, 1).

Parameters:
Returns:

random-between back to 'Function Summary'
declare function r:random-between (
            $lower as xs:integer,
            $upper as xs:integer,
            $num as xs:integer
) as xs:integer*

This function generates an arbitrary number of random numbers within a given range. The function is nondeterministic because the sequence is not repeatable.

Parameters:
Returns:
Errors:

External seeded-random back to 'Function Summary'
declare function r:seeded-random (
            $seed as xs:integer,
            $num as xs:integer
) as xs:integer*

This function generates an arbitrary number of pseudo-random numbers. The sequence is repeatable by calling the function with the same seed.

The function is based on posix function srand() and rand(). Specifically, it invokes srand($seed) and then returns the values returned by invoking rand() $num-times.

Sequences returned by this function are not thread-safe (i.e. if multiple XQuery programs invoking this function are executed concurrently in several threads). This is because the function is based on srand() and rand().

Parameters:
Returns:
Errors:

seeded-random-between back to 'Function Summary'
declare function r:seeded-random-between (
            $seed as xs:integer,
            $lower as xs:integer,
            $upper as xs:integer,
            $num as xs:integer
) as xs:integer*

This function generates an arbitrary number of pseudo-random numbers within a given range. The sequence is repeatable by calling the function with the same seed and boundaries.

The function is based on the function r:seeded-random#2. Specifically, it's result is repeatable if called with the same arguments.

Parameters:
Returns:
Errors:

Nondeterministic External uuid back to 'Function Summary'
declare function r:uuid (

) as xs:string

This function returns a uuid. Note, that the function is not stable, that is, it returns a different UUID everytime the function is invoked.

Returns: