record_transform — Metaproxy Module that performs record transformations
This filter acts on Z39.50 present requests and Z39.50 search requests, and let all other types of packages and requests pass untouched. Its use is twofold: blocking Z39.50 present/search requests that the backend server does not understand or can not honor, and transforming the present syntax and elementset name according to the rules specified, to fetch only existing record formats, and transform them on the fly to requested record syntaxes.
The allowed record present syntax and
element name are described in multiple
<retrieval>
elements inside the
<retrievalinfo>
element. The syntax
attribute is mandatory, but
the name
attribute
may be omitted, in which case any
element name is accepted. An additional
identifier
attribute can be added to explicitly
describe the Z39.50 identifier string.
The <retrieval>
element and the content
is described in the
Retrieval Facility section
of the YAZ manual.
# Metaproxy XML config file schema
namespace mp = "http://indexdata.com/metaproxy"
include "retrievalinfo.rnc"
filter_record_transform =
attribute type { "record_transform" },
attribute id { xsd:NCName }?,
attribute name { xsd:NCName }?,
retrievalinfo
A typical configuration looks like this:
<filter type="record_transform"> <retrievalinfo xmlns="http://indexdata.com/yaz" version="1.0"> <retrieval syntax="xml" name="dc" identifier="info:srw/schema/1/dc-v1.1"> <backend syntax="usmarc" name="F"> <marc inputformat="marc" outputformat="marcxml" inputcharset="marc-8"/> <xslt stylesheet="../xml/xslt/MARC21slim2DC.xsl"/> </backend> </retrieval> <retrieval syntax="opac"/> <retrieval syntax="xml" name="opac"> <backend syntax="opac" name="F"> <marc inputformat="marc" outputformat="marcxml" inputcharset="marc-8"/> </backend> </retrieval> <retrieval syntax="usmarc"> <backend syntax="usmarc" name="F"> </backend> </retrieval> </retrievalinfo> </filter>