Reindent
[yaz-moved-to-github.git] / doc / zoom.xml
index 80ae27d..ac9eadb 100644 (file)
@@ -17,10 +17,9 @@ ZOOM_options_setl(opt, name, value, len)
 ZOOM_options_get_bool(opt, name, defa)
 ZOOM_options_get_int(opt, name, defa)
 ZOOM_options_set_int(opt, name, value)
-ZOOM_connection_scan1 (ZOOM_connection c, ZOOM_query startterm)
+ZOOM_connection_scan1(ZOOM_connection c, ZOOM_query startterm)
 ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
 -->
-<!-- $Id: zoom.xml,v 1.58 2007-05-31 07:38:14 adam Exp $ -->
  <chapter id="zoom"><title>ZOOM</title>
   <para>
     &zoom; is an acronym for 'Z39.50 Object-Orientation Model' and is
@@ -96,7 +95,7 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
     
     void ZOOM_connection_connect(ZOOM_connection c, const char *host,
                                  int portnum);
-    void ZOOM_connection_destroy (ZOOM_connection c);
+    void ZOOM_connection_destroy(ZOOM_connection c);
    </synopsis>
    <para>
     Connection objects are created with either function
@@ -124,7 +123,7 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
     <literal><parameter>key</parameter>=<parameter>value</parameter></literal>
     sequences, each of which represents an option to be set into the
     connection structure <emphasis>before</emphasis> the
-    protocol-level connection is forged and the initialisation
+    protocol-level connection is forged and the initialization
     handshake takes place.  This facility can be used to provide
     authentication credentials, as in host-strings such as:
     <literal>user=admin,password=halfAm4n,tcp:localhost:8017/db</literal>
@@ -267,6 +266,19 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
        discover whether the server claims to support the specified
        operations.
        </entry><entry>none</entry></row>
+      <row><entry>
+        sru</entry><entry>
+       SRU transport type. Must be either <literal>soap</literal>,
+       <literal>get</literal> or <literal>post</literal>.
+       </entry><entry>soap</entry></row>
+      <row><entry>
+        sru_version</entry><entry>
+       SRU/SRW version. Should be <literal>1.1</literal>, or
+       <literal>1.2</literal>. This is , prior to connect, the version
+       to offer (highest version). And following connect (in fact
+       first operation), holds the negotiated version with the server
+       (same or lower version).
+       </entry><entry>1.2</entry></row>
      </tbody>
     </tgroup>
    </table>
@@ -277,10 +289,10 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
      Character Set and Language Negotiation</ulink> is in effect.
    </para>
    <synopsis>
-     int ZOOM_connection_error (ZOOM_connection c, const char **cp,
-                                const char **addinfo);
-     int ZOOM_connection_error_x (ZOOM_connection c, const char **cp,
-                                  const char **addinfo, const char **dset);
+     int ZOOM_connection_error(ZOOM_connection c, const char **cp,
+                               const char **addinfo);
+     int ZOOM_connection_error_x(ZOOM_connection c, const char **cp,
+                                 const char **addinfo, const char **dset);
    </synopsis>
    <para>
     Function <function>ZOOM_connection_error</function> checks for
@@ -394,17 +406,15 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
     a target.
    </para>
    <synopsis>
-     ZOOM_resultset ZOOM_connection_search(ZOOM_connection,
-                                           ZOOM_query q);
+     ZOOM_resultset ZOOM_connection_search(ZOOM_connection, ZOOM_query q);
 
      ZOOM_resultset ZOOM_connection_search_pqf(ZOOM_connection c,
                                                const char *q);
-
      void ZOOM_resultset_destroy(ZOOM_resultset r);
    </synopsis>
    <para>
     Function <function>ZOOM_connection_search</function> creates
-     a result set given a connection and query.
+    a result set given a connection and query.
     Destroy a result set by calling
     <function>ZOOM_resultset_destroy</function>.
     Simple clients may using PQF only may use function
@@ -412,14 +422,12 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
     creating query objects is not necessary.
    </para>
    <synopsis>
-     void ZOOM_resultset_option_set (ZOOM_resultset r,
-                                      const char *key,
-                                      const char *val);
+     void ZOOM_resultset_option_set(ZOOM_resultset r,
+                                    const char *key, const char *val);
 
-     const char *ZOOM_resultset_option_get (ZOOM_resultset r,
-                                             const char *key);
+     const char *ZOOM_resultset_option_get(ZOOM_resultset r, const char *key);
 
-     size_t ZOOM_resultset_size (ZOOM_resultset r);
+     size_t ZOOM_resultset_size(ZOOM_resultset r);
    </synopsis>
    <para>
     Functions <function>ZOOM_resultset_options_set</function> and
@@ -449,13 +457,21 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
         start</entry><entry>Offset of first record to be 
         retrieved from target. First record has offset 0 unlike the
         protocol specifications where first record has position 1.
+       This option affects ZOOM_resultset_search and
+       ZOOM_resultset_search_pqf and must be set before any of
+       these functions are invoked. If a range of
+       records must be fetched manually after search,
+       function ZOOM_resultset_records should be used.
        </entry><entry>0</entry></row>
       <row><entry>
-        count</entry><entry>Number of records to be retrieved.
+        count</entry><entry>Number of records to be retrieved. 
+       This option affects ZOOM_resultset_search and
+       ZOOM_resultset_search_pqf and must be set before any of
+       these functions are invoked.
        </entry><entry>0</entry></row>
       <row><entry>
        presentChunk</entry><entry>The number of records to be
-       requested from the server in each chunk (present requst).  The
+       requested from the server in each chunk (present request). The
        value 0 means to request all the records in a single chunk.
        (The old <literal>step</literal>
        option is also supported for the benefit of old applications.)
@@ -660,9 +676,9 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
      int ZOOM_record_error(ZOOM_record rec, const char **msg,
                            const char **addinfo, const char **diagset);
 
-     ZOOM_record ZOOM_record_clone (ZOOM_record rec);
+     ZOOM_record ZOOM_record_clone(ZOOM_record rec);
 
-     void ZOOM_record_destroy (ZOOM_record rec);
+     void ZOOM_record_destroy(ZOOM_record rec);
    </synopsis>
    <para>
     References to temporary records are returned by functions 
@@ -744,6 +760,12 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
         <literal>const char *</literal>. 
        </para></listitem>
      </varlistentry>
+     <varlistentry><term><literal>schema</literal></term>
+      <listitem><para>The schema of the record is returned
+        as a C null-terminated string. Return type is
+        <literal>const char *</literal>. 
+       </para></listitem>
+     </varlistentry>
      <varlistentry><term><literal>render</literal></term>
       <listitem><para>The record is returned in a display friendly
         format. Upon completion buffer is returned
@@ -831,14 +853,16 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
    </para>
 
    <para>
-    The Scan interface is Z39.50 only. SRW version 1.0 does not
-    support this.
+    The Scan interface is supported for both Z39.50 and SRU.
    </para>
 
    <synopsis>
     ZOOM_scanset ZOOM_connection_scan(ZOOM_connection c,
                                       const char *startpqf);
 
+    ZOOM_scanset ZOOM_connection_scan1(ZOOM_connection c,
+                                       ZOOM_query q);
+
     size_t ZOOM_scanset_size(ZOOM_scanset scan);
 
     const char * ZOOM_scanset_term(ZOOM_scanset scan, size_t pos,
@@ -847,10 +871,10 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
     const char * ZOOM_scanset_display_term(ZOOM_scanset scan, size_t pos,
                                            int *occ, size_t *len);
 
-    void ZOOM_scanset_destroy (ZOOM_scanset scan);
+    void ZOOM_scanset_destroy(ZOOM_scanset scan);
 
     const char *ZOOM_scanset_option_get(ZOOM_scanset scan,
-                                         const char *key);
+                                        const char *key);
 
     void ZOOM_scanset_option_set(ZOOM_scanset scan, const char *key,
                                  const char *val);
@@ -894,6 +918,12 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
      @attr 1=4 @attr 6=2 "science o"
     </literallayout>
    </para>
+
+   <para>
+    The <function>ZOOM_connecton_scan1</function> is a newer and
+    more generic alternative to <function>ZOOM_connection_scan</function>
+    which allows to use both CQL and PQF for Scan.
+   </para>
    
    <table frame="top" id="zoom.scanset.options">
     <title>ZOOM Scan Set Options</title>
@@ -1049,10 +1079,19 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
        <entry><literal>create</literal></entry>
       </row>
       <row>
+       <entry>waitAction</entry>
+       <entry>
+       Wait action for package. Possible values:
+       <literal>wait</literal>, <literal>waitIfPossible</literal>,
+       <literal>dontWait</literal> or <literal>dontReturnPackage</literal>.
+       </entry>
+       <entry><literal>waitIfPossible</literal></entry>
+      </row>
+      <row>
        <entry>targetReference</entry>
        <entry>
        Target Reference. This is part of the response as returned
-       by the server. Read it after a succesful operation.
+       by the server. Read it after a successful operation.
        </entry>
        <entry><literal>none</literal></entry>
       </row>
@@ -1136,7 +1175,7 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
         <literal>recordDelete</literal>,
         <literal>elementUpdate</literal>.
        </entry>
-       <entry><literal>specialUpdate</literal></entry>
+       <entry><literal>specialUpdate (recordInsert for updateVersion=1 which does not support specialUpdate)</literal></entry>
        </row>
        <row>
        <entry>recordIdOpaque</entry>
@@ -1154,6 +1193,19 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
        <entry>none</entry>
        </row>
        <row>
+       <entry>recordOpaque</entry>
+       <entry>Specifies an opaque record which is
+         encoded as an ASN.1 ANY type with the OID as tiven by option
+         <literal>syntax</literal> (see below).
+         Option <literal>recordOpaque</literal> is an alternative
+         to record - and <literal>record</literal> option (above) is
+         ignored if recordOpaque is set. This option is only available in 
+         YAZ 3.0.35 and later and is meant to facilitate Updates with
+         servers from OCLC.
+       </entry>
+       <entry>none</entry>
+       </row>
+       <row>
        <entry>syntax</entry>
        <entry>The record syntax (transfer syntax). Is a string that
         is a known record syntax.
@@ -1168,12 +1220,31 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
        <row>
        <entry>correlationInfo.note</entry>
        <entry>Correlation Info Note (string)</entry>
-       <entry>none (omitted)</entry>
+       <entry>none</entry>
        </row>
        <row>
        <entry>correlationInfo.id</entry>
        <entry>Correlation Info ID (integer)</entry>
-       <entry>none (omitted)</entry>
+       <entry>none</entry>
+       </row>
+       <row>
+       <entry>elementSetName</entry>
+       <entry>Element Set for Record</entry>
+       <entry>none</entry>
+       </row>
+       <row>
+       <entry>updateVersion</entry>
+       <entry>Record Update version which holds one of the values
+        1, 2 or 3. Each version has a distinct OID:
+        1.2.840.10003.9.5
+        (<ulink url="&url.z39.50.extupdate1;">first version</ulink>) ,
+        1.2.840.10003.9.5.1 
+        (second version) and 
+        1.2.840.10003.9.5.1.1 
+        (<ulink url="&url.z39.50.extupdate3;">third and
+         newest version</ulink>).
+       </entry>
+       <entry>3</entry>
        </row>
       </tbody>
      </tgroup>
@@ -1271,26 +1342,26 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
     an associative array / hash.
    </para>
    <synopsis>
-     ZOOM_options ZOOM_options_create (void);
+     ZOOM_options ZOOM_options_create(void);
 
-     ZOOM_options ZOOM_options_create_with_parent (ZOOM_options parent);
+     ZOOM_options ZOOM_options_create_with_parent(ZOOM_options parent);
 
-     void ZOOM_options_destroy (ZOOM_options opt);
+     void ZOOM_options_destroy(ZOOM_options opt);
    </synopsis>
    <synopsis>
-     const char *ZOOM_options_get (ZOOM_options opt, const char *name);
+     const char *ZOOM_options_get(ZOOM_options opt, const char *name);
 
-     void ZOOM_options_set (ZOOM_options opt, const char *name,
-                            const char *v);
+     void ZOOM_options_set(ZOOM_options opt, const char *name,
+                           const char *v);
    </synopsis>
    <synopsis>
      typedef const char *(*ZOOM_options_callback)
-                                     (void *handle, const char *name);
+                            (void *handle, const char *name);
 
      ZOOM_options_callback
-             ZOOM_options_set_callback (ZOOM_options opt,
-                                        ZOOM_options_callback c,
-                                        void *handle);
+             ZOOM_options_set_callback(ZOOM_options opt,
+                                       ZOOM_options_callback c,
+                                       void *handle);
    </synopsis>
   </sect1>
   <sect1 id="zoom.events"><title>Events</title>
@@ -1299,7 +1370,7 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
     with events.
    </para>
    <synopsis>
-    int ZOOM_event (int no, ZOOM_connection *cs);
+    int ZOOM_event(int no, ZOOM_connection *cs);
    </synopsis>
    <para>
     The <function>ZOOM_event</function> executes pending events for