+ <refsect1>
+ <title>TARGET PROFILE</title>
+ <para>
+ The ZOOM module is driven by a number of settings that specifies how
+ to handle each target.
+ Note that unknown elements are silently <emphasis>ignored</emphasis>.
+ </para>
+ <para>
+ The elements, in alphabetical order, are:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term id="zoom-torus-authentication">authentication</term><listitem>
+ <para>
+ Authentication parameters to be sent to the target. For
+ Z39.50 targets, this will be sent as part of the
+ Init Request. Authentication consists of two components: username
+ and password, separated by a slash.
+ </para>
+ <para>
+ If this value is omitted or empty no authentication information is sent.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="cclmap">
+ <term>cclmap_<replaceable>field</replaceable></term><listitem>
+ <para>
+ This value specifies CCL field (qualifier) definition for some
+ field. For Z39.50 targets this most likely will specify the
+ mapping to a numeric use attribute + a structure attribute.
+ For SRU targets, the use attribute should be string based, in
+ order to make the RPN to CQL conversion work properly (step 2).
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>cfAuth</term><listitem>
+ <para>
+ When cfAuth is defined, its value will be used as authentication
+ to backend target and authentication setting will be specified
+ as part of a database. This is like a "proxy" for authentication and
+ is used for Connector Framework based targets.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term id="zoom-torus-cfproxy">cfProxy</term><listitem>
+ <para>
+ Specifies HTTP proxy for the target in the form
+ <replaceable>host</replaceable>:<replaceable>port</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>cfSubDB</term><listitem>
+ <para>
+ Specifies sub database for a Connector Framework based target.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="zoom-torus-contentConnector">
+ <term>contentConnector</term><listitem>
+ <para>
+ Specifies a database for content-based proxy'ing.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>elementSet</term><listitem>
+ <para>
+ Specifies the elementSet to be sent to the target if record
+ transform is enabled (not to be confused' with the record_transform
+ module). The record transform is enabled only if the client uses
+ record syntax = XML and a element set determined by
+ the <literal>element_transform</literal> /
+ <literal>element_raw</literal> from the configuration.
+ By default that is the element sets <literal>pz2</literal>
+ and <literal>raw</literal>.
+ If record transform is not enabled, this setting is
+ not used and the element set specified by the client
+ is passed verbatim.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>literalTransform</term><listitem>
+ <para>
+ Specifies a XSL stylesheet to be used if record
+ transform is anabled; see description of elementSet.
+ The XSL transform is only used if the element set is set to the
+ value of <literal>element_transform</literal> in the configuration.
+ </para>
+ <para>
+ The value of literalTransform is the XSL - string encoded.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>piggyback</term><listitem>
+ <para>
+ A value of 1/true is a hint to the ZOOM module that this Z39.50
+ target supports piggyback searches, ie Search Response with
+ records. Any other value (false) will prevent the ZOOM module
+ to make use of piggyback (all records part of Present Response).
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>queryEncoding</term><listitem>
+ <para>
+ If this value is defined, all queries will be converted
+ to this encoding. This should be used for all Z39.50 targets that
+ do not use UTF-8 for query terms.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>recordEncoding</term><listitem>
+ <para>
+ Specifies the character encoding of records that are returned
+ by the target. This is primarily used for targets were records
+ are not UTF-8 encoded already. This setting is only used
+ if the record transform is enabled (see description of elementSet).
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>requestSyntax</term><listitem>
+ <para>
+ Specifies the record syntax to be specified for the target
+ if record transform is enabled; see description of elementSet.
+ If record transform is not enabled, the record syntax of the
+ client is passed verbatim to the target.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="sortmap">
+ <term>sortmap_<replaceable>field</replaceable></term><listitem>
+ <para>
+ This value the native field for a target. The form of the value is
+ given by <link linkend="sortStrategy">sortStrategy</link>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="sortStrategy">
+ <term>sortStrategy</term><listitem>
+ <para>
+ Specifies sort strategy for a target. One of:
+ <literal>z3950</literal>, <literal>type7</literal>,
+ <literal>cql</literal>, <literal>sru11</literal> or
+ <literal>embed</literal>. The <literal>embed</literal> chooses type-7
+ or CQL sortby depending on whether Type-1 or CQL is
+ actually sent to the target.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>sru</term><listitem>
+ <para>
+ If this setting is set, it specifies that the target is web service
+ based and must be one of : <literal>get</literal>,
+ <literal>post</literal>, <literal>soap</literal>
+ or <literal>solr</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>sruVersion</term><listitem>
+ <para>
+ Specifies the SRU version to use. It unset, version 1.2 will be
+ used. Some servers do not support this version, in which case
+ version 1.1 or even 1.0 could be set it.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>transform</term><listitem>
+ <para>
+ Specifies a XSL stylesheet filename to be used if record
+ transform is anabled; see description of elementSet.
+ The XSL transform is only used if the element set is set to the
+ value of <literal>element_transform</literal> in the configuration.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>udb</term><listitem>
+ <para>
+ This value is required and specifies the unique database for
+ this profile . All target profiles should hold a unique database.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="urlRecipe">
+ <term>urlRecipe</term><listitem>
+ <para>
+ The value of this field is a string that generates a dynamic link
+ based on record content. If the resulting string is non-zero in length
+ a new field, <literal>metadata</literal> with attribute
+ <literal>type="generated-url"</literal>.
+ The contents of this field is the result of the URL recipe conversion.
+ The urlRecipe value may refer to an existing metadata element by
+ ${field[pattern/result/flags]}, which will take content
+ of field and perform a regular expression conversion using the pattern
+ given. For example: <literal>${md-title[\s+/+/g]}</literal> takes
+ metadadata element <literal>title</literal> and converts one or more
+ spaces to a plus character.
+ </para>
+ <para>
+ If the <link linkend="zoom-torus-contentConnector">contentConnector</link>
+ setting also defined, the resulting value is
+ augmented with a session string as well as the content proxy server.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>zurl</term><listitem>
+ <para>
+ This is setting is mandatory and specifies the ZURL of the
+ target in the form of host/database. The HTTP method should
+ not be provided as this is guessed from the "sru" attribute value.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>DATABASE parameters</title>
+ <para>
+ Extra information may be carried in the Z39.50 Database or SRU path,
+ such as authentication to be passed to backend etc. Some of
+ the parameters override TARGET profile values. The format is
+ </para>
+ <para>
+ udb,parm1=value1&parm2=value2&...
+ </para>
+ <para>
+ Where udb is the unique database recognised by the backend and parm1,
+ value1, .. are parameters to be passed. The following describes the
+ supported parameters. Like form values in HTTP the parameters and
+ values are URL encoded. The separator, though, between udb and parameters
+ is a comma rather than a question mark. What follows question mark are
+ HTTP arguments (in this case SRU arguments).
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>user</term>
+ <listitem>
+ <para>
+ Specifies user to be passed to backend. If this parameter is
+ omitted, the user will be taken from TARGET profile setting
+ <link linkend="zoom-torus-authentication">
+ <literal>authentication</literal>
+ </link>
+ .
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>password</term>
+ <listitem>
+ <para>
+ Specifies password to be passed to backend. If this parameters is
+ omitted, the password will be taken from TARGET profile setting
+ <link linkend="zoom-torus-authentication">
+ <literal>authentication</literal>
+ </link>
+ .
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>proxy</term>
+ <listitem>
+ <para>
+ Specifies proxy to be for backend. If this parameters is
+ omitted, the proxy will be taken from TARGET profile setting
+ <link linkend="zoom-torus-cfproxy">
+ <literal>cfProxy</literal>
+ </link>
+ .
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>cproxysession</term>
+ <listitem>
+ <para>
+ Session ID for content proxy. This parameter is, generally,
+ not used by anything but the content proxy itself.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>realm</term>
+ <listitem>
+ <para>
+ Session realm to be used for this target, changed the resulting
+ URL to be used for getting a target profile, by changing the
+ value that gets substituted for the %realm string.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>x-parm</term>
+ <listitem>
+ <para>
+ All parameters that has prefix x, dash are passed verbatim
+ to the backend.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>SCHEMA</title>
+ <literallayout><xi:include
+ xi:href="../xml/schema/filter_zoom.rnc"
+ xi:parse="text"
+ xmlns:xi="http://www.w3.org/2001/XInclude" />
+ </literallayout>