Difference between revisions of "Session Module"

From BaseX Documentation
Jump to navigation Jump to search
m (Text replace - "{|" to "{| width='100%'")
Line 3: Line 3:
 
=Conventions=
 
=Conventions=
  
As sessions are side-effecting operations, all functions in this module are flagged as ''non-deterministic''. This means that the evaluation order of the functions will not be influenced by the compiler.
+
This module is included in the complete distributions (zip, exe, war) of BaseX.
  
 
All functions are assigned to the {{Code|http://basex.org/modules/session}} namespace, which must be dynamically imported. In this documentation, the namespace is bound to the {{Code|session}} prefix. Errors are assigned to the {{Code|http://basex.org/errors}} namespace, which is statically bound to the {{Code|bxerr}} prefix.
 
All functions are assigned to the {{Code|http://basex.org/modules/session}} namespace, which must be dynamically imported. In this documentation, the namespace is bound to the {{Code|session}} prefix. Errors are assigned to the {{Code|http://basex.org/errors}} namespace, which is statically bound to the {{Code|bxerr}} prefix.
  
 
If the module is called outside the servlet context, the error [[#BXSE0003|BXSE0003]] is raised.
 
If the module is called outside the servlet context, the error [[#BXSE0003|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=
 
=Functions=

Revision as of 02:25, 30 January 2013

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.