* Copyright (C) 1995-2005, Index Data ApS
* See the file LICENSE for details.
*
- * $Id: srw.c,v 1.35 2005-06-25 15:46:05 adam Exp $
+ * $Id: srw.c,v 1.36 2005-08-22 20:34:21 adam Exp $
*/
/**
* \file srw.c
xmlDocPtr doc = xmlParseMemory(val,len);
if (doc)
{
- xmlNodePtr c = xmlNewChild(ptr, 0, elem, 0);
+ xmlNodePtr c = xmlNewChild(ptr, 0, BAD_CAST elem, 0);
xmlNodePtr t = xmlDocGetRootElement(doc);
xmlAddChild(c, xmlCopyNode(t,1));
xmlFreeDoc(doc);
{
if (val)
{
- xmlNodePtr c = xmlNewChild(ptr, 0, elem, 0);
- xmlNodePtr t = xmlNewTextLen(val, len);
+ xmlNodePtr c = xmlNewChild(ptr, 0, BAD_CAST elem, 0);
+ xmlNodePtr t = xmlNewTextLen(BAD_CAST val, len);
xmlAddChild(c, t);
return t;
}
xmlNodePtr add_xsd_string(xmlNodePtr ptr, const char *elem, const char *val)
{
if (val)
- return xmlNewTextChild(ptr, 0, elem, val);
+ return xmlNewTextChild(ptr, 0, BAD_CAST elem,
+ BAD_CAST val);
return 0;
}
{
char str[30];
sprintf(str, "%d", *val);
- xmlNewTextChild(ptr, 0, elem, str);
+ xmlNewTextChild(ptr, 0, BAD_CAST elem, BAD_CAST str);
}
}
static int match_element(xmlNodePtr ptr, const char *elem)
{
- if (ptr->type == XML_ELEMENT_NODE && !strcmp(ptr->name, elem))
+ if (ptr->type == XML_ELEMENT_NODE && !xmlStrcmp(ptr->name, BAD_CAST elem))
return 1;
return 0;
}
*val = "";
return 1;
}
- *val = odr_strdup(o, ptr->content);
+ *val = odr_strdup(o, (const char *) ptr->content);
if (len)
- *len = strlen(ptr->content);
+ *len = xmlStrlen(ptr->content);
return 1;
}
ptr = ptr->children;
if (!ptr || ptr->type != XML_TEXT_NODE)
return 0;
- *val = odr_intdup(o, atoi(ptr->content));
+ *val = odr_intdup(o, atoi((const char *) ptr->content));
return 1;
}
for (ptr = pptr->children; ptr; ptr = ptr->next)
{
if (ptr->type == XML_ELEMENT_NODE &&
- !strcmp(ptr->name, "record"))
+ !xmlStrcmp(ptr->name, BAD_CAST "record"))
(*num)++;
}
if (!*num)
for (i = 0, ptr = pptr->children; ptr; ptr = ptr->next)
{
if (ptr->type == XML_ELEMENT_NODE &&
- !strcmp(ptr->name, "record"))
+ !xmlStrcmp(ptr->name, BAD_CAST "record"))
{
yaz_srw_record(o, ptr, (*recs)+i, client_data, ns);
i++;
int i;
for (i = 0; i < *num; i++)
{
- xmlNodePtr rptr = xmlNewChild(pptr, 0, "record", 0);
+ xmlNodePtr rptr = xmlNewChild(pptr, 0, BAD_CAST "record",
+ 0);
yaz_srw_record(o, rptr, (*recs)+i, client_data, ns);
}
}
for (ptr = pptr->children; ptr; ptr = ptr->next)
{
if (ptr->type == XML_ELEMENT_NODE &&
- !strcmp(ptr->name, "diagnostic"))
+ !xmlStrcmp(ptr->name, BAD_CAST "diagnostic"))
(*num)++;
}
if (!*num)
for (i = 0, ptr = pptr->children; ptr; ptr = ptr->next)
{
if (ptr->type == XML_ELEMENT_NODE &&
- !strcmp(ptr->name, "diagnostic"))
+ !xmlStrcmp(ptr->name, BAD_CAST "diagnostic"))
{
xmlNodePtr rptr;
(*recs)[i].uri = 0;
{
int i;
xmlNsPtr ns_diag =
- xmlNewNs(pptr, "http://www.loc.gov/zing/srw/diagnostic/", 0);
+ xmlNewNs(pptr, BAD_CAST
+ "http://www.loc.gov/zing/srw/diagnostic/", 0);
for (i = 0; i < *num; i++)
{
const char *std_diag = "info:srw/diagnostic/1/";
- xmlNodePtr rptr = xmlNewChild(pptr, ns_diag, "diagnostic", 0);
+ xmlNodePtr rptr = xmlNewChild(pptr, ns_diag,
+ BAD_CAST "diagnostic", 0);
add_xsd_string(rptr, "uri", (*recs)[i].uri);
if ((*recs)[i].message)
add_xsd_string(rptr, "message", (*recs)[i].message);
for (ptr = pptr->children; ptr; ptr = ptr->next)
{
if (ptr->type == XML_ELEMENT_NODE &&
- !strcmp(ptr->name, "term"))
+ !xmlStrcmp(ptr->name, BAD_CAST "term"))
(*num)++;
}
if (!*num)
for (i = 0, ptr = pptr->children; ptr; ptr = ptr->next, i++)
{
if (ptr->type == XML_ELEMENT_NODE &&
- !strcmp(ptr->name, "term"))
+ !xmlStrcmp(ptr->name, BAD_CAST "term"))
yaz_srw_term(o, ptr, (*terms)+i, client_data, ns);
}
}
int i;
for (i = 0; i < *num; i++)
{
- xmlNodePtr rptr = xmlNewChild(pptr, 0, "term", 0);
+ xmlNodePtr rptr = xmlNewChild(pptr, 0, BAD_CAST "term", 0);
yaz_srw_term(o, rptr, (*terms)+i, client_data, ns);
}
}
*p = (Z_SRW_PDU *) odr_malloc(o, sizeof(**p));
(*p)->srw_version = odr_strdup(o, "1.1");
- if (!strcmp(method->name, "searchRetrieveRequest"))
+ if (!xmlStrcmp(method->name, BAD_CAST "searchRetrieveRequest"))
{
xmlNodePtr ptr = method->children;
Z_SRW_searchRetrieveRequest *req;
/* missing is xQuery, xSortKeys .. */
}
}
- else if (!strcmp(method->name, "searchRetrieveResponse"))
+ else if (!xmlStrcmp(method->name, BAD_CAST "searchRetrieveResponse"))
{
xmlNodePtr ptr = method->children;
Z_SRW_searchRetrieveResponse *res;
client_data, ns);
}
}
- else if (!strcmp(method->name, "explainRequest"))
+ else if (!xmlStrcmp(method->name, BAD_CAST "explainRequest"))
{
Z_SRW_explainRequest *req;
xmlNodePtr ptr = method->children;
;
}
}
- else if (!strcmp(method->name, "explainResponse"))
+ else if (!xmlStrcmp(method->name, BAD_CAST "explainResponse"))
{
Z_SRW_explainResponse *res;
xmlNodePtr ptr = method->children;
;
}
}
- else if (!strcmp(method->name, "scanRequest"))
+ else if (!xmlStrcmp(method->name, BAD_CAST "scanRequest"))
{
Z_SRW_scanRequest *req;
xmlNodePtr ptr = method->children;
;
}
}
- else if (!strcmp(method->name, "scanResponse"))
+ else if (!xmlStrcmp(method->name, BAD_CAST "scanResponse"))
{
Z_SRW_scanResponse *res;
xmlNodePtr ptr = method->children;
{
Z_SRW_searchRetrieveRequest *req = (*p)->u.request;
xmlNodePtr ptr = xmlNewChild(pptr, 0,
- "searchRetrieveRequest", 0);
- ns_srw = xmlNewNs(ptr, ns, "zs");
+ BAD_CAST "searchRetrieveRequest", 0);
+ ns_srw = xmlNewNs(ptr, BAD_CAST ns, BAD_CAST "zs");
xmlSetNs(ptr, ns_srw);
if ((*p)->srw_version)
{
Z_SRW_searchRetrieveResponse *res = (*p)->u.response;
xmlNodePtr ptr = xmlNewChild(pptr, 0,
- "searchRetrieveResponse", 0);
- ns_srw = xmlNewNs(ptr, ns, "zs");
+ BAD_CAST "searchRetrieveResponse", 0);
+ ns_srw = xmlNewNs(ptr, BAD_CAST ns, BAD_CAST "zs");
xmlSetNs(ptr, ns_srw);
if ((*p)->srw_version)
add_xsd_integer(ptr, "resultSetIdleTime", res->resultSetIdleTime);
if (res->num_records)
{
- xmlNodePtr rptr = xmlNewChild(ptr, 0, "records", 0);
+ xmlNodePtr rptr = xmlNewChild(ptr, 0, BAD_CAST "records", 0);
yaz_srw_records(o, rptr, &res->records, &res->num_records,
client_data, ns);
}
res->nextRecordPosition);
if (res->num_diagnostics)
{
- xmlNodePtr rptr = xmlNewChild(ptr, 0, "diagnostics", 0);
+ xmlNodePtr rptr = xmlNewChild(ptr, 0, BAD_CAST "diagnostics",
+ 0);
yaz_srw_diagnostics(o, rptr, &res->diagnostics,
&res->num_diagnostics, client_data, ns);
}
else if ((*p)->which == Z_SRW_explain_request)
{
Z_SRW_explainRequest *req = (*p)->u.explain_request;
- xmlNodePtr ptr = xmlNewChild(pptr, 0, "explainRequest", 0);
- ns_srw = xmlNewNs(ptr, ns, "zs");
+ xmlNodePtr ptr = xmlNewChild(pptr, 0, BAD_CAST "explainRequest",
+ 0);
+ ns_srw = xmlNewNs(ptr, BAD_CAST ns, BAD_CAST "zs");
xmlSetNs(ptr, ns_srw);
add_xsd_string(ptr, "version", (*p)->srw_version);
else if ((*p)->which == Z_SRW_explain_response)
{
Z_SRW_explainResponse *res = (*p)->u.explain_response;
- xmlNodePtr ptr = xmlNewChild(pptr, 0, "explainResponse", 0);
- ns_srw = xmlNewNs(ptr, ns, "zs");
+ xmlNodePtr ptr = xmlNewChild(pptr, 0, BAD_CAST "explainResponse",
+ 0);
+ ns_srw = xmlNewNs(ptr, BAD_CAST ns, BAD_CAST "zs");
xmlSetNs(ptr, ns_srw);
add_xsd_string(ptr, "version", (*p)->srw_version);
if (1)
{
- xmlNodePtr ptr1 = xmlNewChild(ptr, 0, "record", 0);
+ xmlNodePtr ptr1 = xmlNewChild(ptr, 0, BAD_CAST "record", 0);
yaz_srw_record(o, ptr1, &res->record, client_data, ns);
}
if (res->num_diagnostics)
{
- xmlNodePtr rptr = xmlNewChild(ptr, 0, "diagnostics", 0);
+ xmlNodePtr rptr = xmlNewChild(ptr, 0, BAD_CAST "diagnostics",
+ 0);
yaz_srw_diagnostics(o, rptr, &res->diagnostics,
&res->num_diagnostics, client_data, ns);
}
else if ((*p)->which == Z_SRW_scan_request)
{
Z_SRW_scanRequest *req = (*p)->u.scan_request;
- xmlNodePtr ptr = xmlNewChild(pptr, 0, "scanRequest", 0);
- ns_srw = xmlNewNs(ptr, ns, "zs");
+ xmlNodePtr ptr = xmlNewChild(pptr, 0, BAD_CAST "scanRequest", 0);
+ ns_srw = xmlNewNs(ptr, BAD_CAST ns, BAD_CAST "zs");
xmlSetNs(ptr, ns_srw);
add_xsd_string(ptr, "version", (*p)->srw_version);
else if ((*p)->which == Z_SRW_scan_response)
{
Z_SRW_scanResponse *res = (*p)->u.scan_response;
- xmlNodePtr ptr = xmlNewChild(pptr, 0, "scanResponse", 0);
- ns_srw = xmlNewNs(ptr, ns, "zs");
+ xmlNodePtr ptr = xmlNewChild(pptr, 0, BAD_CAST "scanResponse", 0);
+ ns_srw = xmlNewNs(ptr, BAD_CAST ns, BAD_CAST "zs");
xmlSetNs(ptr, ns_srw);
add_xsd_string(ptr, "version", (*p)->srw_version);
if (res->num_terms)
{
- xmlNodePtr rptr = xmlNewChild(ptr, 0, "terms", 0);
+ xmlNodePtr rptr = xmlNewChild(ptr, 0, BAD_CAST "terms", 0);
yaz_srw_terms(o, rptr, &res->terms, &res->num_terms,
client_data, ns);
}
if (res->num_diagnostics)
{
- xmlNodePtr rptr = xmlNewChild(ptr, 0, "diagnostics", 0);
+ xmlNodePtr rptr = xmlNewChild(ptr, 0, BAD_CAST "diagnostics",
+ 0);
yaz_srw_diagnostics(o, rptr, &res->diagnostics,
&res->num_diagnostics, client_data, ns);
}