Move xml_add utilities to xml_add.c source
authorAdam Dickmeiss <adam@indexdata.dk>
Tue, 10 Sep 2013 08:44:10 +0000 (10:44 +0200)
committerAdam Dickmeiss <adam@indexdata.dk>
Tue, 10 Sep 2013 08:44:10 +0000 (10:44 +0200)
src/Makefile.am
src/sru-p.h
src/srw.c
src/xml_add.c [new file with mode: 0644]
win/makefile

index 87898b5..3b1abdd 100644 (file)
@@ -92,7 +92,7 @@ libyaz_la_SOURCES=base64.c version.c options.c log.c \
   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 \
   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 \
   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 \
index def26e8..8a644c1 100644 (file)
@@ -66,6 +66,12 @@ 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);
 
 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,
 void yaz_sru_facet_response(ODR o, Z_FacetList **facetList, xmlNodePtr n);
 
 const char *yaz_element_attribute_value_get(xmlNodePtr ptr,
index 386100c..ca46a44 100644 (file)
--- a/src/srw.c
+++ b/src/srw.c
 #include <yaz/facet.h>
 #include "sru-p.h"
 
 #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)
 char *yaz_negotiate_sru_version(char *input_ver)
 {
     if (!input_ver)
diff --git a/src/xml_add.c b/src/xml_add.c
new file mode 100644 (file)
index 0000000..a0c7396
--- /dev/null
@@ -0,0 +1,90 @@
+/* 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
+ */
+
index b88e2a9..6698dc4 100644 (file)
@@ -490,6 +490,7 @@ MISC_OBJS= \
    $(OBJDIR)\charneg.obj \
    $(OBJDIR)\grs1disp.obj \
    $(OBJDIR)\opac_to_xml.obj \
    $(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 \
    $(OBJDIR)\xml_match.obj \
    $(OBJDIR)\xml_to_opac.obj \
    $(OBJDIR)\zgdu.obj \