Sessions Module

From BaseX Documentation
Jump to navigation Jump to search

This XQuery Module can only be called from users with Admin permissions. It contains functions for accessing and modifying all registered server-side sessions. This module is mainly useful in the context of Web Applications.

Conventions[edit]

  • The module will be available if the basex-api library is found in the classpath. This is the case if you use one of the complete distributions of BaseX (zip, exe, war).
  • All functions and errors are assigned of the http://basex.org/modules/sessions namespace, which is statically bound to the sessions prefix.
  • If any of the functions is called outside the servlet context, basex:http is raised.
  • If a specified session id is not found, not-found is raised.
  • As sessions are side-effecting operations, all functions are flagged as non-deterministic. As a result, some query optimizations will be suppressed.

Functions[edit]

sessions:ids[edit]

Signatures sessions:ids() as xs:string*
Summary Returns the IDs of all registered sessions.

sessions:created[edit]

Signatures sessions:created($id as xs:string) as xs:dateTime
Summary Returns the creation time of the session specified by $id.

sessions:accessed[edit]

Signatures sessions:accessed($id as xs:string) as xs:dateTime
Summary Returns the last access time of the session specified by $id.

sessions:names[edit]

Signatures sessions:names($id as xs:string) as xs:string*
Summary Returns the names of all attributes bound to the session specified by $id.

sessions:get[edit]

Signatures sessions:get($id as xs:string, $name as xs:string) as item()*
sessions:get($id as xs:string, $name as xs:string, $default as item()*) as item()*
Summary Returns the value of an attribute with the specified $name from the session with the specified $id. If the attribute is unknown, an empty sequence or the optionally specified $default value will be returned instead.

sessions:set[edit]

Signatures sessions:set($id as xs:string, $name as xs:string, $value as item()*) as empty-sequence()
Summary Returns the specified value to the attribute with the specified $name from the session with the specified $id.
Errors set: The supplied value cannot be materialized.

sessions:delete[edit]

Signatures sessions:delete($id as xs:string, $name as xs:string) as empty-sequence()
Summary Deletes an attribute with the specified $name from the session with the specified $id.

sessions:close[edit]

Signatures sessions:close($id as xs:string) as empty-sequence()
Summary Unregisters the session specified by $id.

Errors[edit]

Code Description
set The supplied value cannot be stored.
not-found The specified session is not available.

Changelog[edit]

Version 9.3
  • Updated: sessions:get: Values that have no XQuery type will be returned as strings.
Version 9.0
  • Updated: error codes updated; errors now use the module namespace
Version 8.4
  • Updated: Allow sequences as session values.

This module was introduced with Version 7.5.