int xml_err_elem_not_allowed(const struct xml_tree *p) { if (xml_err_spec && xml_err_spec->elem_map) { if (p->up) { xml_err(p, "element <%s> is not allowed in <%s>", xml_err_get_elem_name(p), xml_err_get_elem_name(p->up)); } else { xml_err(p, "element <%s> is not allowed", xml_err_get_elem_name(p)); } } else { xml_err(p, "element is not allowed"); } return -1; }
int xml_err_elem_empty(const struct xml_tree *p) { if (xml_err_spec && xml_err_spec->elem_map) { xml_err(p, "element <%s> is empty", xml_err_get_elem_name(p)); } else { xml_err(p, "element is empty"); } return -1; }
int xml_err_attrs(const struct xml_tree *p) { if (xml_err_spec && xml_err_spec->elem_map) { xml_err(p, "attributes are not allowed in <%s>", xml_err_get_elem_name(p)); } else { xml_err(p, "attributes are not allowed"); } return -1; }
int xml_err_attr_not_allowed(const struct xml_tree *p, const struct xml_attr *a) { if (xml_err_spec && xml_err_spec->elem_map && xml_err_spec->attr_map) { xml_err(p, "attribute \"%s\" is not allowed in <%s>", xml_err_get_attr_name(a), xml_err_get_elem_name(p)); } else { xml_err(p, "attribute is not allowed"); } return -1; }
int xml_empty_text_c(const struct xml_tree *tree) { unsigned char *p; if (!tree->text) return 0; for (p = tree->text; *p && isspace(*p); p++); if (*p) { if (xml_err_spec && xml_err_spec->elem_map) { xml_err(tree, "text is not allowed in <%s>", xml_err_get_elem_name(tree)); } else { xml_err(tree, "text is not allowed"); } return -1; } return 0; }