def validate(self, model=None, context=None):
<EOL>result = Result(translator=self.translator, locale=self.locale)<EOL>state_result = self.validate_state(model, context=context)<EOL>result.merge(state_result)<EOL>props_result = self.validate_properties(model, context=context)<EOL>result.merge(props_result)<EOL>entities_result = self.validate_entities(model, context=context)<EOL>result.merge(entities_result)<EOL>collections_result = self.validate_collections(model, context=context)<EOL>result.merge(collections_result)<EOL>return result<EOL>
Validate model and return validation result object
:param model:  object or dict
:param context: object, dict or None
:return: shiftschema.result.Result