# fn:environment-variable - XPath XQuery Reference

Returns the value of a system environment variable, if it exists.deterministiccontext-dependentfocus-independentThe set of available environment
               variables is a set of (name, value) pairs forming part of the dynamic
            context, in which the name is unique within the set of pairs. The name and value are
            arbitrary strings.If the $name argument matches the name of one of these pairs, the function
            returns the corresponding value.If there is no environment variable with a matching name, the function returns the empty
            sequence.The collation used for matching names is implementation-defined, but
            must be the same as the collation used to ensure that the names of all environment
            variables are unique.The function is deterministic, which means
            that if it is called several times within the same execution scope, with the same arguments, it must return the same
            result.On many platforms, the term "environment variable" has a natural meaning in terms of
            facilities provided by the operating system. This interpretation of the concept does not
            exclude other interpretations, such as a mapping to a set of configuration parameters in
            a database system.Environment variable names are usually case sensitive. Names are usually of the form
               (letter|_) (letter|_|digit)*, but this varies by platform.On some platforms, there may sometimes be multiple environment variables with the same
            name; in this case, it is implementation-dependent as to which is returned; see for
            example  (Chapter 8, Environment Variables). Implementations
               may use prefixes or other naming conventions to disambiguate the
            names.The requirement to ensure that the function is deterministic means in practice that the
            implementation must make a snapshot of the environment variables at some time during
            execution, and return values obtained from this snapshot, rather than using live values
            that are subject to change at any time.Operating system environment variables may be associated with a particular process,
            while queries and stylesheets may execute across multiple processes (or multiple
            machines). In such circumstances implementations may choose to
            provide access to the environment variables associated with the process in which the
            query or stylesheet processing was initiated.Security advice: Queries from untrusted sources should not be permitted unrestricted
            access to environment variables. For example, the name of the account under which the
            query is running may be useful information to a would-be intruder. An implementation may
            therefore choose to restrict access to the environment, or may provide a facility to
            make fn:environment-variable always return the empty sequence.