Difference between revisions of "Session Module"
Jump to navigation
Jump to search
| Line 29: | Line 29: | ||
|} | |} | ||
| − | ==session: | + | ==session:keys== |
{| width='100%' | {| width='100%' | ||
|- | |- | ||
| width='90' | '''Signatures''' | | width='90' | '''Signatures''' | ||
| − | |{{Func|session: | + | |{{Func|session:keys||xs:string*}} |
|- | |- | ||
| '''Summary''' | | '''Summary''' | ||
| − | |Returns the names of all | + | |Returns the names of all variables bound to the current session. |
|- | |- | ||
| '''Examples''' | | '''Examples''' | ||
| − | |Running the server-side XQuery file {{Code| | + | |Running the server-side XQuery file {{Code|keys.xq}} via <code><nowiki>http://localhost:8984/keys.xq</nowiki></code>: |
<pre class="brush:xquery"> | <pre class="brush:xquery"> | ||
import module namespace session = "http://basex.org/modules/session"; | import module namespace session = "http://basex.org/modules/session"; | ||
| − | session: | + | session:keys() ! element variable { . } |
</pre> | </pre> | ||
|} | |} | ||
| − | ==session: | + | ==session:get== |
{| width='100%' | {| width='100%' | ||
|- | |- | ||
| width='90' | '''Signatures''' | | width='90' | '''Signatures''' | ||
| − | |{{Func|session: | + | |{{Func|session:get|$key as xs:string|xs:string?}}<br/>{{Func|session:get|$key as xs:string, $default as xs:string|xs:string}} |
|- | |- | ||
| '''Summary''' | | '''Summary''' | ||
| − | |Returns the value of | + | |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''' | | '''Errors''' | ||
| − | |{{Error|BXSE0002|#Errors}} the value of a session | + | |{{Error|BXSE0002|#Errors}} the value of a session variable could not be retrieved. |
|- | |- | ||
| '''Examples''' | | '''Examples''' | ||
| Line 62: | Line 62: | ||
<pre class="brush:xquery"> | <pre class="brush:xquery"> | ||
import module namespace session = "http://basex.org/modules/session"; | import module namespace session = "http://basex.org/modules/session"; | ||
| − | 'Value of ' || $key || ': ' || session: | + | 'Value of ' || $key || ': ' || session:get($key) |
</pre> | </pre> | ||
|} | |} | ||
| − | ==session: | + | ==session:set== |
{| width='100%' | {| width='100%' | ||
|- | |- | ||
| width='90' | '''Signatures''' | | width='90' | '''Signatures''' | ||
| − | |{{Func|session: | + | |{{Func|session:set|$key as xs:string, $value as xs:string|empty-sequence()}} |
|- | |- | ||
| '''Summary''' | | '''Summary''' | ||
| − | |Assigns a value to a session | + | |Assigns a value to a session variable. |
|- | |- | ||
| '''Errors''' | | '''Errors''' | ||
| − | |{{Error|BXSE0001|#Errors}} a function item was specified as value of a session | + | |{{Error|BXSE0001|#Errors}} a function item was specified as value of a session variable. |
|- | |- | ||
| '''Examples''' | | '''Examples''' | ||
| Line 82: | Line 82: | ||
<pre class="brush:xquery"> | <pre class="brush:xquery"> | ||
import module namespace session = "http://basex.org/modules/session"; | import module namespace session = "http://basex.org/modules/session"; | ||
| − | session: | + | session:set($key, $value), 'Variable was set.' |
</pre> | </pre> | ||
|} | |} | ||
| − | ==session:delete | + | ==session:delete== |
{| width='100%' | {| width='100%' | ||
|- | |- | ||
| width='90' | '''Signatures''' | | width='90' | '''Signatures''' | ||
| − | |{{Func|session:delete | + | |{{Func|session:delete|$key as xs:string|empty-sequence()}} |
|- | |- | ||
| '''Summary''' | | '''Summary''' | ||
| − | |Deletes a session | + | |Deletes a session variable. |
|- | |- | ||
| '''Errors''' | | '''Errors''' | ||
| − | |{{Error|BXSE0001|#Errors}} a function item was specified as value of a session | + | |{{Error|BXSE0001|#Errors}} a function item was specified as value of a session variable. |
|- | |- | ||
| '''Examples''' | | '''Examples''' | ||
| Line 102: | Line 102: | ||
<pre class="brush:xquery"> | <pre class="brush:xquery"> | ||
import module namespace session = "http://basex.org/modules/session"; | import module namespace session = "http://basex.org/modules/session"; | ||
| − | session:delete | + | session:delete($key), 'Variable was deleted.' |
</pre> | </pre> | ||
|} | |} | ||
Revision as of 06:34, 9 September 2012
This XQuery Module contains functions for accessing and modifying server-side session information. This module is mainly useful in the context of Web Applications.
Contents
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.
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.
Functions
session:id
| Signatures | session:id() as xs:string
|
| Summary | Returns the session ID of a servlet request. |
| Examples | Running a RESTXQ function via http://localhost:8984/restxq/id:
module namespace test = 'http://basex.org/examples/test';
import module namespace session = "http://basex.org/modules/session";
declare %restxq:path("/id") function test:id() {
'Session ID: ' || session:id()
};
|
session:keys
| Signatures | session:keys() as xs:string*
|
| Summary | Returns the names of all variables bound to the current session. |
| Examples | Running the server-side XQuery file keys.xq via http://localhost:8984/keys.xq:
import module namespace session = "http://basex.org/modules/session";
session:keys() ! 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. |
| Errors | BXSE0001: a function item was specified as value of 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. |
Changelog
This module was introduced with Version 7.5.