XML Schema Definition for WPKG packages. The root element (packages) contains all packages.
There might be multiple XML files of this type put to the packages/ sub-directory where WPKG is installed.
Generic check definition - used for compatibility. Does not verify correct
combination of attributes for all kind of checks. If you would like to verify
the attributes in more detail please specify the xsi:type='checkFile'
attribute where 'checkFile' can be replaced with any more-specific check type
of check*.
Valid types include:
- checkFile
- checkRegistry
- checkExecute
- checkUninstall
- checkLogical
Checks can be nested. Use logical checks to group checks with logical conditions.
Specify a condition under which this check applies. If the condition does not
apply then the check is ignored (exactly as if it would not have been
specifyed at all).
For example you might add a condition to check for specific OS version. So the
check will only be applied if the OS version matches the condition.
Type of check, valid values are: - file - registry -
uninstall - execute - logical
Check condition. Valid values are:
- equals
- exists
- sizeequals
- versionsmallerthan
- versionlessorequal
- versionequalto
- versiongreaterorequal
- versiongreaterthan
- datemodifyequalto
- datemodifynewerthan
- datemodfyolderthan
- datecreateequalto
- datecreatenewerthan
- datecreateolderthan
- dateaccessequalto
- dateaccessnewerthan
- dateaccessolderthan
- exitcodesmallerthan
- exitcodelessorequal
- exitcodeequalto
- exitcodegreaterorequal
- exitcodegreaterthan
- not
- and
- or
- atleast
- atmost
Path to be used for checks (registry path, file path).
A value is required for some check conditions like
VERSION, SIZE or EQUALS checks.
Note for registry equals checks: The value should
contain a string representing the data within the
registry value. In case the value is a DWORD just
enter a numeric string. The values will be compared
in their string representation (DWORD converted to
String). In case you compare to a REG_MULTI_SZ value
all data fields will be concatenated to a single
string separated by newline characters.
Example:
REG_MULTI_SZ='a
b
c'
value='a
b
c' will match.
REG_BINARY values will be converted to multiline
string as well. Each octett of the binary value is
converted to its decimal representation.
REG_BINARY= '11 22 33 44'
value = '17 34 51 68' will match.
Check type for file specific tests.
File checks need to specify 'file' as the TYPE of check.
Specify what should be tested on the file specified within the 'path' property.
- exists: Check for file existence.
- sizeequals: Check for file size (exact size in Bytes specified within the
'value' attribute.
- version*: Compare file version to version specified within the 'value'
attribute.
- date*: Compare file date to date specified within the 'value' attribute.
Path to the file to be checked. You might use
environment variables as well:
'C:\Windows\explorer.exe'
'%TEMP%\somefile.txt'
This value is optional only for existence check. For all other checks it it is
required.
The value should have the following format:
- for 'exists' condition:
For the 'exists' condition the value attribute is not evaluated. Exists just
checks for existence of the file referred within the 'path' attribute.
- for 'sizeequals' condition:
The 'value' attribute has to tontain the file size (in bytes).
- for 'version*' condition:
The value has to contain a version string which can be compared against the file
version. Some examples for valid version comparisons:
A B Result
'1' '2' B is newer
'1' '15' B is newer
'1.0' '1.2.b' B is newer
'1.35' '1.35-2' B is newer
'1.35-2' '1.36' B is newer
'1.35R3' '1.36' B is newer
'1' '1.0.00.0000' Versions are equal
'1' '1.0' Versions are equal
'1.35' '1.35-2' B is newer
'1.35-2' '1.35' A is newer
'1.35R3' '1.36R4' B is newer
'1.35-2' '1.35-2.0' Versions are equal
'1.35.1' '1.35.1.0' Versions are equal
'1.3RC2' '1.3' B is newer (special case where A is an 'RC' version)
'1.5' '1.5I3656' A is newer (B is an 'I'/integration version)
'1.5' '1.5M3656' A is newer (B is an 'M'/milestone version)
'1.5' '1.5u3656' B is newer (B is an update version)
- for 'date*' condition:
This value allwos to do comparison to file creation, modification and access
timestamps.
The 'value' attribute has to contain a string in the following format:
Relative timestamp (in minutes):
-100 Means the file timestamp is compared to the timestamp 100 minutes ago.
+50 Means the file timestamp is compared to the timestamp 50 minutes in
the future.
Absolute timestamp in ISO 8601 format:
'2007-11-23 22:00' (22:00 local time)
'2007-11-23T22:00' (Both, 'T' and space delimiter are allowed)
'2007-11-23 22:00:00' (specifies seconds which default to 0 above)
'2007-11-23 22:00:00.000' (specifies milliseconds which default to 0)
It is allowed to specify the timezone as well:
'2007-11-23 22:00+01:00' (22:00 CET)
'2007-11-23 21:00Z' (21:00 UTC/GMT = 22:00 CET)
'2007-11-23 22:00+00:00' (21:00 UTC/GMT = 22:00 CET)
File-Comparison:
Prefix your value with the '@' character in order to point to a file to which
the timestamp of the file referred in path is compared.
Examples:
@%SystemRoot%\explorer.exe
@c:\myfile.txt
Special terms:
last-week Check afainst timestamp of exactly one week ago (7 days).
last-month Check afainst timestamp of exactly one month ago (30 days).
last-year Check afainst timestamp of exactly one year ago (365 days).
yesterday Check afainst timestamp of yesterday (24 hours ago).
Use this type to specify a check for registry values.
Registry checks need to specify 'registry' as the the TYPE of check.
exist: Check for existence of the key/value supplied within the 'path'
attribute.
equals: Check if the specified value contains the data entered within the
'value' attribute.
Enter registry path to a key which you like to check. Valid examples:
'HKLM\Software'
Data to check te specified registry value against. NOTE: This attribute is
optional only for registry existence checks. It is REQUIRED if you use equal
checks.
Use this type to specify a check for uninstall entries
(Control Panel, Add/Remove programs).
Uninstall checks need to specify 'uninstall' as the the TYPE of check.
- exist: Check if an uninstall entry equal to the value within the 'value'
attribute exists (see Control Pane, Add/Remove software)
version*:
Compares the uninstall entry version to the value within the 'value' attribute.
NOTE: This only works if the application specifies a 'DisplayVersion' value
within the Windows registry.
Valid values:
- versionsmallerthan
- versionlessorequal
- versionequalto
- versiongreaterorequal
- versiongreaterthan
Name of the uninstall entry as it appears
within Control Panel, Add/Remove software.
Specifies a version if any of the version* checks are used.
Use this type of check to execute a script. Its exit code can be evaluated by rules then.
Execute checks need to specify 'execute' here.
Verify the exit code of the script executed. Please specify the exit code to
compare to within the 'value' attribute. Valid values:
exitcodesmallerthan: true in case the script exit code is numerically less
than the value specified
exitcodelessorequal: true in case the script exit code is numerically less
or equal than the value specified
exitcodeequalto: true in case the script exit code is numerically equal to
the value specified
exitcodegreaterorequal: true in case the script exit code is numerically
greater or equal to the value specified
exitcodegreaterthan: true in case the script exit code is numerically larger
than the value specified
Path to the script to be executed.
Value used in exit code comparison.
Use this check for logical chaining of other checks.
Type of check has to be set to 'logical' for logical checks.
Check condition:
not: Requires exactly one single sub-element of type 'check' whose exit code
boolean value is inverted.
and: Returns false immediately if one of the contained checks returns
false. Only evaluates true in case ALL checks contained evaluate true.
or: Returns true immediately as soon as one of the checks return true. Only
evaluates false if ALL checks contained evaluate false.
atleast: Returns true only if at least the specified amount of checks
contained return true. For example if you specify 5 checks and the value for
'atleast' is set to 3 then it returns true as soon as 3 checks out of 5
evaluated true.
atmost: Returns true if maximum the specified amount of checks return true.
For example if you specify 5 checks and the value for 'atmost' is set to 3 it
will return true only if no more than 3 checks evaluate true.
Number of checks required for 'atleast' and 'atmost' checks. Unused for all other conditions.
Variable name.
Variable value.
Reference to a package.
Specifies a condition under which the package reference is taken into account.
If the condition is not met, then the package reference is ignored.
Equal to the ID attribute of any existing package.
Regular expression which matches host name.
If hostname attribute is specified then this node is only applied if
the host name is matched by the specified attribute regular
expression.
Regular expression which matches host operating
system. e.g. 'microsoft windows 7 professional' Host
OS description string will have the following
format:
'[OS-caption], [OS-description],[CSD-version], [OS-version]'
Regular expression matching machine IP address. Any
IP address of the host (if it has multiple) will
have to match this expression. e.g.
^192\.168\.1\..*
Regular expression matching domain name of the host.
e.g.
^domain$
Regular expression matching group membership of
host. At least one group has to match the regular
expression. e.g.
^group.*$
Regular expression matching the host architecture.
Currently the following architecture are supported:
x86: 32-bit Windows operating system running on x86 instruction set
x64: 64-bit Windows operating system running on x86-64 instruction set
ia64: 64-bit Windows operating system running on IA64 instruction set
Note: Note: You will have to match x86 also if you
run Windows 32-bit on AMD64/EMT64/x64 hardware.
Define environment variables which have to match in
order to match the host. Environment variables need
to be specified in the following format:
environment='variable1=^regexp$|variable2=regexp...'
Please note that regular expressions are matched
case-insensitive and multiple variables have to be
separated by the pipe ('|') character. Please also
note that in case you use WPKG-client the
system-user environment might differ from the
environment you see when opening a command prompt
and typing 'set'. Some variables might be missing
and others might have different content. So use with
caution.
Comma-separated list of LCID values to be matched
against executing host (LCID seetting of executing
user locale). A full list of LCIDs might be found at:
http://www.microsoft.com/globaldev/reference/lcid-all.mspx
Comma-separated list of LCID values to be matched
against executing host (LCID setting of Windows
install language). A full list of LCIDs might be
found at:
http://www.microsoft.com/globaldev/reference/lcid-all.mspx
Use this type to specify a check for host attributes.
Type of check. Set this tho "host" for host
type checks.
Set condition for host check.
Regular expression to match the condition.