XQuery/Environment Variables
< XQuery
Motivation
editYou want to use environment variables to change the way an XQuery executes.
XQuery 3.0 introduced two new functions:
available-environment-variables() as xs:string* - returns a sequence of strings of all the environment variables available
environment-variable($name as xs:string) as xs:string? - returns the value of a specific environment variable
Sample Program
editxquery version "3.0";
<results>
{
for $variable in available-environment-variables()
return
<var name="{$variable}" value="{environment-variable($variable)}"/>
}
</results>
Sample Results
editHere are some sample results on a Windows 7 System:
<var name="EXIST_HOME" value="d:\eXist\exist-2.0"/>
<var name="JAVA_HOME" value="D:\Apps\java\java6"/>
<var name="JAVA_OPTS" value=""-Xms128m -Xmx10024m -Dfile.encoding=UTF-8 -Djava.endorsed.dirs="d:\eXist\exist-2.0"\lib\endorsed""/>
<var name="JAVA_ENDORSED_DIRS" value=""d:\eXist\exist-2.0"\lib\endorsed"/>
<var name="JMX_PORT" value="1099"/>
<var name="JMX_OPTS" value=""-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false""/>
<var name="PROCESSOR_LEVEL" value="6"/>
<var name="PROCESSOR_REVISION" value="2a07"/>
<var name="COMPUTERNAME" value="DANS-NOT-A-MAC"/>
<var name="SystemRoot" value="C:\Windows"/>
<var name="USERNAME" value="Dan"/>
<var name="USERPROFILE" value="C:\Users\Dan"/>
<var name="SystemDrive" value="C:"/>
<var name="Path" value="D:\apps\exist\exist-2.0\bin;
D:\apps\apache-ant-1.8.3\bin;D:\apps\git\bin;
D:\Apps\maven\bin;D:\apps\tomcat\bin;"/>
<var name="SESSIONNAME" value="Console"/>
<var name="MX" value="10024"/>
<var name="TMP" value="C:\Users\Dan\AppData\Local\Temp"/>
<var name="PROMPT" value="$P$G"/>
<var name="PATHEXT" value=".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC"/>
Note that Environment Variables are not the same as system-properties. System properties are key-value pairs typically set by Java. Environment Variables are typically key-value pairs associated with a shell.