This is an old revision of the document!
A flexible parameter is a parameter which accepts an argument. For example, in vfs.fs.size[*] the asterisk symbol '*' indicates a flexible parameter. '*' is any string that will be passed as an argument to the parameter. Correct definition examples:
Item key format, including key parameters, must follow syntax rules. The following illustrations depict the supported syntax. Allowed elements and characters at each point can be determined by following the arrows - if some block can be reached through the line, it is allowed, if not - it is not allowed.
To construct a valid item key, one starts with specifying the key name, then there's a choice to either have parameters or not - as depicted by the two lines that could be followed.
The key name itself has a limited range of allowed characters, which just follow each other. Allowed characters are:
An item key can have multiple parameters that are comma separated.
Each key parameter can be either a quoted string, an unquoted string or an array.
The parameter can also be left empty, thus using the default value. In that case, the appropriate number of commas must be added if any further parameters are specified. For example, item key icmpping[,,200,,500] would specify that the interval between individual pings is 200 milliseconds, timeout - 500 milliseconds, and all other parameters are left at their defaults.
Parameter - quoted string
If the key parameter is a quoted string, any Unicode character is allowed, and included double quotes must be backslash escaped.
Parameter - unquoted string
If the key parameter is an unquoted string, any Unicode character is allowed except comma and right square bracket (]).
Parameter - array
If the key parameter is an array, it is again enclosed in square brackets, where individual parameters come in line with the rules and syntax of specifying multiple parameters.
The parameter “encoding” is used to specify encoding for processing corresponding item checks, so that data acquired will not be corrupted. For a list of supported encodings (code page identifiers), please consult respective documentation, such as documentation for libiconv (GNU Project) or Microsoft Windows SDK documentation for “Code Page Identifiers”. If an empty “encoding” parameter is passed, then ANSI with system-specific extension (Windows) or UTF-8 (default locale for newer Unix/Linux distributions, see your system's settings) is used by default.