Document correct default result-set ttl
[metaproxy-moved-to-github.git] / doc / zoom.xml
index cbda07e..e1b9992 100644 (file)
@@ -9,7 +9,7 @@
   <productname>Metaproxy</productname>
   <info><orgname>Index Data</orgname></info>
  </refentryinfo>
-
  <refmeta>
   <refentrytitle>zoom</refentrytitle>
   <manvolnum>3mp</manvolnum>
   <refpurpose>Metaproxy ZOOM Module</refpurpose>
  </refnamediv>
  
- <refsect1><title>DESCRIPTION</title>
+ <refsect1>
+  <title>DESCRIPTION</title>
   <para>
    This filter implements a generic client based on
    <ulink url="&url.yaz.zoom;">ZOOM</ulink> of YAZ.
    The client implements the protocols that ZOOM C does: Z39.50, SRU
    (GET, POST, SOAP) and SOLR .
   </para>
-
+  
   <para>
    This filter only deals with Z39.50 on input. The following services
    are supported: init, search, present and close. The backend target
 
  </refsect1>
 
- <refsect1><title>CONFIGURATION</title>
-   <para>
-     The configuration consists of three parts: <literal>torus</literal>,
-     <literal>fieldmap</literal> and <literal>cclmap</literal>.
-   </para>
+ <refsect1>
+  <title>CONFIGURATION</title>
+  <para>
+   The configuration consists of five parts: <literal>torus</literal>,
+   <literal>fieldmap</literal>, <literal>cclmap</literal>,
+   <literal>contentProxy</literal> and <literal>log</literal>.
+  </para>
+  <refsect2>
+   <title>torus</title>
    <para>
-     The <literal>torus</literal> element specifies target profiles
-     and takes the following content:
+    The <literal>torus</literal> element specifies target profiles
+    and takes the following content:
    </para>
    <variablelist>
-     <varlistentry>
-       <term>attribute <literal>url</literal></term>
-       <listitem><para>
-          URL of Web service to be used to fetch target profile
-          for a given database (udb). The special sequence
-          <literal>%db</literal> of the URL is replaced by the
-          actual database specified as part of Search.
-        </para>
-       </listitem>
-     </varlistentry>
-     <varlistentry>
-       <term>attribute <literal>xsldir</literal></term>
-       <listitem><para>
-          Directory that is searched for XSL stylesheets. Stylesheets
-          are specified in the target profile by the
-          <literal>transform</literal> element.
-        </para>
-       </listitem>
-     </varlistentry>
-     <varlistentry>
-       <term>attribute <literal>element_transform</literal></term>
-       <listitem><para>
-          Specifies the element that triggers retrieval and transform using
-          the parameters elementSet, recordEncoding, requestSyntax, transform
-          from the target profile. Default value
-          is "pz2", due to the fact that for historical reasons the
-          common format is that used in Pazpar2.
-        </para>
-       </listitem>
-     </varlistentry>
-     <varlistentry>
-       <term>attribute <literal>element_raw</literal></term>
-       <listitem><para>
-          Specifies an element that triggers retrieval using the
-          parameters elementSet, recordEncoding, requestSyntax from the
-          target profile. Same actions as for element_transform, but without
-          the XSL transform. Useful for debugging. The default value is "raw".
-        </para>
-       </listitem>
-     </varlistentry>
-     <varlistentry>
-       <term>element <literal>records</literal></term>
-       <listitem><para>
-          Local target profiles. This element may includes zero or
-          more <literal>record</literal> elements (one per target
-          profile). See section TARGET PROFILE.
-        </para>
-       </listitem>
-     </varlistentry>
+    <varlistentry>
+     <term>attribute <literal>url</literal></term>
+     <listitem>
+      <para>
+       URL of Web service to be used to fetch target profile
+       for a given database (udb) of type searchable. The special sequence
+       <literal>%db</literal> of the URL is replaced by the
+       actual database specified as part of Search.
+      </para>
+      <para>
+       The special sequence <literal>%realm</literal> is replaced by value
+       of attribute <literal>realm</literal> or by realm DATABASE argument.
+      </para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term>attribute <literal>content_url</literal></term>
+     <listitem>
+      <para>
+       URL of Web service to be used to fetch target profile
+       for a given database (udb) of type content. Semantics otherwise like
+       <literal>url</literal> attribute above.
+      </para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+      <term>attribute <literal>realm</literal></term>
+      <listitem>
+       <para>
+        The default realm value. Used for %realm in URL, unless
+        specified in DATABASE argument.
+       </para>
+      </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term>attribute <literal>proxy</literal></term>
+     <listitem>
+      <para>
+       HTTP proxy to bse used for fetching target profiles.
+      </para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term>attribute <literal>xsldir</literal></term>
+     <listitem>
+      <para>
+       Directory that is searched for XSL stylesheets. Stylesheets
+       are specified in the target profile by the
+       <literal>transform</literal> element.
+      </para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term>attribute <literal>element_transform</literal></term>
+     <listitem>
+      <para>
+       Specifies the element that triggers retrieval and transform using
+       the parameters elementSet, recordEncoding, requestSyntax, transform
+       from the target profile. Default value
+       is "pz2", due to the fact that for historical reasons the
+       common format is that used in Pazpar2.
+      </para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term>attribute <literal>element_raw</literal></term>
+     <listitem>
+      <para>
+       Specifies an element that triggers retrieval using the
+       parameters elementSet, recordEncoding, requestSyntax from the
+       target profile. Same actions as for element_transform, but without
+       the XSL transform. Useful for debugging.
+       The default value is "raw".
+      </para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term>element <literal>records</literal></term>
+     <listitem>
+      <para>
+       Local target profiles. This element may includes zero or
+       more <literal>record</literal> elements (one per target
+       profile). See section TARGET PROFILE.
+      </para>
+     </listitem>
+    </varlistentry>
    </variablelist>
+  </refsect2>
+  <refsect2 id="fieldmap">
+   <title>fieldmap</title>
    <para>
-     The <literal>fieldmap</literal> may be specified zero or more times and
-     specifies the map from CQL fields to CCL fields and takes the
-     following content:
+    The <literal>fieldmap</literal> may be specified zero or more times and
+    specifies the map from CQL fields to CCL fields and takes the
+    following content:
    </para>
    <variablelist>
-     <varlistentry>
-       <term>attribute <literal>cql</literal></term>
-       <listitem>
-        <para>
-          CQL field that we are mapping "from".
-        </para>
-       </listitem>
-     </varlistentry>
-     <varlistentry>
-       <term>attribute <literal>ccl</literal></term>
-       <listitem>
-        <para>
-          CCL field that we are mapping "to".
-        </para>
-       </listitem>
-     </varlistentry>
+    <varlistentry>
+     <term>attribute <literal>cql</literal></term>
+     <listitem>
+      <para>
+       CQL field that we are mapping "from".
+      </para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term>attribute <literal>ccl</literal></term>
+     <listitem>
+      <para>
+       CCL field that we are mapping "to".
+      </para>
+     </listitem>
+    </varlistentry>
    </variablelist>
+  </refsect2>
+  <refsect2 id="cclmap_base">
+   <title>cclmap</title>
    <para>
-     The final part of the configuration consists of zero or more
-     <literal>cclmap</literal> elements that specifies <emphasis>base</emphasis>
-     CCL profile to be used for all targets. This configuration, thus, will
-     be combined with cclmap-definitions from the target profile.
-   </para>
- </refsect1>
- <refsect1><title>QUERIES</title>
-   <para>
-     The ZOOM filter accepts three query types: RPN(Type-1), CCL and
-     CQL.
-   </para>
-   <para>
-     Queries are converted in two separate steps. In the first step
-     the input query is converted to RPN/Type-1. This is always
-     the common internal format between step 1 and step 2.
-     In step 2 the query is converted to the native query type of the target.
-   </para>
-   <para>
-     Step 1: for RPN, the query is passed unmodified to the target.
+    The third part of the configuration consists of zero or more
+    <literal>cclmap</literal> elements that specifies
+    <emphasis>base</emphasis> CCL profile to be used for all targets.
+    This configuration, thus, will be combined with cclmap-definitions
+    from the target profile.
    </para>
+  </refsect2>
+  <refsect2>
+   <title>contentProxy</title>
    <para>
-     Step 1: for CCL, the query is converted to RPN via
-     <literal>cclmap</literal> elements part of the target profile.
-   </para>
-   <para>
-     Step 1: For CQL, the query is converted to CCL. The mappings of
-     CQL fields to CCL fields are handled by <literal>fieldmap</literal>
-     elements as part of the target profile. The resulting query, CCL,
-     is the converted to RPN using the schema mentioned earlier (via
-     <literal>cclmap</literal>).
+    The <literal>contentProxy</literal> element controls content proxy'in.
+    This section
+    is optional and must only be defined if content proxy'ing is enabled.
    </para>
+   <variablelist>
+    <varlistentry>
+     <term>attribute <literal>server</literal></term>
+     <listitem>
+      <para>
+       Specifies the content proxy host. The host is of the form
+       host[:port]. That is without a method (such as HTTP) and optional
+       port number.
+      </para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term>attribute <literal>tmp_file</literal></term>
+     <listitem>
+      <para>
+       Specifies a filename of a session file for content proxy'ing. The
+       file should be an absolute filename that includes
+       <literal>XXXXXX</literal> which is replaced by a unique filename
+       using the mkstemp(3) system call. The default value of this
+       setting is <literal>/tmp/cf.XXXXXX.p</literal>.
+      </para>
+     </listitem>
+    </varlistentry>
+   </variablelist>
+  </refsect2>
+  <refsect2>
+   <title>log</title>
    <para>
-     Step 2: If the target is Z39.50-based, it is passed verbatim (RPN).
-     If the target is SRU-based, the RPN will be converted to CQL.
-     If the target is SOLR-based, the RPN will be converted to SOLR's query
-     type.
+    The <literal>log</literal> element controls logging for the
+    ZOOM filter.
    </para>
+   <variablelist>
+    <varlistentry>
+     <term>attribute <literal>apdu</literal></term>
+     <listitem>
+      <para>
+       If the value of apdu is "true", then protocol packages
+       (APDUs and HTTP packages) from the ZOOM filter will be
+       logged to the yaz_log system. A value of "false" will
+       not perform logging of protocol packages (the default
+       behavior).
+      </para>
+     </listitem>
+    </varlistentry>
+   </variablelist>
+  </refsect2>
+ </refsect1>
+ <refsect1>
+  <title>QUERY HANDLING</title>
+  <para>
+   The ZOOM filter accepts three query types: RPN(Type-1), CCL and
+   CQL.
+  </para>
+  <para>
+   Queries are converted in two separate steps. In the first step
+   the input query is converted to RPN/Type-1. This is always
+   the common internal format between step 1 and step 2.
+   In step 2 the query is converted to the native query type of the target.
+  </para>
+  <para>
+   Step 1: for RPN, the query is passed un-modified to the target.
+  </para>
+  <para>
+   Step 1: for CCL, the query is converted to RPN via
+   <link linkend="cclmap"><literal>cclmap</literal></link> elements part of
+   the target profile as well as 
+   <link linkend="cclmap_base">base CCL maps</link>.
+  </para>
+  <para>
+   Step 1: For CQL, the query is converted to CCL. The mappings of
+   CQL fields to CCL fields are handled by
+   <link linkend="fieldmap"><literal>fieldmap</literal></link>
+   elements as part of the target profile. The resulting query, CCL,
+   is the converted to RPN using the schema mentioned earlier (via
+   <literal>cclmap</literal>).
+  </para>
+  <para>
+   Step 2: If the target is Z39.50-based, it is passed verbatim (RPN).
+   If the target is SRU-based, the RPN will be converted to CQL.
+   If the target is SOLR-based, the RPN will be converted to SOLR's query
+   type.
+  </para>
+ </refsect1>
+ <refsect1>
+  <title>SORTING</title>
+  <para>
+   The ZOOM module actively handle CQL sorting - using the SORTBY parameter
+   which was introduced in SRU version 1.2. The conversion from SORTBY clause
+   to native sort for some target is driven by the two parameters: 
+   <link linkend="sortStrategy"><literal>sortStrategy</literal></link>
+   and <link linkend="sortmap"><literal>sortmap_</literal><replaceable>field</replaceable></link>.
+  </para>
+  <para>
+   If a sort field that does not have an equivalent
+   <literal>sortmap_</literal>-mapping is passed un-modified through the
+   conversion. It doesn't throw a diagnostic.
+  </para>
  </refsect1>
+ <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>
 
- <refsect1><title>TARGET PROFILE</title>
-   <para>
-     The following elements are honored by the ZOOM module of Metaproxy.
-     Note that unknown elements are silently ignored. There are several
-     elements in use that makes no sense to the ZOOM module.
-   </para>
-   <variablelist>
-     <varlistentry>
-       <term>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.
-        </para>
-        <para>
-          If this value is omitted or empty, not authentication information
-          is simply omitted.
-        </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>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>cfSubDB</term><listitem>
+    <para>
+     Specifies sub database for a Connector Framework based target.
+    </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 id="zoom-torus-contentConnector">
+    <term>contentConnector</term><listitem>
+    <para>
+     Specifies a database for content-based proxy'ing.
+    </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>
+    <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>cclmap_*</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>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>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>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>
-       <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 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>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>
+    <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>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>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>transform</term><listitem>
-        <para>
-          Specifies a XSL stylesheet filename to be used if record
-          transform is anabled; see desciprion 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>
-       <term>zurl</term><listitem>
-        <para>
-          This is setting is mandatory and specifies the ZURL of the
-          targetin the form of host/database.
-        </para>
-       </listitem>
-     </varlistentry>
-   </variablelist>
+   <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> is generated.
+     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
+     metadata 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 host name of 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&amp;parm2=value2&amp;...
+  </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 one or more proxies for backend. If this parameter is
+      omitted, the proxy will be taken from TARGET profile setting
+      <link linkend="zoom-torus-cfproxy">
+       <literal>cfProxy</literal></link>.
+       The parameter is a list of  comma-separated  host:port entries.
+       Bost host and port must be given for each proxy.
+     </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>nocproxy</term>
+    <listitem>
+     <para>
+      If this parameter is specified, content-proyxing is disabled
+      for the search.
+     </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>
+ <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>
  </refsect1>
  
- <refsect1><title>EXAMPLES</title>
+ <refsect1>
+  <title>EXAMPLES</title>
   <para>
    The following configuration illustrates most of the
    facilities:
     <filter type="zoom">
       <torus
          url="http://torus.indexdata.com/src/records/?query=udb%3D%db"
-         xsldir="."
+        proxy="localhost:3128"
          />
       <fieldmap cql="cql.anywhere"/>
       <fieldmap cql="cql.serverChoice"/>
           <attr type="s" value="107"/>
         </qual>
       </cclmap>
+      <log apdu="true"/>
     </filter>
 ]]>
    </screen>
   </para>
-
+  
  </refsect1> 
  
- <refsect1><title>SEE ALSO</title>
+ <refsect1>
+  <title>SEE ALSO</title>
   <para>
    <citerefentry>
     <refentrytitle>metaproxy</refentrytitle>
 
 <!-- Keep this comment at the end of the file
 Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:1
-sgml-indent-data:t
-sgml-parent-document:nil
-sgml-local-catalogs: nil
-sgml-namecase-general:t
+mode: nxml
+nxml-child-indent: 1
 End:
 -->