Interface for validation rules. Most Datatype implementations will
perform their validation by checking a number of these validation rules
(though strictly spoken this is not required).
value - a value of a class supported by the ValidationRule implementation
expressionContext - many validation rules use the xReporter expression interpreter,
the expressionContext allows to resolve variables used in these expressions.
Returns true if this ValidationRule supports validating objects of the same class
as the one specified. If the flag 'arrayType' is true, this method will return true
if this validation rule can validate arrays of these objects (i.e. the object passed
to the validate method will then be an array).