10#ifndef PCMK__CRM_COMMON_XML_COMPAT__H
11#define PCMK__CRM_COMMON_XML_COMPAT__H
14#include <libxml/tree.h>
33#define XML_PARANOIA_CHECKS 0
48void xml_log_changes(uint8_t level,
const char *function,
const xmlNode *xml);
51void xml_log_patchset(uint8_t level,
const char *function,
const xmlNode *xml);
54gboolean
apply_xml_diff(xmlNode *old_xml, xmlNode *diff, xmlNode **new_xml);
63static inline const char *
64crm_xml_add_boolean(xmlNode *node,
const char *
name, gboolean value)
71static inline const char *
72crm_element_name(
const xmlNode *xml)
74 return (xml == NULL)? NULL : (
const char *) xml->name;
85xmlNode *
add_node_copy(xmlNode *new_parent, xmlNode *xml_node);
91xmlNode *
diff_xml_object(xmlNode *left, xmlNode *right, gboolean suppress);
95 gboolean full, gboolean *changed,
106 const char *content);
110 const char *
id,
const char *class_name,
117xmlNode *
find_xml_node(
const xmlNode *root,
const char *search_path,
128 gboolean delete_only);
135 const char *field,
const char *value,
136 gboolean search_matches);
146gboolean
add_message_xml(xmlNode *msg,
const char *field, xmlNode *xml);
162 gboolean transform, gboolean to_logs);
165gboolean
validate_xml(xmlNode *xml_blob,
const char *validation,
176static inline const char *
177crm_map_element_name(
const xmlNode *xml)
181 }
else if (strcmp((
const char *) xml->name,
"master") == 0) {
185 return (
const char *) xml->name;
Functionality for manipulating name/value pairs.
const char * crm_xml_add(xmlNode *node, const char *name, const char *value)
Create an XML attribute with specified name and value.
gboolean update_xml_child(xmlNode *child, xmlNode *to_update)
gboolean xml_has_children(const xmlNode *root)
const char * get_schema_name(int version)
int get_schema_version(const char *name)
gboolean replace_xml_child(xmlNode *parent, xmlNode *child, xmlNode *update, gboolean delete_only)
int update_validation(xmlNode **xml_blob, int *best, int max, gboolean transform, gboolean to_logs)
int add_node_nocopy(xmlNode *parent, const char *name, xmlNode *child)
xmlNode * first_named_child(const xmlNode *parent, const char *name)
xmlNode * pcmk_create_xml_text_node(xmlNode *parent, const char *name, const char *content)
void copy_in_properties(xmlNode *target, const xmlNode *src)
void fix_plus_plus_recursive(xmlNode *target)
void xml_log_changes(uint8_t level, const char *function, const xmlNode *xml)
char * xml_get_path(const xmlNode *xml)
Get an XPath string that matches an XML element as closely as possible.
const char * xml_latest_schema(void)
xmlNode * crm_next_same_xml(const xmlNode *sibling)
gboolean cli_config_update(xmlNode **xml, int *best_version, gboolean to_logs)
char * crm_xml_escape(const char *text)
gboolean add_message_xml(xmlNode *msg, const char *field, xmlNode *xml)
void purge_diff_markers(xmlNode *a_node)
xmlDoc * getDocPtr(xmlNode *node)
xmlNode * pcmk_create_html_node(xmlNode *parent, const char *element_name, const char *id, const char *class_name, const char *text)
gboolean apply_xml_diff(xmlNode *old_xml, xmlNode *diff, xmlNode **new_xml)
xmlNode * get_xpath_object_relative(const char *xpath, xmlNode *xml_obj, int error_level)
gboolean validate_xml_verbose(const xmlNode *xml_blob)
void crm_destroy_xml(gpointer data)
xmlNode * find_entity(xmlNode *parent, const char *node_name, const char *id)
xmlNode * find_xml_node(const xmlNode *root, const char *search_path, gboolean must_find)
xmlNode * diff_xml_object(xmlNode *left, xmlNode *right, gboolean suppress)
gboolean validate_xml(xmlNode *xml_blob, const char *validation, gboolean to_logs)
gboolean can_prune_leaf(xmlNode *xml_node)
xmlNode * add_node_copy(xmlNode *new_parent, xmlNode *xml_node)
xmlNode * get_message_xml(const xmlNode *msg, const char *field)
xmlNode * copy_xml(xmlNode *src_node)
xmlNode * create_xml_node(xmlNode *parent, const char *name)
void xml_remove_prop(xmlNode *obj, const char *name)
void expand_plus_plus(xmlNode *target, const char *name, const char *value)
void xml_log_patchset(uint8_t level, const char *function, const xmlNode *xml)
xmlNode * subtract_xml_object(xmlNode *parent, xmlNode *left, xmlNode *right, gboolean full, gboolean *changed, const char *marker)
int find_xml_children(xmlNode **children, xmlNode *root, const char *tag, const char *field, const char *value, gboolean search_matches)
Defined string constants for XML element and attribute names.