From: Adam Dickmeiss Date: Tue, 10 Sep 2013 08:44:10 +0000 (+0200) Subject: Move xml_add utilities to xml_add.c source X-Git-Tag: v5.0.0~54 X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=commitdiff_plain;h=e3849ee0440d46eafbac045c6aba40785aa647b6 Move xml_add utilities to xml_add.c source --- diff --git a/src/Makefile.am b/src/Makefile.am index 87898b5..3b1abdd 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -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 \ - 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 \ diff --git a/src/sru-p.h b/src/sru-p.h index def26e8..8a644c1 100644 --- a/src/sru-p.h +++ b/src/sru-p.h @@ -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); +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, diff --git a/src/srw.c b/src/srw.c index 386100c..ca46a44 100644 --- a/src/srw.c +++ b/src/srw.c @@ -21,64 +21,6 @@ #include #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) diff --git a/src/xml_add.c b/src/xml_add.c new file mode 100644 index 0000000..a0c7396 --- /dev/null +++ b/src/xml_add.c @@ -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 +#endif + +#include + +#include +#include +#if YAZ_HAVE_XML2 +#include +#include +#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 + */ + diff --git a/win/makefile b/win/makefile index b88e2a9..6698dc4 100644 --- a/win/makefile +++ b/win/makefile @@ -490,6 +490,7 @@ MISC_OBJS= \ $(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 \