def remove_child_objective(self, objective_id=None, child_id=None):
if objective_id is None or child_id is None:<EOL><INDENT>raise NullArgument()<EOL><DEDENT>ohs = ObjectiveHierarchySession(self._objective_bank_id,<EOL>runtime=self._runtime)<EOL>if not ohs.is_child_of_objective(child_id, objective_id):<EOL><INDENT>raise NotFound('<STR_LIT>')<EOL><DEDENT>ids_arg = {'<STR_LIT>': []}<EOL>for ident in ohs.get_child_objective_ids(objective_id):<EOL><INDENT>if ident != child_id:<EOL><INDENT>ids_arg['<STR_LIT>'].append(str(ident))<EOL><DEDENT><DEDENT>url_path = construct_url('<STR_LIT>',<EOL>bank_id=self._catalog_idstr,<EOL>obj_id=objective_id)<EOL>try:<EOL><INDENT>result = self._put_request(url_path, ids_arg)<EOL><DEDENT>except Exception:<EOL><INDENT>raise<EOL><DEDENT>id_list = list()<EOL>for identifier in result['<STR_LIT>']:<EOL><INDENT>id_list.append(Id(idstr=identifier))<EOL><DEDENT>return id_objects.IdList(id_list)<EOL>
Removes a child from an objective.

        arg:    objective_id (osid.id.Id): the Id of an objective
        arg:    child_id (osid.id.Id): the Id of the new child
        raise:  NotFound - objective_id not a parent of child_id
        raise:  NullArgument - objective_id or child_id is null
        raise:  OperationFailed - unable to complete request
        raise:  PermissionDenied - authorization failure
        compliance: mandatory - This method must be implemented.