XML_TAG_FRAGMENT,
do_id_check(crm_data_t *xml_obj, GHashTable *id_hash) {	int lpc = 0;	char *lookup_id = NULL;	const char *tag_id = NULL;	const char *tag_name = NULL;	const char *lookup_value = NULL;	gboolean created_hash = FALSE;	const char *allowed_list[] = {		XML_TAG_CIB,		XML_CIB_TAG_NODES,		XML_CIB_TAG_RESOURCES,		XML_CIB_TAG_CONSTRAINTS,		XML_CIB_TAG_STATUS,		XML_CIB_TAG_LRM,		XML_LRM_TAG_RESOURCES,		XML_TAG_PARAMS,		"operations",	};	const char *non_unique[] = {		XML_LRM_TAG_RESOURCE,		XML_LRM_TAG_RSC_OP,	};		if(xml_obj == NULL) {		return;	} else if(id_hash == NULL) {		created_hash = TRUE;		id_hash = g_hash_table_new_full(			g_str_hash, g_str_equal,			g_hash_destroy_str, g_hash_destroy_str);	}	xml_child_iter(		xml_obj, xml_child, NULL,		do_id_check(xml_child, id_hash);		);	tag_id = ID(xml_obj);	tag_name = TYPE(xml_obj);		xml_prop_iter(		xml_obj, local_prop_name, local_prop_value,		lookup_id = NULL;		if(ID(xml_obj) != NULL) {			for(lpc = 0; lpc < DIMOF(non_unique); lpc++) {				if(safe_str_eq(tag_name, non_unique[lpc])) {					/* this tag is never meant to have an ID */					break;				}			}			if(lpc < DIMOF(non_unique)) {				break;			}			lookup_id = crm_concat(tag_name, tag_id, '-');			lookup_value = g_hash_table_lookup(id_hash, lookup_id);			if(lookup_value != NULL) {				assign_uuid(xml_obj);				tag_id = ID(xml_obj);				crm_err("\"id\" collision detected.");				crm_err(" Multiple %s entries with id=\"%s\","					" assigned id=\"%s\"",					tag_name, lookup_value, tag_id);			} 			g_hash_table_insert(				id_hash, lookup_id, crm_strdup(tag_id));			break;		}		for(lpc = 0; lpc < DIMOF(allowed_list); lpc++) {			if(safe_str_eq(tag_name, allowed_list[lpc])) {				/* this tag is never meant to have an ID */				break;			}		}		if(lpc < DIMOF(allowed_list)) {			break;		} 		assign_uuid(xml_obj);		tag_id = ID(xml_obj);		crm_err("Object with attributes but no ID field detected."			"  Assigned: %s", tag_id);/* 		lookup_id = crm_concat(tag_name, tag_id, '-'); *//* 		g_hash_table_insert(id_hash, lookup_id, crm_strdup(tag_id)); */		break;				);	if(created_hash) {		g_hash_table_destroy(id_hash);	}}