This XQuery Module contains functions for accessing and modifying server-side session information. This module is mainly useful in the context of Web Applications.
Conventions
This module is included in the complete distributions (zip, exe, war) of BaseX.
All functions are assigned to the http://basex.org/modules/session namespace, which must be dynamically imported. In this documentation, the namespace is bound to the session prefix. Errors are assigned to the http://basex.org/errors namespace, which is statically bound to the bxerr prefix.
If the module is called outside the servlet context, the error BXSE0003 is raised.
As sessions are side-effecting operations, all functions are flagged as non-deterministic. This means that the functions will not be reordered by the compiler.
Functions
session:id
| Signatures
|
session:id() as xs:string
|
| Summary
|
Returns the session ID of a servlet request.
|
| Examples
|
Running the server-side XQuery file id.xq via http://localhost:8984/id.xq:
import module namespace session = "http://basex.org/modules/session";
'Session ID: ' || session:id()
|
session:created
| Signatures
|
session:created() as xs:dateTime
|
| Summary
|
Returns the creation time of a session.
|
session:accessed
| Signatures
|
session:accessed() as xs:dateTime
|
| Summary
|
Returns the last access time of a session.
|
session:names
| Signatures
|
session:names() as xs:string*
|
| Summary
|
Returns the names of all variables bound to the current session.
|
| Examples
|
Running the server-side XQuery file names.xq via http://localhost:8984/names.xq:
import module namespace session = "http://basex.org/modules/session";
session:names() ! element variable { . }
|
session:get
| Signatures
|
session:get($key as xs:string) as xs:string?
session:get($key as xs:string, $default as xs:string) as xs:string
|
| Summary
|
Returns the value of a variable bound to the current session. If the variable does not exist, an empty sequence or the optionally specified default value is returned instead.
|
| Errors
|
BXSE0002: the value of a session variable could not be retrieved.
|
| Examples
|
Running the server-side XQuery file get.xq via http://localhost:8984/get.xq?key=user:
import module namespace session = "http://basex.org/modules/session";
'Value of ' || $key || ': ' || session:get($key)
|
session:set
| Signatures
|
session:set($key as xs:string, $value as xs:string) as empty-sequence()
|
| Summary
|
Assigns a value to a session variable.
|
| Errors
|
BXSE0001: a function item was specified as value of a session variable.
|
| Examples
|
Running the server-side XQuery file set.xq via http://localhost:8984/set.xq?key=user&value=john:
import module namespace session = "http://basex.org/modules/session";
session:set($key, $value), 'Variable was set.'
|
session:delete
| Signatures
|
session:delete($key as xs:string) as empty-sequence()
|
| Summary
|
Deletes a session variable.
|
| Examples
|
Running the server-side XQuery file delete.xq via http://localhost:8984/delete.xq?key=user:
import module namespace session = "http://basex.org/modules/session";
session:delete($key), 'Variable was deleted.'
|
session:close
| Signatures
|
session:close() as empty-sequence()
|
| Summary
|
Unregisters a session and all data associated with it.
|
Errors
| Code
|
Description
|
BXSE0001
|
A function item was specified as value of a session attribute.
|
BXSE0002
|
An error occurred while retrieving the value of a session attribute.
|
BXSE0003
|
A function was called outside the servlet context.
|
Changelog
This module was introduced with Version 7.5.