code: def Validate(self, value):
      
      if value is None:
        return None
  
      if not isinstance(value, self.rdfclass):
        # Try to coerce the type to the correct rdf_class.
        try:
          r = self.rdfclass()
          r.FromDict(value)
          return r
        except (AttributeError, TypeError, rdfvalue.InitializeError):
          # AttributeError is raised if value contains items that don't
          # belong to the given rdfstruct.
          # TypeError will be raised if value is not a dict-like object.
          raise TypeValueError("Value for arg %s should be an %s" %
                               (self.name, self.rdfclass.__name__))
  
      return value
docs: Validate the value.
  
      Args:
        value: Value is expected to be a dict-like object that a given RDFStruct
          can be initialized from.
  
      Raises:
        TypeValueError: If the value is not a valid dict-like object that a given
          RDFStruct can be initialized from.
  
      Returns:
        A valid instance of self.rdfclass or None.