+
+Z_AttributeList *yaz_use_attribute_create(ODR o, const char *name);
+
+char *yaz_negotiate_sru_version(char *input_ver);
+
+void yaz_sru_facet_request(ODR, Z_FacetList **facetList,
+ const char **limit, const char **start,
+ const char **sort);
+
+#if YAZ_HAVE_XML2
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+
+int yaz_match_xsd_string(xmlNodePtr ptr, const char *elem, ODR o,
+ char **val);
+int yaz_match_xsd_integer(xmlNodePtr ptr, const char *elem, ODR o,
+ Odr_int **val);
+int yaz_match_xsd_string_n(xmlNodePtr ptr, const char *elem, ODR o,
+ char **val, int *len);
+int yaz_match_xsd_string_n_nmem(xmlNodePtr ptr, const char *elem, NMEM nmem,
+ char **val, int *len);
+int yaz_match_xsd_element(xmlNodePtr ptr, const char *elem);
+
+int yaz_match_xsd_XML_n2(xmlNodePtr ptr, const char *elem, ODR o,
+ char **val, int *len, int fixup_root);
+
+int yaz_match_xsd_XML_n(xmlNodePtr ptr, const char *elem, ODR o,
+ char **val, int *len);
+
+xmlNodePtr add_xsd_string(xmlNodePtr ptr, const char *elem, const char *val);
+
+void add_xsd_integer(xmlNodePtr ptr, const char *elem, const Odr_int *val);
+
+xmlNodePtr add_xsd_string_n(xmlNodePtr ptr, const char *elem, const char *val,
+ int len);
+
+void add_XML_n(xmlNodePtr ptr, const char *elem, char *val, int len,
+ xmlNsPtr ns_ptr);
+
+xmlNodePtr add_xsd_string_ns(xmlNodePtr ptr, const char *elem, const char *val,
+ xmlNsPtr ns_ptr);
+
+void yaz_sru_facet_response(ODR o, Z_FacetList **facetList, xmlNodePtr n);
+
+const char *yaz_element_attribute_value_get(xmlNodePtr ptr,
+ const char *node_name, const char *attribute_name);
+#endif
+