Map Module
This XQuery Module contains functions for manipulating maps, which will officially be introduced with XQuery 3.1.
Conventions
All functions in this module are assigned to the http://www.w3.org/2005/xpath-functions/map namespace, which is statically bound to the map prefix.
Functions
Some examples use the map $week defined as:
declare variable $week as map(*) := map {
0: "Sonntag",
1: "Montag",
2: "Dienstag",
3: "Mittwoch",
4: "Donnerstag",
5: "Freitag",
6: "Samstag"
};
map:contains
| Signatures | map:contains($input as map(*), $key as xs:anyAtomicType) as xs:boolean
|
| Summary | Returns true if the map supplied as $input contains an entry with a key equal to the supplied value of $key; otherwise it returns false. No error is raised if the map contains keys that are not comparable with the supplied $key.
If the supplied key is |
| Examples |
|
map:entry
| Signatures | map:entry($key as xs:anyAtomicType, $value as item()*) as map(*)
|
| Summary | Creates a new map containing a single entry. The key of the entry in the new map is $key, and its associated value is $value. If the supplied key is xs:untypedAtomic, it is compared as an instance of xs:string. If the supplied key is the xs:float or xs:double value NaN, the function returns the value in the entry whose key is NaN, or the empty sequence otherwise.
The function map:merge((
map:entry("Su", "Sunday"),
map:entry("Mo", "Monday"),
map:entry("Tu", "Tuesday"),
map:entry("We", "Wednesday"),
map:entry("Th", "Thursday"),
map:entry("Fr", "Friday"),
map:entry("Sa", "Saturday")
))
Unlike the map:merge(for $b in //book return map:entry($b/isbn, $b)) |
| Examples |
|
map:get
| Signatures | map:get($input as map(*), $key as xs:anyAtomicType) as item()*
|
| Summary | Returns the value associated with a supplied key in a given map. This function attempts to find an entry within the map supplied as $input that has a key equal to the supplied value of $key. If there is such an entry, it returns the associated value; otherwise it returns an empty sequence. No error is raised if the map contains keys that are not comparable with the supplied $key. If the supplied key is xs:untypedAtomic, it is converted to xs:string. If the supplied key is the xs:float or xs:double value NaN, the function returns an empty sequence.
A return value of |
| Examples |
|
map:keys
| Signatures | map:keys($input as map(*)) as xs:anyAtomicType*
|
| Summary | Returns a sequence containing all the key values present in a map. The function takes any map as its $input argument and returns the keys that are present in the map as a sequence of atomic values. The order may differ from the order in which entries were inserted in the map.
|
| Examples |
|
map:merge
Template:Mark (replacing map:new):
| Signatures | map:merge($input as map(*)*) as map(*)
|
| Summary | Constructs and returns a new map. The map is formed by combining the contents of the maps supplied in the $input argument. The maps are combined as follows:
There is no requirement that the supplied input maps should have the same or compatible types. The type of a map (for example |
| Examples |
|
map:put
| Signatures | map:put($input as map(*), $key as xs:anyAtomicType, $value as item()*) as map(*)
| ||||||||||||||||||
| Summary | Creates a new map, containing the entries of the $input argument and a new entry composed by $key and $value. The semantics of this function are equivalent to map:merge(($input, map { $key, $value })) |