def __setitem__(self, item, value):
if item.lower() == self.term_value_name.lower() or item.lower() == '<STR_LIT:value>':<EOL><INDENT>self.value = value<EOL><DEDENT>elif value is None:<EOL><INDENT>child = self.find_first(item)<EOL>if child:<EOL><INDENT>self.remove_child(child)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>c = self.get_or_new_child(item, value)<EOL>assert self[item].value == value or (self[item].value is None and value == '<STR_LIT>'),"<STR_LIT>".format(self[item].value, value)<EOL><DEDENT>
Set the term's value or one of it's properties. If the item name is a property, and the value
        is None, remove the child.