zoom-event.c \
record_render.c zoom-socket.c zoom-opt.c zoom-p.h sru_facet.c sru-p.h \
grs1disp.c zgdu.c soap.c srw.c srwutil.c uri.c solr.c diag_map.c \
- opac_to_xml.c xml_match.c xml_to_opac.c \
+ opac_to_xml.c xml_add.c xml_match.c xml_to_opac.c \
cclfind.c ccltoken.c cclerrms.c cclqual.c cclptree.c cclp.h \
cclqfile.c cclstr.c cclxmlconfig.c ccl_stop_words.c \
cql.y cqlstdio.c cqltransform.c cqlutil.c xcqlutil.c cqlstring.c \
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,
#include <yaz/facet.h>
#include "sru-p.h"
-static void add_XML_n(xmlNodePtr ptr, const char *elem, char *val, int len,
- xmlNsPtr ns_ptr)
-{
- if (val)
- {
- xmlDocPtr doc = xmlParseMemory(val,len);
- if (doc)
- {
- xmlNodePtr c = xmlNewChild(ptr, ns_ptr, BAD_CAST elem, 0);
- xmlNodePtr t = xmlDocGetRootElement(doc);
- xmlAddChild(c, xmlCopyNode(t,1));
- xmlFreeDoc(doc);
- }
- }
-}
-
-xmlNodePtr add_xsd_string_n(xmlNodePtr ptr, const char *elem, const char *val,
- int len)
-{
- if (val)
- {
- xmlNodePtr c = xmlNewChild(ptr, 0, BAD_CAST elem, 0);
- xmlNodePtr t = xmlNewTextLen(BAD_CAST val, len);
- xmlAddChild(c, t);
- return t;
- }
- return 0;
-}
-
-xmlNodePtr add_xsd_string_ns(xmlNodePtr ptr, const char *elem, const char *val,
- xmlNsPtr ns_ptr)
-{
- if (val)
- {
- xmlNodePtr c = xmlNewChild(ptr, ns_ptr, BAD_CAST elem, 0);
- xmlNodePtr t = xmlNewText(BAD_CAST val);
- xmlAddChild(c, t);
- return t;
- }
- return 0;
-}
-
-xmlNodePtr add_xsd_string(xmlNodePtr ptr, const char *elem, const char *val)
-{
- return add_xsd_string_ns(ptr, elem, val, 0);
-}
-
-void add_xsd_integer(xmlNodePtr ptr, const char *elem,
- const Odr_int *val)
-{
- if (val)
- {
- char str[40];
- sprintf(str, ODR_INT_PRINTF, *val);
- xmlNewTextChild(ptr, 0, BAD_CAST elem, BAD_CAST str);
- }
-}
-
char *yaz_negotiate_sru_version(char *input_ver)
{
if (!input_ver)
--- /dev/null
+/* This file is part of the YAZ toolkit.
+ * Copyright (C) 1995-2013 Index Data
+ * See the file LICENSE for details.
+ */
+/**
+ * \file xml_add.c
+ * \brief XML node creation utilities
+ */
+#if HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdlib.h>
+
+#include <yaz/srw.h>
+#include <yaz/wrbuf.h>
+#if YAZ_HAVE_XML2
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+#include "sru-p.h"
+
+void add_XML_n(xmlNodePtr ptr, const char *elem, char *val, int len,
+ xmlNsPtr ns_ptr)
+{
+ if (val)
+ {
+ xmlDocPtr doc = xmlParseMemory(val,len);
+ if (doc)
+ {
+ xmlNodePtr c = xmlNewChild(ptr, ns_ptr, BAD_CAST elem, 0);
+ xmlNodePtr t = xmlDocGetRootElement(doc);
+ xmlAddChild(c, xmlCopyNode(t,1));
+ xmlFreeDoc(doc);
+ }
+ }
+}
+
+xmlNodePtr add_xsd_string_n(xmlNodePtr ptr, const char *elem, const char *val,
+ int len)
+{
+ if (val)
+ {
+ xmlNodePtr c = xmlNewChild(ptr, 0, BAD_CAST elem, 0);
+ xmlNodePtr t = xmlNewTextLen(BAD_CAST val, len);
+ xmlAddChild(c, t);
+ return t;
+ }
+ return 0;
+}
+
+xmlNodePtr add_xsd_string_ns(xmlNodePtr ptr, const char *elem, const char *val,
+ xmlNsPtr ns_ptr)
+{
+ if (val)
+ {
+ xmlNodePtr c = xmlNewChild(ptr, ns_ptr, BAD_CAST elem, 0);
+ xmlNodePtr t = xmlNewText(BAD_CAST val);
+ xmlAddChild(c, t);
+ return t;
+ }
+ return 0;
+}
+
+xmlNodePtr add_xsd_string(xmlNodePtr ptr, const char *elem, const char *val)
+{
+ return add_xsd_string_ns(ptr, elem, val, 0);
+}
+
+void add_xsd_integer(xmlNodePtr ptr, const char *elem,
+ const Odr_int *val)
+{
+ if (val)
+ {
+ char str[40];
+ sprintf(str, ODR_INT_PRINTF, *val);
+ xmlNewTextChild(ptr, 0, BAD_CAST elem, BAD_CAST str);
+ }
+}
+
+#endif
+
+/*
+ * Local variables:
+ * c-basic-offset: 4
+ * c-file-style: "Stroustrup"
+ * indent-tabs-mode: nil
+ * End:
+ * vim: shiftwidth=4 tabstop=8 expandtab
+ */
+
$(OBJDIR)\charneg.obj \
$(OBJDIR)\grs1disp.obj \
$(OBJDIR)\opac_to_xml.obj \
+ $(OBJDIR)\xml_add.obj \
$(OBJDIR)\xml_match.obj \
$(OBJDIR)\xml_to_opac.obj \
$(OBJDIR)\zgdu.obj \