- All Modules
- All Functions
-
www.w3.org
- 2005
- XDM
- store
- introspection
- reflection
- external
-
xqdoc
-
project_xqdoc
-
xqdoc
(E)
- xqdoc2xhtml
-
project_xqdoc
- data processing
- expath.org
- www.functx.com
- error
http://www.zorba-xquery.com/modules/store/data-structures/unordered-map
import module namespace map = "http://www.zorba-xquery.com/modules/store/data-structures/unordered-map";
This module defines a set of functions for working with maps. A map is identified by a QName and can be created using the map:create function and deleted using the map:delete function, respectively. However, its actual lifetime depends on the particular store implementation. The key of a particular entry in the map can consist out of a set of atomic values (called attributes). The actual type of each attribute can be determined when the map is created. The value can be an arbitrary sequence of items.
Matthias Brantner
xquery version "3.0" encoding "utf-8";
- the XQuery module can be found here.
For more details please also see:
ann | http://www.zorba-xquery.com/annotations |
err | http://www.w3.org/2005/xqt-errors |
map | http://www.zorba-xquery.com/modules/store/data-structures/unordered-map |
ver | http://www.zorba-xquery.com/options/versioning |
zerr | http://www.zorba-xquery.com/errors |
![]() |
available-maps
(
) as xs:QName* external The function returns a sequence of QNames of the maps that are available. |
![]() ![]() ![]() |
create
(
$name as xs:QName,
$key-type as xs:QName
) as empty-sequence() external Create a map with a given name and a set of types for each key attribute. |
![]() ![]() |
delete
(
$name as xs:QName
) as empty-sequence() external Destroys the map with the given name. |
![]() ![]() |
get
(
$name as xs:QName,
$key as xs:anyAtomicType?
) as item()* external Returns the value of the entry with the given key from the map. |
![]() ![]() ![]() |
insert
(
$name as xs:QName,
$value as item()*,
$key as xs:anyAtomicType?
) as empty-sequence() external Inserts a new entry into the map with the given name. |
![]() |
keys
(
$name as xs:QName
) as node()* external Returns the keys of all entries of a map. |
![]() ![]() ![]() |
remove
(
$name as xs:QName,
$key as xs:anyAtomicType?
) as empty-sequence() external Removes an entry identified by the given key from the map. |
![]() |
size
(
$name as xs:QName
) as xs:integer external The number of entries in a map. |
declare function map:available-maps ( ) as xs:QName* external
The function returns a sequence of QNames of the maps that are available. The sequence will be empty if there are no maps.
- A sequence of QNames, one for each available map, or an emtpy sequence.
declare %ann:variadic %ann:sequential function map:create ( $name as xs:QName, $key-type as xs:QName ) as empty-sequence() external
Create a map with a given name and a set of types for each key attribute. Note that the function is variadic and might take an arbitrary amount of types for the key attributes. Also note that the function is sequential and immediately creates the map in the store.
- $name the name of the map
- $key-type an arbitrary number of types, one for each key attribute.
- the function is sequential and immediately creates the corresponding map but returns the empty-sequence.
- err:XPTY0004 if any of the attribute types is not a subtype of xs:anyAtomicType.
- zerr:ZSTR0001 if a map with the given name already exists.
declare %ann:sequential function map:delete (
$name as xs:QName
) as empty-sequence() external
Destroys the map with the given name.
- $name the name of the map to delete
- the function is sequential and immediately deletes the map but returns the empty-sequence.
- zerr:ZDDY0023 if a map with the given name does not exist.
declare %ann:variadic function map:get ( $name as xs:QName, $key as xs:anyAtomicType? ) as item()* external
Returns the value of the entry with the given key from the map.
- $name the name of the map
- an arbitrary number of search key attributes.
- the value of the entry in the map identified by the given key. The empty-sequence will be returned if no entry with the given key is contained in the map.
- zerr:ZDDY0023 if a map with the given name does not exist.
- zerr:ZDDY0025 if the given number of key attributes does not match the number of key attributes specified when creating the map (see the map:create function).
- zerr:ZXQD0005 if any of the given key attributes can not be cast (or is not a subtype) of the corresponding key attribute specified when creating the map.
- map:create
declare %ann:variadic %ann:sequential function map:insert ( $name as xs:QName, $value as item()*, $key as xs:anyAtomicType? ) as empty-sequence() external
Inserts a new entry into the map with the given name. Note that the function is variadic and might take an arbitrary amount of key attributes. If an entry with the given key already exists in the map, the value sequences of the existing entry and the sequence passed using $value argument are concatenated.
- $name the name of the map
- $value the value of the entry to insert
- $key an arbitrary number of key attributes.
- the function is sequential and immediately inserts the entry into the map but returns the empty-sequence.
- zerr:ZDDY0023 if a map with the given name does not exist.
- zerr:ZDDY0025 if the given number of key attributes does not match the number of key attributes specified when creating the map (see the map:create function).
- zerr:ZXQD0005 if any of the given key attributes can not be cast (or is not a subtype) of the corresponding key attribute specified when creating the map.
- map:create
declare function map:keys (
$name as xs:QName
) as node()* external
Returns the keys of all entries of a map. The keys are returned as sequence of nodes of the form:
<key xmlns="http://www.zorba-xquery.com/modules/store/data-structures/unordered-map"> <attribute value="key1_value"/> <attribute value="key2_value"/> <attribute value="key3_value"/> </key>The following condition always holds: map:size($name) eq fn:count(map:keys($name))
- $name the name of the map
- all keys in the map.
- zerr:ZDDY0023 if a map with the given name does not exist.
declare %ann:variadic %ann:sequential function map:remove ( $name as xs:QName, $key as xs:anyAtomicType? ) as empty-sequence() external
Removes an entry identified by the given key from the map.
- $name the name of the map
- an arbitrary number of search key attributes.
- the function is sequential and immediately removes the entry into the map but returns the empty-sequence.
- zerr:ZDDY0023 if a map with the given name does not exist.
- zerr:ZDDY0025 if the given number of key attributes does not match the number of key attributes specified when creating the map (see the map:create function).
- zerr:ZXQD0005 if any of the given key attributes can not be cast (or is not a subtype) of the corresponding key attribute specified when creating the map.
- map:create
declare function map:size (
$name as xs:QName
) as xs:integer external
The number of entries in a map. The following condition always holds: map:size($name) eq fn:count(map:keys($name))
- $name the name of the map
- the number of entries in the map.
- zerr:ZDDY0023 if a map with the given name does not exist.