X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fsrw.c;h=4013458899a864e6d3a545fa540d7b7e87b47ebc;hb=b51665819b5685aeeac61d30aee5e66f1af7a4cc;hp=c88ace00e1420e858aa8d8569cb85ff68a54d261;hpb=503a37782cf225167804b55d2bd665a04141d9e4;p=yaz-moved-to-github.git diff --git a/src/srw.c b/src/srw.c index c88ace0..4013458 100644 --- a/src/srw.c +++ b/src/srw.c @@ -852,6 +852,7 @@ int yaz_srw_codec(ODR o, void * vptr, Z_SRW_PDU **handler_data, odr_malloc(o, sizeof(*res)); res->numberOfRecords = 0; + res->resultCountPrecision = 0; res->resultSetId = 0; res->resultSetIdleTime = 0; res->records = 0; @@ -874,6 +875,9 @@ int yaz_srw_codec(ODR o, void * vptr, Z_SRW_PDU **handler_data, else if (match_xsd_integer(ptr, "numberOfRecords", o, &res->numberOfRecords)) ; + else if (match_xsd_string(ptr, "resultCountPrecision", o, + &res->resultCountPrecision)) + ; else if (match_xsd_string(ptr, "resultSetId", o, &res->resultSetId)) ; @@ -1066,9 +1070,7 @@ int yaz_srw_codec(ODR o, void * vptr, Z_SRW_PDU **handler_data, ns_srw = xmlNewNs(ptr, BAD_CAST ns, BAD_CAST "zs"); xmlSetNs(ptr, ns_srw); - if (!version2) - add_xsd_string(ptr, "version", (*p)->srw_version); - + add_xsd_string(ptr, "version", (*p)->srw_version); if (version2) { if (queryType) @@ -1119,8 +1121,7 @@ int yaz_srw_codec(ODR o, void * vptr, Z_SRW_PDU **handler_data, ns_srw = xmlNewNs(ptr, BAD_CAST ns, BAD_CAST "zs"); xmlSetNs(ptr, ns_srw); - if (!version2) - add_xsd_string(ptr, "version", (*p)->srw_version); + add_xsd_string(ptr, "version", (*p)->srw_version); add_xsd_integer(ptr, "numberOfRecords", res->numberOfRecords); add_xsd_string(ptr, "resultSetId", res->resultSetId); add_xsd_integer(ptr, @@ -1142,6 +1143,9 @@ int yaz_srw_codec(ODR o, void * vptr, Z_SRW_PDU **handler_data, yaz_srw_diagnostics(o, rptr, &res->diagnostics, &res->num_diagnostics, client_data, ns); } + if (res->resultCountPrecision) + add_xsd_string(ptr, "resultCountPrecision", + res->resultCountPrecision); } else if ((*p)->which == Z_SRW_explain_request) { @@ -1150,8 +1154,7 @@ int yaz_srw_codec(ODR o, void * vptr, Z_SRW_PDU **handler_data, ns_srw = xmlNewNs(ptr, BAD_CAST ns, BAD_CAST "zs"); xmlSetNs(ptr, ns_srw); - if (!version2) - add_xsd_string(ptr, "version", (*p)->srw_version); + add_xsd_string(ptr, "version", (*p)->srw_version); if (version2) { add_xsd_string(ptr, "recordXMLEscaping", req->recordPacking); @@ -1194,8 +1197,7 @@ int yaz_srw_codec(ODR o, void * vptr, Z_SRW_PDU **handler_data, ns_srw = xmlNewNs(ptr, BAD_CAST ns, BAD_CAST "zs"); xmlSetNs(ptr, ns_srw); - if (!version2) - add_xsd_string(ptr, "version", (*p)->srw_version); + add_xsd_string(ptr, "version", (*p)->srw_version); if (version2) { @@ -1224,9 +1226,7 @@ int yaz_srw_codec(ODR o, void * vptr, Z_SRW_PDU **handler_data, ns_srw = xmlNewNs(ptr, BAD_CAST ns, BAD_CAST "zs"); xmlSetNs(ptr, ns_srw); - if (!version2) - add_xsd_string(ptr, "version", (*p)->srw_version); - + add_xsd_string(ptr, "version", (*p)->srw_version); if (res->num_terms) { xmlNodePtr rptr = xmlNewChild(ptr, 0, BAD_CAST "terms", 0);