sru_z3950 — Metaproxy Module transforming SRU web service requests to Z39.50 Metaproxy packages


The sru_z3950 Metaproxy filter transforms valid SRU GET/POST/SOAP requests to Z39.50 requests, and wraps the received hit counts and XML records into suitable SRU response messages.

Multiple database elements defining the names of the accepted databases are allowed in the configuration file. Each of them must contain their own explain record, or must be empty. Notice that explain records come in SRU and Z39.50 flavors, and this filter requires the SRU version. See the ZeeRex Explain standard pages and the SRU Explain pages for more information.

Optionally the default stylesheet may be specified. If the client does not specify a stylesheet, the CDATA of element stylesheet is used.

All Z39.50 packages and all HTTP packages that do not resolve to one configured database name are passed unaltered to the next filters on the route.

The SRU explain operation is supported, returning either the absolute minimum required by the standard, or a full pre-defined ZeeRex explain record.

It supports the SRU searchRetrieve operation, which is transformed into successive Z39.50 init, search and present requests.

The SRU scan operation is not supported.

This filter does not handle CQL-to-PQF translations. In the case that the backends do not understand CQL, you need to append the cql_pqf metaproxy filter.

This module supports the following SRU extra parameters:


Specifies backend Z39.50 target.


Specifies maximum number of sockets to use for a Z39.50 backend client (for one given target host/db).


Allow a user-defined session ID to be attached to filter log that follows sru_z3950. The ID is present in the log files and not available to the SRU webservice. In order to log material out via SRU, the x-log-enable may be used instead.


Controls whether log is to be collected for filters that sru_z3950. Log data is extra response data's log element. A value of 1 enables logging; any other value disables logging (default).


# Metaproxy XML config file schemas
#   Copyright (C) Index Data
#   See the LICENSE file for details.

namespace mp = ""

filter_sru_z3950 =
  attribute type { "sru_z3950" },
  attribute id { xsd:NCName }?,
  attribute name { xsd:NCName }?,
  element mp:stylesheet { xsd:string }?,
  element mp:database {
     attribute name { xsd:NCName },
  element mp:limit {
    attribute retrieve { xsd:integer }?



A typical configuration looks like this:

    <filter type="sru_z3950">
      <database name="Default">
        <explain xmlns="">
      <database name="Dummy">





Copyright (C) 2005-2018 Index Data