reindent of yaz-client-man.xml
[yaz-moved-to-github.git] / doc / yaz-client-man.xml
index 4e928ed..4897d76 100644 (file)
@@ -1,25 +1,26 @@
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" 
- "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+ "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"
 [
      <!ENTITY % local SYSTEM "local.ent">
      %local;
      <!ENTITY % entities SYSTEM "entities.ent">
      %entities;
-     <!ENTITY % common SYSTEM "common/common.ent">
-     %common;
+     <!ENTITY % idcommon SYSTEM "common/common.ent">
+     %idcommon;
 ]>
-<!-- $Id: yaz-client-man.xml,v 1.12 2006-08-28 19:18:02 adam Exp $ -->
 <refentry id="yaz-client">
  <refentryinfo>
   <productname>YAZ</productname>
   <productnumber>&version;</productnumber>
+  <info><orgname>Index Data</orgname></info>
  </refentryinfo>
+
  <refmeta>
   <refentrytitle>yaz-client</refentrytitle>
   <manvolnum>1</manvolnum>
+  <refmiscinfo class="manual">Commands</refmiscinfo>
  </refmeta>
+
  <refnamediv>
   <refname>yaz-client</refname>
   <refpurpose>Z39.50/SRU client for implementors</refpurpose>
  <refsynopsisdiv>
   <cmdsynopsis>
    <command>yaz-client</command>
-   <arg choice="opt"><option>-a <replaceable>filename</replaceable></option></arg>
-   <arg choice="opt"><option>-b <replaceable>filename</replaceable></option></arg>
-   <arg choice="opt"><option>-c <replaceable>filename</replaceable></option></arg>
+   <arg choice="opt"><option>-a <replaceable>apdulog</replaceable></option></arg>
+   <arg choice="opt"><option>-b <replaceable>berdump</replaceable></option></arg>
+   <arg choice="opt"><option>-c <replaceable>cclfile</replaceable></option></arg>
    <arg choice="opt"><option>-d <replaceable>dump</replaceable></option></arg>
+   <arg choice="opt"><option>-f <replaceable>cmdfile</replaceable></option></arg>
    <arg choice="opt"><option>-k <replaceable>size</replaceable></option></arg>
-   <arg choice="opt"><option>-m <replaceable>filename</replaceable></option></arg>
-   <arg choice="opt"><option>-p <replaceable>addr</replaceable></option></arg>
-   <arg choice="opt"><option>-q <replaceable>filename</replaceable></option></arg>
+   <arg choice="opt"><option>-m <replaceable>marclog</replaceable></option></arg>
+   <arg choice="opt"><option>-p <replaceable>proxy-addr</replaceable></option></arg>
+   <arg choice="opt"><option>-q <replaceable>cqlfile</replaceable></option></arg>
+   <arg choice="opt"><option>-t <replaceable>dispcharset</replaceable></option></arg>
    <arg choice="opt"><option>-u <replaceable>auth</replaceable></option></arg>
-   <arg choice="opt"><option>-xV</option></arg>
-   <arg choice="opt">addr</arg>
+   <arg choice="opt"><option>-v <replaceable>loglevel</replaceable></option></arg>
+   <arg choice="opt"><option>-V</option></arg>
+   <arg choice="opt"><option>-x</option></arg>
+   <arg choice="opt">server-addr</arg>
   </cmdsynopsis>
 
  </refsynopsisdiv>
-  
-  <refsect1><title>DESCRIPTION</title>
-   <para>
-    <command>yaz-client</command> is a Z39.50/SRU client (origin) with a
-    simple command line interface that allows you to test behavior and
-    performance of Z39.50 targets and SRU servers.
-   </para>
-   <para>
-    If the <replaceable>addr</replaceable> is specified, the client creates
-    a connection to the Z39.50/SRU target at the address given.
-   </para>
+
+ <refsect1><title>DESCRIPTION</title>
+  <para>
+   <command>yaz-client</command> is a
+   <ulink url="&url.z39.50;">Z39.50</ulink>/<ulink url="&url.sru;">SRU</ulink>
+   client (origin) with a simple command line interface that allows
+   you to test behavior and performance of Z39.50 targets and SRU servers.
+  </para>
+  <para>
+   From YAZ version 4.1.0 <command>yaz-client</command> may also operate as a
+   <ulink url="&url.solr;">SOLR</ulink> Web Service
+   client.
+  </para>
+  <para>
+   If the <replaceable>server-addr</replaceable> is specified, the client creates
+   a connection to the Z39.50/SRU target at the address given.
+  </para>
   <para>
-   When <command>yaz-client</command> is invoked it attemps to read the
-   following files:
-   <literal>$HOME/.yazclientrc</literal> (home directory, Unix only) and
-   <literal>.yazclientrc</literal> (current directory - any platform)
-   For those files that are readable, the YAZ client executes commands
-   in those files. See COMMANDS section for description of commands.
+   When <command>yaz-client</command> is started it tries to read
+   commands from one of the following files:
+   <itemizedlist>
+    <listitem><para>
+      Command file if it is given by option -f.
+     </para></listitem>
+    <listitem><para>
+      <filename>.yazclientrc</filename> in current working directory.
+     </para></listitem>
+    <listitem><para>
+      <filename>.yazclientrc</filename> in the user's home directory.
+      The value of the <literal>HOME</literal> is used to determine
+      the home directory. Normally, <literal>HOME</literal> is only set
+      on POSIX systems such as Linux, FreeBSD, Solaris.
+     </para></listitem>
+   </itemizedlist>
   </para>
  </refsect1>
   <refsect1>
     <varlistentry>
      <term>-d <replaceable>dump</replaceable></term>
      <listitem><para>
-       If specified, YAZ will dump BER data for all PDUs sent and received 
+       If specified, YAZ will dump BER data for all PDUs sent and received
        to individual files, named
-       <replaceable>dump</replaceable>.DDD.<literal>raw</literal>, 
+       <replaceable>dump</replaceable>.DDD.<literal>raw</literal>,
        where DDD is 001, 002, 003, ..
       </para></listitem>
     </varlistentry>
+
+    <varlistentry>
+     <term>-f <replaceable>cmdfile</replaceable></term>
+     <listitem><para>
+      Reads commands from <replaceable>cmdfile</replaceable>. When
+      this option is used, YAZ client does not read .yazclientrc
+      from current directory or home directory.
+      </para></listitem>
+    </varlistentry>
+
     <varlistentry>
      <term>-k <replaceable>size</replaceable></term>
      <listitem><para>
       Sets preferred messages and maximum record size for Initialize
-      Request in kilobytes. Default value is 1024 (1 MB).
+      Request in kilobytes. Default value is 65536 (64 MB).
       </para></listitem>
     </varlistentry>
     <varlistentry>
       </para></listitem>
     </varlistentry>
     <varlistentry>
-     <term>-p <replaceable>addr</replaceable></term>
+     <term>-p <replaceable>proxy-addr</replaceable></term>
      <listitem><para>
        If specified, the client will use the proxy at the address
-       given.
+       given. YAZ client will
+       connect to a proxy on the address and port given.
+       The actual target will be specified as part of the InitRequest
+       to inform the proxy about actual target.
       </para></listitem>
     </varlistentry>
     <varlistentry>
       </para></listitem>
     </varlistentry>
     <varlistentry>
+     <term>-t <replaceable>displaycharset</replaceable></term>
+     <listitem><para>
+       If displaycharset is given, it specifies name of the character set of the
+       output (on the terminal on which YAZ client is running).
+      </para></listitem>
+    </varlistentry>
+    <varlistentry>
      <term>-u <replaceable>auth</replaceable></term>
      <listitem><para>
        If specified, the <replaceable>auth</replaceable> string
        will be used for authentication.
       </para></listitem>
     </varlistentry>
+    <varlistentry><term>
+      <literal>-v</literal> <replaceable>level</replaceable>
+     </term><listitem>
+      <simpara>Sets the LOG level to <replaceable>level</replaceable>.
+       Level is a sequence of tokens separated by comma. Each token
+       is a integer or a named LOG item - one of
+       <literal>fatal</literal>,
+       <literal>debug</literal>,
+       <literal>warn</literal>,
+       <literal>log</literal>,
+       <literal>malloc</literal>,
+       <literal>all</literal>,
+       <literal>none</literal>.
+      </simpara></listitem>
+    </varlistentry>
     <varlistentry>
      <term>-V</term>
      <listitem><para>
     </varlistentry>
    </variablelist>
   </refsect1>
-  <refsect1>
-   <title>COMMANDS</title>
-   <para>
-    The YAZ client accepts the following commands.
-   </para>
-   &yaz-client-commands;
-   </refsect1>
-  <refsect1><title>FILES</title>
-   <para>
-    <filename>yaz-&lt;version&gt;/client/client.c</filename>
-   </para>
-   <para>
-    <filename>.yazclientrc</filename>
-   </para>
-   <para>
-    <filename>$HOME/.yazclientrc</filename>
-   </para>
-  </refsect1>
-  <refsect1><title>SEE ALSO</title>
-   <para>
-    <citerefentry>
-     <refentrytitle>yaz</refentrytitle>
-     <manvolnum>7</manvolnum>
-    </citerefentry>
-   </para>
-   <para>
-    Section "The YAZ Client" in the YAZ manual.
-   </para>
-   <para id="PQF">
-    Section "Prefix Query Format" in the YAZ manual.
-   </para>
-   <para id="CCL">
-    Section "Common Command Language" in the YAZ manual.
-   </para>
-   <para id="CQL">
-    Section "Common Query Language" in the YAZ manual.
-   </para>
-  </refsect1>
+ <refsect1>
+  <title>COMMANDS</title>
+  <para>
+   The YAZ client accepts the following commands.
+  </para>
+  <variablelist>
+   <varlistentry id="command-open"><term>
+     <literal>open </literal><replaceable>zurl</replaceable>
+    </term>
+    <listitem>
+     <para>Opens a connection to a server. The syntax for
+      <replaceable>zurl</replaceable> is the same as described
+      above for connecting from the command line.
+     </para>
+     <para>
+      Syntax:
+     </para>
+     <para>
+      [<literal>(tcp|ssl|unix|http)':'</literal>]<replaceable>host</replaceable>
+      [:<replaceable>port</replaceable>][/<replaceable>base</replaceable>]
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry><term>
+     <literal>quit</literal>
+    </term>
+    <listitem>
+     <para>Quits YAZ client</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry id="command-find"><term>
+     <literal>find </literal><replaceable>query</replaceable></term>
+    <listitem>
+     <para>Sends a Search Request using the <replaceable>query</replaceable>
+      given. By default the query is assumed to be PQF. See command
+      <link linkend="command-querytype">querytype</link> for more information.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry><term>
+     <literal>delete</literal> <replaceable>setname</replaceable></term>
+    <listitem>
+     <para>Deletes result set with name <replaceable>setname</replaceable>
+      on the server.</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry><term>
+     <literal>base </literal><replaceable>base1</replaceable>
+     <replaceable>base2</replaceable> ...
+    </term>
+    <listitem>
+     <para>Sets the name(s) of the database(s) to search. One or more
+      databases may be specified separated by blanks. This commands overrides
+      the database given in <replaceable>zurl</replaceable>.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry><term>
+     <literal>show </literal>
+     [<replaceable>start</replaceable>[+<replaceable>number</replaceable>]]
+    </term>
+    <listitem>
+     <para>Fetches records by sending a Present Request from the start
+      position given by
+      <replaceable>start</replaceable>
+      a number of records given by <replaceable>number</replaceable>. If
+      <replaceable>start</replaceable> is not given, then the client
+      will fetch from position of the last retrieved record plus 1. If
+      <replaceable>number</replaceable> is not given, then one record will
+      be fetched at a time.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry><term>
+     <literal>scan</literal> <replaceable>term</replaceable>
+    </term>
+    <listitem>
+     <simpara>Scans
+      database index for a term. The syntax resembles the syntax
+      for <link linkend="command-find"><literal>find</literal></link>.
+      If you want to scan for the word <literal>water</literal> you could
+      write
+     </simpara>
+     <screen>
+      scan water
+     </screen>
+     <simpara>
+      but if you want to scan only in, say the title field, you would write
+     </simpara>
+     <screen>
+      scan @attr 1=4 water
+     </screen>
+    </listitem>
+   </varlistentry>
+   <varlistentry><term>
+     <literal>setscan</literal> <replaceable>set</replaceable> <replaceable>term</replaceable>
+    </term>
+    <listitem>
+     <simpara>Scans database index for a term within a result set. This
+      is similar to the scan command but has a result set as its first argument.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry><term>
+     <literal>scanpos</literal> <replaceable>pos</replaceable>
+    </term>
+    <listitem>
+     <simpara>
+      Sets preferred position for scan. This value
+      is used in next scan. By default position is 1.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry><term>
+     <literal>scansize</literal> <replaceable>size</replaceable>
+    </term>
+    <listitem>
+     <simpara>
+      Sets number of entries to be returned by scan. Default
+      number of entries is 20.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry><term>
+     <literal>scanstep</literal> <replaceable>step</replaceable>
+    </term>
+    <listitem>
+     <simpara>
+      Set step-size for scan. This value is used in next scan
+      sent to the target. By default step-size is 0.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry id="sortspec"><term>
+     <literal>sort</literal> <replaceable>sortspecs</replaceable>
+    </term>
+    <listitem>
+     <para>Sorts a result set. The sort command takes a
+      sequence of space-separated sort specifications, with each sort
+      specification consisting of two space-separated words (so that the
+      whole specification list is made up of an even number of words).
+      The first word of each specification
+      holds a field (sort criterion) and the second holds flags.
+      If the sort criterion includes <literal>=</literal> it is assumed
+      that the <literal>SortKey</literal> is of type
+      <literal>sortAttributes</literal> using Bib-1: in this case
+      the integer before <literal>=</literal> is
+      the attribute type and the integer following <literal>=</literal>
+      is the attribute value.
+      If no <literal>=</literal> is in the criterion it is treated as a
+      sortfield of type InternationalString.
+      The flags word of each sort specification must consist of
+      <literal>s</literal>
+      for case sensitive or <literal>i</literal> for case insensitive, and
+      <literal>&lt;</literal> for ascending order or <literal>&gt;</literal>
+      for descending order.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry><term>
+     <literal>sort+</literal>
+    </term>
+    <listitem>
+     <para>Same as <literal>sort</literal> but stores the sorted
+      result set in a new result set.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry><term>
+     <literal>authentication</literal> <replaceable>openauth</replaceable>
+    </term>
+    <listitem>
+     <para>Sets up a authentication string if a server requires
+      authentication (v2 OpenStyle). The authentication string is first
+      sent to the server when the
+      <link linkend="command-open"><literal>open</literal></link> command is
+      issued and the Z39.50 Initialize Request is sent, so this command
+      must be used before <literal>open</literal> in order to be effective.
+      A common convention for the <replaceable>authopen</replaceable> string
+      is that the username - and password is separated by a slash, e.g.
+      <literal>myusername/mysecret</literal>.
+     </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry><term>
+     <literal>sru</literal> <replaceable>method</replaceable> <replaceable>version</replaceable>
+    </term>
+    <listitem>
+     <para>Selects Web Service method and version.
+      Must be one of <literal>POST</literal>,
+      <literal>GET</literal>, <literal>SOAP</literal> (default)
+      or <literal>SOLR</literal>. Version
+      should be either 1.1 or 1.2 for SRU. Other versions are allowed - for testing
+      purposes (version negotiation with SRU server).
+      The version is currently not used for SOLR Web Services
+     </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry><term>
+     <literal>list_all</literal>
+    </term>
+    <listitem>
+     <para>This command displays status and values for many settings.
+     </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry><term>
+     <literal>lslb</literal> <replaceable>n</replaceable>
+    </term>
+    <listitem>
+     <para>Sets the limit for when no records should be returned
+      together with the search result.
+      See the
+      <ulink
+       url="http://www.loc.gov/z3950/agency/markup/04.html#3.2.2.1.6">
+       Z39.50 standard on set bounds
+      </ulink>
+      for more details.
+     </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry><term>
+     <literal>ssub</literal> <replaceable>n</replaceable>
+    </term>
+    <listitem>
+     <para>Sets the limit for when all records should be returned with
+      the search result.
+      See the
+      <ulink
+       url="http://www.loc.gov/z3950/agency/markup/04.html#3.2.2.1.6">
+       Z39.50 standard on set bounds
+      </ulink> for more details.
+     </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry><term>
+     <literal>mspn</literal> <replaceable>n</replaceable>
+    </term>
+    <listitem>
+     <para>Sets the number of records should be returned if the
+      number of records in the result set is between the values of
+      <literal>lslb</literal> and <literal>ssub</literal>.
+      See the
+      <ulink
+       url="http://www.loc.gov/z3950/agency/markup/04.html#3.2.2.1.6">
+       Z39.50 standard on set bounds
+      </ulink>
+      for more details.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry><term>
+     <literal>status</literal>
+    </term>
+    <listitem>
+     <para>Displays the values of <literal>lslb</literal>,
+      <literal>ssub</literal> and <literal>mspn</literal>.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry><term>
+     <literal>setname</literal>
+    </term>
+    <listitem>
+     <para>Switches named result sets on and off. Default is on.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry><term>
+     <literal>cancel</literal>
+    </term>
+    <listitem>
+     <para>Sends a Trigger Resource Control Request to the target.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry><term>
+     <literal>format</literal> <replaceable>oid</replaceable>
+    </term>
+    <listitem>
+     <para>Sets the preferred transfer syntax for retrieved records.
+      yaz-client supports all the record syntaxes that currently
+      are registered. See
+      <ulink
+       url="http://www.loc.gov/z3950/agency/defns/oids.html#5">
+       Z39.50 Record Syntax Identifiers
+      </ulink>
+      for more details. Commonly used records syntaxes include usmarc,
+      sutrs and xml.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry><term>
+     <literal>elements</literal> <replaceable>e</replaceable>
+    </term>
+    <listitem>
+     <para>Sets the element set name for the records. Many targets support
+      element sets are B (for brief) and F (for full).
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry><term>
+     <literal>close</literal>
+    </term>
+    <listitem>
+     <para>Sends a Z39.50 Close APDU and closes connection with the peer
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry id="command-querytype"><term>
+     <literal>querytype</literal> <replaceable>type</replaceable>
+    </term>
+    <listitem>
+     <para>Sets the query type as used by command
+      <link linkend="command-find"><literal>find</literal></link>.
+      The following is supported:
+      <literal>prefix</literal> for
+      <link linkend="PQF">Prefix Query Notation</link> (Type-1 Query);
+      <literal>ccl</literal> for CCL search (Type-2 Query),
+      <literal>cql</literal> for CQL (Type-104 search with CQL OID),
+      <literal>ccl2rpn</literal> for
+      <link linkend="CCL">CCL</link> to RPN conversion (Type-1 Query).
+      <literal>cql2rpn</literal> for
+      CQL to RPN conversion (Type-1 Query).
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry><term>
+     <literal>attributeset</literal> <replaceable>set</replaceable>
+    </term>
+    <listitem>
+     <para>
+      Sets attribute set OID for prefix queries (RPN, Type-1).
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry><term>
+     <literal>refid</literal> <replaceable>id</replaceable>
+    </term>
+    <listitem>
+     <para>Sets reference ID for Z39.50 Request(s).
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry><term>
+     <literal>itemorder</literal>
+     <replaceable>type</replaceable> <replaceable>no</replaceable>
+    </term>
+    <listitem>
+     <para>Sends an Item Order Request using the ILL External.
+      <replaceable>type</replaceable> is either 1 or 2 which corresponds to
+      ILL-Profile 1 and 2 respectively. The <replaceable>no</replaceable>
+      is the Result Set position of the record to be ordered.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry><term>
+     <literal>update</literal>
+     <replaceable>action</replaceable>
+     <replaceable>recid</replaceable>
+     <replaceable>doc</replaceable>
+    </term>
+    <listitem>
+     <para>Sends Item Update Request. The <replaceable>action</replaceable>
+      argument must be the action type: one of <literal>insert</literal>,
+      <literal>replace</literal>, <literal>delete</literal> and
+      <literal>update</literal>. The second argument,
+      <replaceable>recid</replaceable>, is the
+      record identifier (any string). Third argument which is optional is
+      the record document for the request. If doc is preceded with
+      "&lt;", then the following characters are treated as a filename
+      with the records to be updated. Otherwise doc is treated as
+      a document itself. The doc may also be quited in double quotes.
+      If doc is omitted, the last received record (as part of present
+      response or piggybacked search response) is used for the update.
+     </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry><term>
+     <literal>source</literal>
+     <replaceable>filename</replaceable>
+    </term>
+    <listitem>
+     <para>Executes list of commands from
+      file <replaceable>filename</replaceable>, just like source on
+      most UNIX shells. A single dot (<literal>.</literal>) can be used
+      as an alternative.
+     </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry><term>
+     <literal>!</literal>
+     <replaceable>args</replaceable>
+    </term>
+    <listitem>
+     <para>Executes command <replaceable>args</replaceable> in subshell
+      using the <literal>system</literal> call.
+     </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry><term>
+     <literal>push_command</literal>
+     <replaceable>command</replaceable>
+    </term>
+    <listitem>
+     <para>The push_command takes another command as its argument.
+      That command is then added to the history information (so
+      you can retrieve it later). The command itself is not
+      executed. This command only works if you have GNU readline/history
+      enabled.
+     </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry><term>
+     <literal>set_apdufile</literal>
+     <replaceable>filename</replaceable>
+    </term>
+    <listitem>
+     <para>Sets that APDU should be logged to file
+      <replaceable>filename</replaceable>. Another way to achieve
+      APDU log is by using command-line option <literal>-a</literal>.
+     </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry><term>
+     <literal>set_auto_reconnect</literal>
+     <replaceable>flag</replaceable>
+    </term>
+    <listitem>
+     <para>Specifies whether YAZ client automatically reconnect if
+      target closes connection (Z39.50 only).
+     </para>
+     <para>
+      <replaceable>flag</replaceable> must be either
+      <literal>on</literal> or <literal>off</literal>.
+     </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry id="command-set-auto-wait"><term>
+     <literal>set_auto_wait</literal>
+     <replaceable>flag</replaceable>
+    </term>
+    <listitem>
+     <para>Specifies whether YAZ client should wait for
+      response protocol packages after a request.
+      By default YAZ client waits (on) for response packages immediately
+      after a command (find, show) has been issued. If <literal>off</literal>
+      is used, YAZ client does not attempt to receive packages automatically.
+      These will have to be manually received when command
+      <link linkend="command-wait-response">
+       <literal>wait_response</literal>
+      </link> is used.
+     </para>
+     <para>
+      <replaceable>flag</replaceable> must be either
+      <literal>on</literal> or <literal>off</literal>.
+     </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry><term>
+     <literal>set_marcdump</literal>
+     <replaceable>filename</replaceable>
+    </term>
+    <listitem>
+     <para>Specifies that all retrieved records should be appended to
+      file <replaceable>filename</replaceable>. This command does the
+      thing as option <literal>-m</literal>.
+     </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry><term>
+     <literal>schema</literal>
+     <replaceable>schemaid</replaceable>
+    </term>
+    <listitem>
+     <para>Specifies schema for retrieval.
+      Schema may be specified as an OID for Z39.50.
+      For SRU, schema is a simple string URI.
+     </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry id="command-charset"><term>
+     <literal>charset</literal>
+     <replaceable>negotiationcharset</replaceable>
+     [<replaceable>displaycharset</replaceable>]
+     [[<replaceable>marccharset</replaceable>]]
+    </term>
+    <listitem>
+     <para>Specifies character set (encoding) for Z39.50
+      negotiation / SRU encoding and/or character set for output (terminal).
+     </para>
+     <para>
+      <replaceable>negotiationcharset</replaceable> is the name
+      of the character set to be negotiated by the server. The special name
+      <literal>-</literal> for <replaceable>negotiationcharset</replaceable>
+      specifies <emphasis>no</emphasis> character set to be negotiated.
+     </para>
+     <para>
+      If <replaceable>displaycharset</replaceable> is given, it specifies name
+      of the character set of the output (on the terminal on which
+      YAZ client is running). To disable conversion of characters
+      to the output encoding, the special name <literal>-</literal> (dash)
+      can be used.
+      If the special name <literal>auto</literal> is given, YAZ client will
+      convert strings to the encoding of the
+      terminal as returned by <function>nl_langinfo</function> call.
+     </para>
+     <para>
+      If <replaceable>marcharset</replaceable> is given, it specifies name
+      of the character set of retrieved MARC records from server. See
+      also <literal>marcharset</literal> command.
+     </para>
+     <note>
+      <para>
+       Since character set negotiation takes effect in the Z39.50
+       Initialize Request you should issue this command before
+       command <link linkend="command-open"><literal>open</literal></link>
+       is used.
+      </para>
+     </note>
+     <note>
+      <para>
+       MARC records are not covered by Z39.50 character set negotiation,
+       so that's why there is a separate character that must be known
+       in order to do meaningful conversion(s).
+      </para>
+     </note>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry><term>
+     <literal>negcharset</literal>
+     <replaceable>charset</replaceable>
+    </term>
+    <listitem>
+     <para>Specifies character set for negotiation (Z39.50). The
+      argument is the same as second argument for command
+      <link linkend="command-charset"><literal>charset</literal></link>.
+     </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry><term>
+     <literal>displaycharset</literal>
+     <replaceable>charset</replaceable>
+    </term>
+    <listitem>
+     <para>Specifies character set for output (display). The
+      argument is the same as second argument for command
+      <link linkend="command-charset"><literal>charset</literal></link>.
+     </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry><term>
+     <literal>marccharset</literal>
+     <replaceable>charset</replaceable>
+    </term>
+    <listitem>
+     <para>Specifies character set for retrieved MARC records so
+      that YAZ client can display them in a character suitable
+      for your display. See <literal>charset</literal> command.
+      If <literal>auto</literal> is given, YAZ will assume
+      that MARC21/USMARC is using MARC8/UTF8 and ISO-8859-1
+      for all other MARC variants. The charset argument is the
+      same as third argument for command
+      <link linkend="command-charset"><literal>charset</literal></link>.
+     </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry><term>
+     <literal>querycharset</literal>
+     <replaceable>charset</replaceable>
+    </term>
+    <listitem>
+     <para>Specifies character set for query terms for Z39.50 RPN
+      queries and Z39.50 Scan Requests (termListAndStartPoint).
+      This is a pure client-side conversion which converts from
+      displayCharset to queryCharset.
+     </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry><term>
+     <literal>set_cclfile</literal>
+     <replaceable>filename</replaceable>
+    </term>
+    <listitem>
+     <para>Specifies that CCL fields should be read from file
+      file <replaceable>filename</replaceable>. This command does the
+      thing as option <literal>-c</literal>.
+     </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry><term>
+     <literal>set_cqlfile</literal>
+     <replaceable>filename</replaceable>
+    </term>
+    <listitem>
+     <para>Specifies that CQL fields should be read from file
+      file <replaceable>filename</replaceable>. This command does the
+      thing as option <literal>-q</literal>.
+     </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry><term>
+     <literal>register_oid</literal>
+     <replaceable>name</replaceable>
+     <replaceable>class</replaceable>
+     <replaceable>OID</replaceable>
+    </term>
+    <listitem>
+     <para>This command allows you to register your own object
+      identifier - so that instead of entering a long dot-notation
+      you can use a short name instead.
+      The <replaceable>name</replaceable> is your
+      name for the OID, <replaceable>class</replaceable> is the
+      class, and <replaceable>OID</replaceable> is the raw OID in
+      dot notation. Class is one <literal>appctx</literal>,
+      <literal>absyn</literal>, <literal>attet</literal>,
+      <literal>transyn</literal>, <literal>diagset</literal>,
+      <literal>recsyn</literal>, <literal>resform</literal>,
+      <literal>accform</literal>, <literal>extserv</literal>,
+      <literal>userinfo</literal>, <literal>elemspec</literal>,
+      <literal>varset</literal>, <literal>schema</literal>,
+      <literal>tagset</literal>, <literal>general</literal>.
+      If you're in doubt use the <literal>general</literal>
+      class.
+     </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry><term>
+     <literal>register_tab</literal>
+     <replaceable>command</replaceable>
+     <replaceable>string</replaceable>
+    </term>
+    <listitem>
+     <para>This command registers a TAB completion string for
+      the command given.
+     </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry><term>
+     <literal>sleep</literal>
+     <replaceable>seconds</replaceable>
+    </term>
+    <listitem>
+     <para>This command makes YAZ client sleep (be idle) for
+      the number of seconds given.
+     </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry id="command-wait-response"><term>
+     <literal>wait_response</literal>
+     [ <replaceable>number</replaceable>]
+    </term>
+    <listitem>
+     <para>This command makes YAZ client wait for a number of
+      response packages from target. If <replaceable>number</replaceable> is
+      omitted, 1 is assumed.
+     </para>
+     <para>This command is rarely used and is only useful if command
+      <link linkend="command-set-auto-wait">
+       <literal>set_auto_wait</literal>
+      </link> is set to off.
+     </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry id="command-xmles"><term>
+     <literal>xmles</literal>
+     <replaceable>OID</replaceable>
+     <replaceable>doc</replaceable>
+    </term>
+    <listitem>
+     <para>Sends XML Extended Services request using the OID and doc given.
+     </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry><term>
+     <literal>zversion</literal>
+     <replaceable>ver</replaceable>
+    </term>
+    <listitem>
+     <para>This command sets Z39.50 version for negotiation.
+      Should be used before
+      <link linkend="command-open"><literal>open</literal></link>.
+      By default 3 (version 3) is used.
+     </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry><term>
+     <literal>options</literal>
+     <replaceable>op1 op2..</replaceable>
+    </term>
+    <listitem>
+     <para>This command sets Z39.50 options for negotiation.
+      Should be used before
+      <link linkend="command-open"><literal>open</literal></link>.
+     </para>
+     <para>
+      The following options are supported:
+      <literal>search</literal>,
+      <literal>present</literal>,
+      <literal>delSet</literal>,
+      <literal>resourceReport</literal>,
+      <literal>triggerResourceCtrl</literal>,
+      <literal>resourceCtrl</literal>,
+      <literal>accessCtrl</literal>,
+      <literal>scan</literal>,
+      <literal>sort</literal>,
+      <literal>extendedServices</literal>,
+      <literal>level_1Segmentation</literal>,
+      <literal>level_2Segmentation</literal>,
+      <literal>concurrentOperations</literal>,
+      <literal>namedResultSets</literal>,
+      <literal>encapsulation</literal>,
+      <literal>resultCount</literal>,
+      <literal>negotiationModel</literal>,
+      <literal>duplicationDetection</literal>,
+      <literal>queryType104</literal>,
+      <literal>pQESCorrection</literal>,
+      <literal>stringSchema</literal>.
+     </para>
+    </listitem>
+   </varlistentry>
+
+  </variablelist>
+ </refsect1>
+ <refsect1><title>EXAMPLE</title>
+  <para>
+   The simplest example of a Prefix Query would be something like
+   <screen>
+    f knuth
+   </screen>
+   or
+   <screen>
+    f "donald knuth"
+   </screen>
+   In those queries no attributes was specified.
+   This leaves it up to the server what fields to search but
+   most servers will search in all fields. Some servers does not
+   support this feature though, and require that some attributes
+   are defined. To add one attribute you could do:
+   <screen>
+    f @attr 1=4 computer
+   </screen>
+   where we search in the title field, since the use(1) is title(4).
+   If we want to search in the author field <emphasis>and</emphasis>
+   in the title field, and in the title field using right truncation
+   it could look something like this:
+   <screen>
+    f @and @attr 1=1003 knuth @attr 1=4 @attr 5=1 computer
+   </screen>
+   Finally using a mix of Bib-1 and GILS attributes could look
+   something like this:
+   <screen>
+    f @attrset Bib-1 @and @attr GILS 1=2008 Washington @attr 1=21 weather
+   </screen>
+  </para>
+ </refsect1>
+ <refsect1><title>FILES</title>
+  <para>
+   <filename>yaz-&lt;version&gt;/client/client.c</filename>
+  </para>
+  <para>
+   <filename>$HOME/.yazclientrc</filename>
+  </para>
+  <para>
+   <filename>$HOME/.yazclient.history</filename>
+  </para>
+ </refsect1>
+ <refsect1><title>SEE ALSO</title>
+  <para>
+   <citerefentry>
+    <refentrytitle>yaz</refentrytitle>
+    <manvolnum>7</manvolnum>
+   </citerefentry>
+   <citerefentry>
+    <refentrytitle>bib1-attr</refentrytitle>
+    <manvolnum>7</manvolnum>
+   </citerefentry>
+  </para>
+ </refsect1>
 </refentry>
 
 <!-- Keep this comment at the end of the file