The values that can be found in the list of reasons of failures for a given key are the following (extracted from the Validation interface):
REQUIRED="Key is required but value is void" TYPE_MISMATCH="Wrong type" CUSTOM_KEY_VALIDATION="Custom validation of key failed" LOWER_BOUND="Lower bound of key's multiplicity constraint not fulfilled" UPPER_BOUND="Upper bound of key's multiplicity constraint not fulfilled" DELETE_DENY_KEY="Key has rule 'DELETE_DENY' but object still holds object(s)" CUSTOM_OBJECT_VALIDATION="Custom validation of object as a whole failed" OBJECT_WIDE="Validation of object as a whole failed" OBJECT_WIDE_KEY='OBJECT_WIDE_VALIDATION'
The last three items occurs when an object is validated as a whole, not when its individual properties are checked; all other values can be returned by validateValueForKey.
Comments are welcome: Sebastien Bigaret / Modeling Home Page