YAZ
5.34.0
|
Implements SRW/SRU package encoding and decoding. More...
#include <stdlib.h>
#include <yaz/srw.h>
#include <yaz/wrbuf.h>
#include <yaz/nmem_xml.h>
#include <libxml/parser.h>
#include <libxml/tree.h>
#include <assert.h>
#include <yaz/facet.h>
#include <yaz/proto.h>
#include "sru-p.h"
Go to the source code of this file.
Functions | |
char * | yaz_negotiate_sru_version (char *input_ver) |
static int | yaz_srw_record (ODR o, xmlNodePtr pptr, Z_SRW_record *rec, Z_SRW_extra_record **extra, void *client_data, int version2) |
static int | yaz_srw_records (ODR o, xmlNodePtr pptr, Z_SRW_record **recs, Z_SRW_extra_record ***extra, int *num, void *client_data, int version2) |
static int | yaz_srw_version (ODR o, xmlNodePtr pptr, Z_SRW_recordVersion *rec, void *client_data, const char *ns) |
static int | yaz_srw_versions (ODR o, xmlNodePtr pptr, Z_SRW_recordVersion **vers, int *num, void *client_data, const char *ns) |
Z_FacetTerm * | yaz_sru_proxy_get_facet_term_count (ODR odr, xmlNodePtr node) |
static Z_FacetField * | yaz_sru_proxy_decode_facet_field (ODR odr, xmlNodePtr ptr) |
static int | yaz_sru_proxy_decode_facets (ODR o, xmlNodePtr root, Z_FacetList **facetList) |
static int | yaz_srw_decode_diagnostics (ODR o, xmlNodePtr pptr, Z_SRW_diagnostic **recs, int *num, void *client_data, const char *ns) |
int | sru_decode_surrogate_diagnostics (const char *buf, size_t len, Z_SRW_diagnostic **diag, int *num, ODR odr) |
static int | yaz_srw_diagnostics (ODR o, xmlNodePtr pptr, Z_SRW_diagnostic **recs, int *num, void *client_data, const char *ns, int version2) |
static int | yaz_srw_term (ODR o, xmlNodePtr pptr, Z_SRW_scanTerm *term, void *client_data, const char *ns) |
static int | yaz_srw_terms (ODR o, xmlNodePtr pptr, Z_SRW_scanTerm **terms, int *num, void *client_data, const char *ns) |
static void | encode_echoed_args (xmlNodePtr ptr, Z_SRW_PDU *p, const char *name) |
int | yaz_srw_codec (ODR o, void *vptr, Z_SRW_PDU **handler_data, void *client_data, const char *ns) |
int | yaz_ucp_codec (ODR o, void *vptr, Z_SRW_PDU **handler_data, void *client_data, const char *ns_ucp_str) |
Implements SRW/SRU package encoding and decoding.
Definition in file srw.c.
|
static |
Definition at line 551 of file srw.c.
References add_xsd_string(), Z_SRW_PDU::extra_args, name, Z_SRW_extra_arg::name, Z_SRW_extra_arg::next, and Z_SRW_extra_arg::value.
Referenced by yaz_srw_codec().
int sru_decode_surrogate_diagnostics | ( | const char * | buf, |
size_t | len, | ||
Z_SRW_diagnostic ** | diag, | ||
int * | num, | ||
ODR | odr | ||
) |
Definition at line 411 of file srw.c.
References yaz_srw_decode_diagnostics().
Referenced by handle_srw_response().
char* yaz_negotiate_sru_version | ( | char * | input_ver | ) |
Definition at line 26 of file srw.c.
Referenced by yaz_sru_decode(), and yaz_srw_codec().
|
static |
Definition at line 294 of file srw.c.
References facet_field_create(), facet_field_term_set(), name, node(), yaz_element_attribute_value_get(), yaz_log(), yaz_match_xsd_element(), yaz_sru_proxy_get_facet_term_count(), YLOG_DEBUG, and zget_AttributeList_use_string().
Referenced by yaz_sru_proxy_decode_facets().
|
static |
Definition at line 325 of file srw.c.
References facet_list_create(), facet_list_field_set(), node(), yaz_match_xsd_element(), and yaz_sru_proxy_decode_facet_field().
Referenced by yaz_srw_codec().
Z_FacetTerm* yaz_sru_proxy_get_facet_term_count | ( | ODR | odr, |
xmlNodePtr | node | ||
) |
Definition at line 278 of file srw.c.
References facet_term_create_cstr(), nmem_text_node_cdata(), node(), odr_atoi(), odr_getmem, and yaz_element_attribute_value_get().
Referenced by yaz_sru_proxy_decode_facet_field().
int yaz_srw_codec | ( | ODR | o, |
void * | vptr, | ||
Z_SRW_PDU ** | handler_data, | ||
void * | client_data, | ||
const char * | ns | ||
) |
Definition at line 575 of file srw.c.
References add_XML_n(), add_xsd_integer(), add_xsd_string(), Z_SRW_searchRetrieveRequest::database, Z_SRW_explainRequest::database, Z_SRW_scanRequest::database, Z_SRW_searchRetrieveResponse::diagnostics, Z_SRW_explainResponse::diagnostics, Z_SRW_scanResponse::diagnostics, odr::direction, encode_echoed_args(), Z_SRW_explainResponse::extra_record, Z_SRW_searchRetrieveResponse::extra_records, Z_SRW_searchRetrieveRequest::facetList, Z_SRW_searchRetrieveResponse::facetList, Z_SRW_searchRetrieveRequest::maximumRecords, Z_SRW_scanRequest::maximumTerms, Z_SRW_searchRetrieveResponse::nextRecordPosition, Z_SRW_searchRetrieveRequest::none, Z_SRW_searchRetrieveResponse::num_diagnostics, Z_SRW_explainResponse::num_diagnostics, Z_SRW_scanResponse::num_diagnostics, Z_SRW_searchRetrieveResponse::num_records, Z_SRW_scanResponse::num_terms, Z_SRW_searchRetrieveResponse::numberOfRecords, ODR_DECODE, ODR_ENCODE, odr_malloc(), Z_SRW_searchRetrieveRequest::packing, Z_SRW_explainRequest::packing, Z_SRW_searchRetrieveRequest::query, Z_SRW_searchRetrieveRequest::queryType, Z_SRW_scanRequest::queryType, Z_SRW_explainResponse::record, Z_SRW_record::recordData_buf, Z_SRW_record::recordData_len, Z_SRW_searchRetrieveRequest::recordPacking, Z_SRW_explainRequest::recordPacking, Z_SRW_record::recordPosition, Z_SRW_searchRetrieveResponse::records, Z_SRW_record::recordSchema, Z_SRW_searchRetrieveRequest::recordSchema, Z_SRW_searchRetrieveRequest::recordXPath, Z_SRW_scanRequest::responsePosition, Z_SRW_searchRetrieveResponse::resultCountPrecision, Z_SRW_searchRetrieveResponse::resultSetId, Z_SRW_searchRetrieveResponse::resultSetIdleTime, Z_SRW_searchRetrieveRequest::resultSetTTL, Z_SRW_scanRequest::scanClause, Z_SRW_searchRetrieveRequest::sort, Z_SRW_searchRetrieveRequest::sort_type, Z_SRW_searchRetrieveRequest::sortKeys, Z_SRW_PDU::srw_version, Z_SRW_searchRetrieveRequest::startRecord, Z_SRW_searchRetrieveRequest::stylesheet, Z_SRW_explainRequest::stylesheet, Z_SRW_scanRequest::stylesheet, Z_SRW_searchRetrieveResponse::suggestions, Z_SRW_scanResponse::terms, Z_SRW_searchRetrieveRequest::xSortKeys, yaz_match_xsd_element(), yaz_match_xsd_integer(), yaz_match_xsd_string(), yaz_match_xsd_XML_n(), yaz_negotiate_sru_version(), yaz_sru_facet_request(), yaz_sru_facet_response(), yaz_sru_proxy_decode_facets(), yaz_srw_diagnostics(), yaz_srw_get_core_v_2_0(), yaz_srw_record(), yaz_srw_records(), yaz_srw_terms(), Z_SRW_explain_request, Z_SRW_explain_response, Z_SRW_scan_request, Z_SRW_scan_response, Z_SRW_searchRetrieve_request, Z_SRW_searchRetrieve_response, Z_SRW_sort_type_none, Z_SRW_sort_type_sort, and Z_SRW_sort_type_xSort.
Referenced by process_http_request(), yaz_sru_decode(), yaz_sru_soap_encode(), yaz_srw_decode(), and ZOOM_handle_sru().
|
static |
Definition at line 363 of file srw.c.
References odr_malloc(), and yaz_match_xsd_string().
Referenced by sru_decode_surrogate_diagnostics(), and yaz_srw_diagnostics().
|
static |
Definition at line 433 of file srw.c.
References add_xsd_string(), odr::direction, ODR_DECODE, ODR_ENCODE, yaz_diag_sru_update_str(), yaz_diag_srw_str(), yaz_srw_decode_diagnostics(), YAZ_XMLNS_DIAG_v1_1, and YAZ_XMLNS_DIAG_v2.
Referenced by yaz_srw_codec(), and yaz_ucp_codec().
|
static |
Definition at line 39 of file srw.c.
References add_XML_n(), add_xsd_integer(), add_xsd_string(), add_xsd_string_n(), odr::direction, Z_SRW_extra_record::extraRecordData_buf, Z_SRW_extra_record::extraRecordData_len, ODR_DECODE, ODR_ENCODE, odr_malloc(), Z_SRW_record::recordData_buf, Z_SRW_record::recordData_len, Z_SRW_extra_record::recordIdentifier, Z_SRW_record::recordPacking, Z_SRW_record::recordPosition, Z_SRW_record::recordSchema, yaz_match_xsd_element(), yaz_match_xsd_integer(), yaz_match_xsd_string(), yaz_match_xsd_string_n(), yaz_match_xsd_XML_n(), yaz_match_xsd_XML_n2(), yaz_srw_pack_to_str(), Z_SRW_recordPacking_string, Z_SRW_recordPacking_URL, and Z_SRW_recordPacking_XML.
Referenced by yaz_srw_codec(), yaz_srw_records(), and yaz_ucp_codec().
|
static |
Definition at line 166 of file srw.c.
References odr::direction, ODR_DECODE, ODR_ENCODE, odr_malloc(), and yaz_srw_record().
Referenced by yaz_srw_codec().
|
static |
Definition at line 480 of file srw.c.
References add_xsd_integer(), add_xsd_string(), odr::direction, Z_SRW_scanTerm::displayTerm, Z_SRW_scanTerm::numberOfRecords, ODR_DECODE, ODR_ENCODE, Z_SRW_scanTerm::value, Z_SRW_scanTerm::whereInList, yaz_match_xsd_integer(), and yaz_match_xsd_string().
Referenced by yaz_srw_terms().
|
static |
Definition at line 515 of file srw.c.
References odr::direction, ODR_DECODE, ODR_ENCODE, odr_malloc(), and yaz_srw_term().
Referenced by yaz_srw_codec().
|
static |
Definition at line 209 of file srw.c.
References add_xsd_string(), odr::direction, ODR_DECODE, ODR_ENCODE, Z_SRW_recordVersion::versionType, Z_SRW_recordVersion::versionValue, and yaz_match_xsd_string().
Referenced by yaz_srw_versions().
|
static |
Definition at line 237 of file srw.c.
References odr::direction, ODR_DECODE, ODR_ENCODE, odr_malloc(), and yaz_srw_version().
Referenced by yaz_ucp_codec().
int yaz_ucp_codec | ( | ODR | o, |
void * | vptr, | ||
Z_SRW_PDU ** | handler_data, | ||
void * | client_data, | ||
const char * | ns_ucp_str | ||
) |
Definition at line 1144 of file srw.c.
References add_XML_n(), add_xsd_string(), add_xsd_string_ns(), Z_SRW_updateRequest::database, Z_SRW_updateResponse::diagnostics, odr::direction, Z_SRW_updateRequest::extra_record, Z_SRW_updateResponse::extra_record, Z_SRW_updateRequest::extraRequestData_buf, Z_SRW_updateRequest::extraRequestData_len, Z_SRW_updateResponse::extraResponseData_buf, Z_SRW_updateResponse::extraResponseData_len, Z_SRW_updateResponse::num_diagnostics, Z_SRW_updateRequest::num_recordVersions, Z_SRW_updateResponse::num_recordVersions, ODR_DECODE, ODR_ENCODE, odr_malloc(), Z_SRW_updateRequest::operation, Z_SRW_updateResponse::operationStatus, Z_SRW_updateRequest::record, Z_SRW_updateResponse::record, Z_SRW_record::recordData_len, Z_SRW_updateRequest::recordId, Z_SRW_updateResponse::recordId, Z_SRW_updateRequest::recordVersions, Z_SRW_updateResponse::recordVersions, Z_SRW_updateRequest::stylesheet, yaz_match_xsd_element(), yaz_match_xsd_string(), yaz_srw_diagnostics(), yaz_srw_get_core_v_2_0(), yaz_srw_get_record(), yaz_srw_record(), yaz_srw_versions(), YAZ_XMLNS_DIAG_v1_1, YAZ_XMLNS_SRU_v1_1, Z_SRW_update_request, and Z_SRW_update_response.
Referenced by process_http_request(), yaz_sru_soap_encode(), and yaz_srw_decode().