'Assign object default values according to the schema.  This will not
overwrite properties that have already been set.'

def _SetDefaultsFromSchema(self):

    defaults = {}
    for (property, attributes) in self._schema.iteritems():
        (is_list, property_type, is_strong, is_required) = attributes[0:4]
        if (is_required and (len(attributes) >= 5) and (not (property in self._properties))):
            default = attributes[4]
            defaults[property] = default
    if (len(defaults) > 0):
        self.UpdateProperties(defaults, do_copy=True)
