crm_validate_data(src_node);
copy_xml_node_recursive(crm_data_t *src_node){	crm_data_t *new_xml = NULL;	#ifdef USE_LIBXML#   if 1	return xmlCopyNode(src_node, 1);#   else	xmlNodePtr local_node = NULL, local_child = NULL;	if(src_node == NULL || src_node->name == NULL) {		return NULL;	}		local_node = create_xml_node(NULL, src_node->name);	copy_in_properties(local_node, src_node);		xml_child_iter(		src_node, node_iter, NULL,		local_child = copy_xml_node_recursive(node_iter);		if(local_child != NULL) {			xmlAddChild(local_node, local_child);			crm_insane("Copied node [%s [%s]",				   local_node->name, local_child->name);		}		);		crm_insane("Returning [%s]", local_node->name);	return local_node;#   endif		#else	CRM_DEV_ASSERT(src_node != NULL);	CRM_DEV_ASSERT(crm_element_name(src_node) != NULL);	if(src_node == NULL) {		crm_warn("Attempt to dup NULL XML");		return NULL;			} else if(crm_element_name(src_node) == NULL) {		crm_xml_err(src_node, "Attempt to dup XML with no name");		return NULL;	}		new_xml = ha_msg_copy(src_node);	crm_set_element_parent(new_xml, NULL);	crm_update_parents(new_xml);	crm_validate_data(new_xml);#endif	return new_xml;}