Difference between revisions of "Sessions Module"
Jump to navigation
Jump to search
(Created page with "This XQuery Module can only be called from users with ''Admin'' permissions. It contains functions for accessing and modifying all registered server-side sessi...") |
|||
(49 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
=Conventions= | =Conventions= | ||
− | As sessions are side-effecting operations, all functions | + | * The module will be available if the {{Code|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 <code><nowiki>http://basex.org/modules/sessions</nowiki></code> namespace, which is statically bound to the {{Code|sessions}} prefix. | ||
+ | * If any of the functions is called outside the servlet context, <code>[[XQuery Errors#BaseX Errors|basex:http]]</code> is raised. | ||
+ | * If a specified session id is not found, <code>[[#Errors|not-found]]</code> is raised. | ||
+ | * As sessions are side-effecting operations, all functions are flagged as ''nondeterministic''. As a result, some query optimizations will be suppressed. | ||
− | + | =Functions= | |
− | + | ==sessions:ids== | |
+ | |||
+ | {| width='100%' | ||
+ | |- valign="top" | ||
+ | | width='120' | '''Signature''' | ||
+ | |<pre>sessions:ids() as xs:string*</pre> | ||
+ | |- valign="top" | ||
+ | | '''Summary''' | ||
+ | |Returns the IDs of all registered sessions. | ||
+ | |} | ||
+ | |||
+ | ==sessions:created== | ||
+ | |||
+ | {| width='100%' | ||
+ | |- valign="top" | ||
+ | | width='120' | '''Signature''' | ||
+ | |<pre>sessions:created( | ||
+ | $id as xs:string | ||
+ | ) as xs:dateTime</pre> | ||
+ | |- valign="top" | ||
+ | | '''Summary''' | ||
+ | |Returns the creation time of the session specified by {{Mono|$id}}. | ||
+ | |} | ||
− | = | + | ==sessions:accessed== |
− | |||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
− | | width=' | + | | width='120' | '''Signature''' |
− | | | + | |<pre>sessions:accessed( |
− | |- | + | $id as xs:string |
+ | ) as xs:dateTime</pre> | ||
+ | |- valign="top" | ||
| '''Summary''' | | '''Summary''' | ||
− | |Returns the | + | |Returns the last access time of the session specified by {{Mono|$id}}. |
|} | |} | ||
==sessions:names== | ==sessions:names== | ||
+ | |||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
− | | width=' | + | | width='120' | '''Signature''' |
− | | | + | |<pre>sessions:names( |
− | |- | + | $id as xs:string |
+ | ) as xs:string*</pre> | ||
+ | |- valign="top" | ||
| '''Summary''' | | '''Summary''' | ||
− | |Returns the names of all | + | |Returns the names of all attributes bound to the session specified by {{Mono|$id}}. |
|} | |} | ||
==sessions:get== | ==sessions:get== | ||
+ | |||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
− | | width=' | + | | width='120' | '''Signature''' |
− | | | + | |<pre>sessions:get( |
− | |- | + | $id as xs:string, |
+ | $name as xs:string, | ||
+ | $default as item()* := () | ||
+ | ) as item()*</pre> | ||
+ | |- valign="top" | ||
| '''Summary''' | | '''Summary''' | ||
− | |Returns the value of | + | |Returns the value of an attribute with the specified {{Code|$name}} from the session with the specified {{Mono|$id}}. If the attribute is unknown, an empty sequence or the optionally specified {{Code|$default}} value will be returned instead. |
− | |||
− | |||
− | |||
|} | |} | ||
==sessions:set== | ==sessions:set== | ||
+ | |||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
− | | width=' | + | | width='120' | '''Signature''' |
− | | | + | |<pre>sessions:set( |
− | |- | + | $id as xs:string, |
+ | $name as xs:string, | ||
+ | $value as item()* | ||
+ | ) as empty-sequence()</pre> | ||
+ | |- valign="top" | ||
| '''Summary''' | | '''Summary''' | ||
− | | | + | |Returns the specified {{Code|value}} to the attribute with the specified {{Code|$name}} from the session with the specified {{Mono|$id}}. |
− | |||
− | |||
− | |||
|} | |} | ||
==sessions:delete== | ==sessions:delete== | ||
+ | |||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
− | | width=' | + | | width='120' | '''Signature''' |
− | | | + | |<pre>sessions:delete( |
− | |- | + | $id as xs:string, |
+ | $name as xs:string | ||
+ | ) as empty-sequence()</pre> | ||
+ | |- valign="top" | ||
| '''Summary''' | | '''Summary''' | ||
− | |Deletes | + | |Deletes an attribute with the specified {{Code|$name}} from the session with the specified {{Mono|$id}}. |
|} | |} | ||
==sessions:close== | ==sessions:close== | ||
+ | |||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
− | | width=' | + | | width='120' | '''Signature''' |
− | | | + | |<pre>sessions:close( |
− | |- | + | $id as xs:string |
+ | ) as empty-sequence()</pre> | ||
+ | |- valign="top" | ||
| '''Summary''' | | '''Summary''' | ||
|Unregisters the session specified by {{Mono|$id}}. | |Unregisters the session specified by {{Mono|$id}}. | ||
Line 80: | Line 121: | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
− | ! width=" | + | ! width="110"|Code |
− | + | |Description | |
− | |- | + | |- valign="top" |
− | |{{Code| | + | |{{Code|not-found}} |
− | + | |The specified session is not available. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |The specified session | ||
|} | |} | ||
=Changelog= | =Changelog= | ||
+ | |||
+ | ;Version 9.3 | ||
+ | * Updated: {{Function||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. | This module was introduced with Version 7.5. | ||
− | |||
− |
Latest revision as of 14:52, 31 October 2023
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.
Contents
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 thesessions
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 nondeterministic. As a result, some query optimizations will be suppressed.
Functions[edit]
sessions:ids[edit]
Signature | sessions:ids() as xs:string* |
Summary | Returns the IDs of all registered sessions. |
sessions:created[edit]
Signature | sessions:created( $id as xs:string ) as xs:dateTime |
Summary | Returns the creation time of the session specified by $id .
|
sessions:accessed[edit]
Signature | sessions:accessed( $id as xs:string ) as xs:dateTime |
Summary | Returns the last access time of the session specified by $id .
|
sessions:names[edit]
Signature | 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]
Signature | 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]
Signature | 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 .
|
sessions:delete[edit]
Signature | 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]
Signature | sessions:close( $id as xs:string ) as empty-sequence() |
Summary | Unregisters the session specified by $id .
|
Errors[edit]
Code | Description |
---|---|
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.