Element-specific validation is now performed using DoValidate, called from Validate().
Is relative changed from a flag to a virtual method - it is, after all, decided at compilation time.
Valid changed from a flag to a state that includes 'trace'.
Implementation of validation with trace and invalid.