*srw_pdu = (Z_SRW_PDU*) (*soap_package)->u.generic->p;
yaz_srw_decodeauth(*srw_pdu, hreq, 0, 0, decode);
- if ((*soap_package)->u.generic->no == 3) /* SRU 2 ! */
+ /* last entry in handlers - SRU 2.0 - is turned into
+ offset 0.. due to other pieces relying on it */
+ if ((*soap_package)->u.generic->no == 3)
(*soap_package)->u.generic->no = 0;
if ((*srw_pdu)->which == Z_SRW_searchRetrieve_request &&
(*srw_pdu)->u.request->database == 0)
sr->u.request->maximumRecords = 0;
sr->u.request->recordSchema = 0;
sr->u.request->recordPacking = 0;
+ sr->u.request->packing = 0;
sr->u.request->recordXPath = 0;
sr->u.request->database = 0;
sr->u.request->resultSetTTL = 0;
sr->u.explain_request = (Z_SRW_explainRequest *)
odr_malloc(o, sizeof(*sr->u.explain_request));
sr->u.explain_request->recordPacking = 0;
+ sr->u.explain_request->packing = 0;
sr->u.explain_request->database = 0;
sr->u.explain_request->stylesheet = 0;
break;
yaz_add_name_value_str(encode, name, value, &i, "x-pquery",
srw_pdu->u.request->query);
}
- else if (!strcmp(queryType, "pqf"))
+ else if (!strcmp(queryType, "xcql"))
{
yaz_add_name_value_str(encode, name, value, &i, "x-cql",
srw_pdu->u.request->query);
srw_pdu->u.request->maximumRecords);
yaz_add_name_value_str(encode, name, value, &i, "recordSchema",
srw_pdu->u.request->recordSchema);
- yaz_add_name_value_str(encode, name, value, &i, "recordPacking",
- srw_pdu->u.request->recordPacking);
+ if (version2)
+ {
+ yaz_add_name_value_str(encode, name, value, &i, "recordXMLEscaping",
+ srw_pdu->u.request->recordPacking);
+ yaz_add_name_value_str(encode, name, value, &i, "recordPacking",
+ srw_pdu->u.request->packing);
+ }
+ else
+ yaz_add_name_value_str(encode, name, value, &i, "recordPacking",
+ srw_pdu->u.request->recordPacking);
yaz_add_name_value_str(encode, name, value, &i, "recordXPath",
srw_pdu->u.request->recordXPath);
yaz_add_name_value_str(encode, name, value, &i, "stylesheet",
break;
case Z_SRW_explain_request:
value[i++] = "explain";
+
+ if (version2)
+ {
+ yaz_add_name_value_str(encode, name, value, &i, "recordXMLEscaping",
+ srw_pdu->u.explain_request->recordPacking);
+ yaz_add_name_value_str(encode, name, value, &i, "recordPacking",
+ srw_pdu->u.explain_request->packing);
+ }
+ else
+ yaz_add_name_value_str(encode, name, value, &i, "recordPacking",
+ srw_pdu->u.explain_request->recordPacking);
yaz_add_name_value_str(encode, name, value, &i, "stylesheet",
srw_pdu->u.explain_request->stylesheet);
break;
case Z_SRW_scan_request:
value[i++] = "scan";
- queryType = srw_pdu->u.request->queryType;
+ queryType = srw_pdu->u.scan_request->queryType;
if (version2)
{
if (queryType && strcmp(queryType, "cql"))
yaz_add_name_value_str(encode, name, value, &i, "queryType",
queryType);
- yaz_add_name_value_str(encode, name, value, &i, "query",
- srw_pdu->u.request->query);
+ yaz_add_name_value_str(encode, name, value, &i, "scanClause",
+ srw_pdu->u.scan_request->scanClause);
}
else
{