This package implements maps, as introduced in XSLT 3.0 and XQuery 3.1: maps provide a dictionary-like data structure.
Maps are immutable, so that adding a new entry to a map creates a new map.
The entries in a map are (Key, Value) pairs. The key is always an atomic value; the value may be any XPath sequence.
There are functions (each supported by its own implementation class) to create a new map, to add an entry to a map, to get an entry from a map, and to list all the keys that are present in a map.
Interface Summary Interface Description TupleTypeAn instance of this class represents a specific tuple item type, for example tuple(x as xs:double, y as element(employee)).
Class Summary Class Description DictionaryMapA simple implementation of MapItem where the strings are keys, and modification is unlikely. HashTrieMapAn immutable map. KeyValuePairA key and a corresponding value to be held in a Map. MapCreateThis is a variant of the map:new() or map:merge() function which differs in that duplicate keys are considered an error. MapFunctionSetFunction signatures (and pointers to implementations) of the functions defined in XPath 2.0 MapFunctionSet.MapContainsImplementation of the XPath 3.1 function map:contains(Map, key) => boolean MapFunctionSet.MapEntriesImplementation of the proposed 4.0 function map:entries(Map) => record(key, value* MapFunctionSet.MapEntryImplementation of the extension function map:entry(key, value) => Map MapFunctionSet.MapFindImplementation of the XPath 3.1 function map:find(item()*, key) => array MapFunctionSet.MapForEachImplementation of the function map:for-each(Map, Function) => item()* MapFunctionSet.MapGetImplementation of the XPath 3.1 function map:get(Map, key) => value MapFunctionSet.MapIndexImplementation of the proposed XPath 4.0 function map:index($sequence, function(item()) as xs:anyAtomicType) => map(*) MapFunctionSet.MapKeysImplementation of the XPath 3.1 function map:keys(Map) => atomicValue* MapFunctionSet.MapMergeImplementation of the function map:merge() => Map From 9.8, map:merge is also used to implement map constructors in XPath and the xsl:map instruction in XSLT. MapFunctionSet.MapPutImplementation of the extension function map:put() => Map MapFunctionSet.MapRemoveImplementation of the XPath 3.1 function map:remove(Map, key) => value MapFunctionSet.MapSizeImplementation of the extension function map:size(map) => integer MapItemInterface supported by different implementations of an XDM map item MapTypeAn instance of this class represents a specific map item type, for example map(x:integer, element(employee)) MapUntypedContainsImplementation of an internal function map:untyped-contains(Map, key) => boolean, which is like map:contains except that if the supplied key is untyped atomic, it is converted to all the possible types present in the map and returns true if the key after conversion is present. RangeKeyThis class implements an XPath map item as a view of an XSLT key index. RecordTestAn instance of this class represents a specific record item type, for example record(x as xs:double, y as element(employee)). SelfReferenceRecordTestAn instance of this class represents a self-reference within a record type, that is the ".." construct in a record test such as
record(data as xs:string, next? as ..).
SingleEntryMapA key and a corresponding value to be held in a Map.