Renamed ASN.1 Module to Z39.50 ASN.1 module.
[yaz-moved-to-github.git] / doc / asn.xml
index e126267..cf8cbb7 100644 (file)
@@ -1,9 +1,9 @@
-<!-- $Id: asn.xml,v 1.4 2001-07-19 23:29:40 adam Exp $ -->
- <chapter><title>The ASN Module</title>
-  <sect1><title>Introduction</title>
+<!-- $Id: asn.xml,v 1.11 2001-10-25 11:55:56 adam Exp $ -->
+ <chapter id="asn"><title>The Z39.50 ASN.1 Module</title>
+  <sect1 id="asn.introduction"><title>Introduction</title>
    <para>
     The &asn; module provides you with a set of C struct definitions for the
-    various PDUs of the protocol, as well as for the complex types
+    various PDUs of the Z39.50 protocol, as well as for the complex types
     appearing within the PDUs. For the primitive data types, the C
     representation often takes the form of an ordinary C language type,
     such as <literal>int</literal>. For ASN.1 constructs that have no direct
     the &odr; module (see section <link linkend="odr">The ODR Module</link>)
     provides auxiliary definitions.
    </para>
+   <para>
+    The &asn; module is located in sub directory <filename>z39.50</filename>.
+    There you'll find C files that implements encoders and decoders for the
+    Z39.50 types. You'll also find the protocol definitions:
+    <filename>z3950v3.asn</filename>, <filename>esupdate.asn</filename>, 
+    and others.
+   </para>
   </sect1>
-  <sect1><title>Preparing PDUs</title>
-
+  <sect1 id="asn.preparing"><title>Preparing PDUs</title>
+   
    <para>
     A structure representing a complex ASN.1 type doesn't in itself contain the
     members of that type. Instead, the structure contains
@@ -31,7 +38,7 @@
     taste, there are at least three different approaches that you may take
     when you allocate the structures.
    </para>
-
+   
    <para>
     You can use static or automatic local variables in the function that
     prepares the PDU. This is a simple approach, and it provides the most
@@ -66,7 +73,7 @@
     some of its elements, while you leave other elements pointing to global
     or per-session default variables.
    </para>
-
+   
    <para>
     The &asn; module provides an important aid in creating new PDUs. For
     each of the PDU types (say, <function>Z_InitRequest</function>), a
     individual types).
    </para>
    <para>
-    The prototype for the individual PDU types generally look like this:
+   The prototype for the individual PDU types generally look like this:
    </para>
    <synopsis>
     Z_&lt;type> *zget_&lt;type>(ODR o);
    </synopsis>
-
+   
    <para>
     eg.:
    </para>
-
+   
    <synopsis>
     Z_InitRequest *zget_InitRequest(ODR o);
    </synopsis>
 
    <para>
-    The &odr; handle should generally be your encoding stream, but it needn't be.
+   The &odr; handle should generally be your encoding stream, but it
+    needn't be.
    </para>
    <para>
-    As well as the individual PDU functions, a function <function>
-     zget_APDU()</function> is
-    provided, which allocates a toplevel Z-APDU of the type requested:
+   As well as the individual PDU functions, a function
+    <function>zget_APDU()</function> is provided, which allocates
+    a top-level Z-APDU of the type requested:
    </para>
-
+   
    <synopsis>
     Z_APDU *zget_APDU(ODR o, int which);
    </synopsis>
-
+   
    <para>
     The <varname>which</varname> parameter is (of course) the discriminator
     belonging to the <varname>Z_APDU</varname> <literal>CHOICE</literal> type.
     All of the interface described here is provided by the &asn; module, and
     you access it through the <filename>proto.h</filename> header file.
-
+    
    </para>
   </sect1>
-  <sect1><title id="oid">Object Identifiers</title>
-   <para>
+  <sect1 id="asn.oid"><title id="oid">Object Identifiers</title>
+  <para>
     When you refer to object identifiers in your application, you need to
     be aware that SR and Z39.50 use two different set of OIDs to refer to
     the same objects. To handle this easily, &yaz; provides a utility module
     to &asn; which provides an internal representation of the OIDs used in
     both protocols. Each oid is described by a structure:
    </para>
-
+   
    <screen>
 typedef struct oident
 {
@@ -143,7 +151,7 @@ typedef struct oident
     char *desc;
 } oident;
    </screen>
-
+   
    <para>
     The <literal>proto</literal> field can be set to either
     <literal>PROTO_SR</literal> or <literal>PROTO_Z3950</literal>.
@@ -151,12 +159,12 @@ typedef struct oident
     <literal>CLASS_RECSYN</literal>, and the <literal>value</literal> might be
     <literal>VAL_USMARC</literal> for the USMARC record format. Functions
    </para>
-
+   
    <screen>
 int *oid_ent_to_oid(struct oident *ent, int *dst);
 struct oident *oid_getentbyoid(int *o);
    </screen>
-
+   
    <para>
     are provided to map between object identifiers and database entries.
     If you store a member of the <literal>oid_proto</literal> type in
@@ -167,15 +175,15 @@ struct oident *oid_getentbyoid(int *o);
     The <literal>desc</literal> field is a short, human-readable name
     for the PDU, useful mainly for diagnostic output.
    </para>
-
+   
    <note>
     <para>
-     The old function <function>oid_getoidbyent</function> still exists but is
-     not thread safe. Use <function>oid_ent_to_oid</function> instead
+     The old function <function>oid_getoidbyent</function> still exists but
+     is not thread safe. Use <function>oid_ent_to_oid</function> instead
      and pass an array of size <literal>OID_SIZE</literal>.
     </para>
    </note>
-
+   
    <note>
     <para>
      Plans are underway to merge the two protocols into a single
@@ -184,20 +192,20 @@ struct oident *oid_getentbyoid(int *o);
      independence, but it should still be useful as a simple OID database.
     </para>
    </note>
-
+  
   </sect1>
-  <sect1><title>EXTERNAL Data</title>
-
+  <sect1 id="asn.external"><title>EXTERNAL Data</title>
+   
    <para>
     In order to achieve extensibility and adaptability to different
     application domains, the new version of the protocol defines many
     structures outside of the main ASN.1 specification, referencing them
-    through ASN.1 EXTERNAL constructs. To simplify the construction and access
-    to the externally referenced data, the &asn; module defines a
+    through ASN.1 EXTERNAL constructs. To simplify the construction and
+    access to the externally referenced data, the &asn; module defines a
     specialized version of the EXTERNAL construct, called
     <literal>Z_External</literal>.It is defined thus:
    </para>
-
+   
    <screen>
 typedef struct Z_External
 {
@@ -238,7 +246,7 @@ typedef struct Z_External
     } u;
 } Z_External;
    </screen>
-
+   
    <para>
     When decoding, the &asn; module will attempt to determine which
     syntax describes the data by looking at the reference fields
@@ -252,7 +260,7 @@ typedef struct Z_External
     For non-ASN.1 data such as MARC records, use the
     <literal>octet_aligned</literal> arm of the union.
    </para>
-
+   
    <para>
     Some servers return ASN.1 structured data values (eg. database
     records) as BER-encoded records placed in the
@@ -261,9 +269,9 @@ typedef struct Z_External
     these records. To help you decode the records in the application, the
     function
    </para>
-
+   
    <screen>
-    Z_ext_typeent *z_ext_gettypebyref(oid_value ref);
+   Z_ext_typeent *z_ext_gettypebyref(oid_value ref);
    </screen>
 
    <para>
@@ -273,7 +281,7 @@ typedef struct Z_External
     <literal>Z_ext_typeent</literal>
     is defined as:
    </para>
-
+  
    <screen>
 typedef struct Z_ext_typeent
 {
@@ -282,7 +290,7 @@ typedef struct Z_ext_typeent
     Odr_fun fun;       /* decoder function */
 } Z_ext_typeent;
    </screen>
-
+   
    <para>
     The <literal>what</literal> member contains the
     <literal>Z_External</literal> union discriminator value for the
@@ -293,7 +301,7 @@ typedef struct Z_ext_typeent
     record syntax, the value of <literal>fun</literal> would be
     <literal>z_SUTRS</literal> (a function pointer).
    </para>
-
+   
    <para>
     If you receive an EXTERNAL which contains an octet-string value that
     you suspect of being an ASN.1-structured data value, you can use
@@ -303,7 +311,7 @@ typedef struct Z_ext_typeent
     function to decode the BER string (see section <link linkend="odr-use">
      Using ODR</link>).
    </para>
-
+   
    <para>
     If you want to <emphasis>send</emphasis> EXTERNALs containing
     ASN.1-structured values in the occtet-aligned branch of the CHOICE, this
@@ -314,12 +322,13 @@ typedef struct Z_ext_typeent
     If you need to add new, externally defined data types, you must update
     the struct above, in the source file <filename>prt-ext.h</filename>, as
     well as the encoder/decoder in the file <filename>prt-ext.c</filename>.
-    When changing the latter, remember to update both the <literal>arm</literal>
-    arrary and the list <literal>type_table</literal>, which drives the CHOICE
-    biasing that is necessary to tell the different, structured types apart
+    When changing the latter, remember to update both the
+    <literal>arm</literal> arrary and the list
+    <literal>type_table</literal>, which drives the CHOICE biasing that
+    is necessary to tell the different, structured types apart
     on decoding.
    </para>
-
+   
    <note>
     <para>
      Eventually, the EXTERNAL processing will most likely
@@ -329,21 +338,72 @@ typedef struct Z_ext_typeent
      various modules.
     </para>
    </note>
-
+  
   </sect1>
-  <sect1><title>PDU Contents Table</title>
-
-   <para>
+  <sect1 id="asn.pdu"><title>PDU Contents Table</title>
+   
+  <para>
     We include, for reference, a listing of the fields of each top-level
     PDU, as well as their default settings.
    </para>
-
+   
    <table frame="top"><title>Default settings for PDU Initialize Request</title>
     <tgroup cols="3">
-     <colspec colname="field"></colspec>
-     <colspec colname="type"></colspec>
-     <colspec colname="value"></colspec>
-     <thead>
+     <colspec colwidth="7*" colname="field"></colspec>
+     <colspec colwidth="5*" colname="type"></colspec>
+     <colspec colwidth="7*" colname="value"></colspec>
+    <thead>
+     <row>
+      <entry>Field</entry>
+      <entry>Type</entry>
+      <entry>Default Value</entry>
+     </row>
+    </thead>
+    <tbody>
+     <row><entry>
+       referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
+      </entry></row>
+     <row><entry>
+       protocolVersion</entry><entry>Odr_bitmask</entry><entry>Empty bitmask
+      </entry></row>
+     <row><entry>
+       options</entry><entry>Odr_bitmask</entry><entry>Empty bitmask
+      </entry></row>
+     <row><entry>
+       preferredMessageSize</entry><entry>int</entry><entry>30*1024
+      </entry></row>
+     <row><entry>
+       maximumRecordSize</entry><entry>int</entry><entry>30*1024
+      </entry></row>
+     <row><entry>
+       idAuthentication</entry><entry>Z_IdAuthentication</entry><entry>NULL
+      </entry></row>
+     <row><entry>
+       implementationId</entry><entry>char*</entry><entry>"81"
+      </entry></row>
+     <row><entry>
+       implementationName</entry><entry>char*</entry><entry>"YAZ"
+      </entry></row>
+     <row><entry>
+       implementationVersion</entry><entry>char*</entry><entry>YAZ_VERSION
+      </entry></row>
+     <row><entry>
+       userInformationField</entry><entry>Z_UserInformation</entry><entry>NULL
+      </entry></row>
+     <row><entry>
+       otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
+      </entry></row>
+    </tbody>
+   </tgroup>
+  </table>
+
+  <table frame="top"><title>Default settings for PDU Initialize
+    Response</title>
+   <tgroup cols="3">
+     <colspec colwidth="7*" colname="field"></colspec>
+     <colspec colwidth="5*" colname="type"></colspec>
+     <colspec colwidth="7*" colname="value"></colspec>
+    <thead>
       <row>
        <entry>Field</entry>
        <entry>Type</entry>
@@ -351,60 +411,48 @@ typedef struct Z_ext_typeent
       </row>
      </thead>
      <tbody>
-
       <row><entry>
        referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
        </entry></row>
-
       <row><entry>
        protocolVersion</entry><entry>Odr_bitmask</entry><entry>Empty bitmask
        </entry></row>
-
       <row><entry>
        options</entry><entry>Odr_bitmask</entry><entry>Empty bitmask
        </entry></row>
-
       <row><entry>
        preferredMessageSize</entry><entry>int</entry><entry>30*1024
        </entry></row>
-
       <row><entry>
        maximumRecordSize</entry><entry>int</entry><entry>30*1024
        </entry></row>
-
       <row><entry>
-       idAuthentication</entry><entry>Z_IdAuthentication</entry><entry>NULL
+       result</entry><entry>bool_t</entry><entry>TRUE
        </entry></row>
-
       <row><entry>
-       implementationId</entry><entry>char*</entry><entry>"YAZ (id=81)"
+       implementationId</entry><entry>char*</entry><entry>"id)"
        </entry></row>
-
       <row><entry>
-       implementationName</entry><entry>char*</entry><entry>"Index Data/YAZ"
+       implementationName</entry><entry>char*</entry><entry>"YAZ"
        </entry></row>
-
       <row><entry>
        implementationVersion</entry><entry>char*</entry><entry>YAZ_VERSION
        </entry></row>
-
       <row><entry>
        userInformationField</entry><entry>Z_UserInformation</entry><entry>NULL
        </entry></row>
-
       <row><entry>
        otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
        </entry></row>
-
      </tbody>
     </tgroup>
    </table>
 
-   <table frame="top"><title>Default settings for PDU Initialize Response</title>
+   <table frame="top"><title>Default settings for PDU Search Request</title>
     <tgroup cols="3">
-     <colspec colname="field"></colspec>
-     <colspec colname="type"></colspec>
-     <colspec colname="value"></colspec>
+     <colspec colwidth="7*" colname="field"></colspec>
+     <colspec colwidth="5*" colname="type"></colspec>
+     <colspec colwidth="7*" colname="value"></colspec>
      <thead>
       <row>
        <entry>Field</entry>
@@ -413,60 +461,60 @@ typedef struct Z_ext_typeent
       </row>
      </thead>
      <tbody>
-
       <row><entry>
        referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
        </entry></row>
-
       <row><entry>
-       protocolVersion</entry><entry>Odr_bitmask</entry><entry>Empty bitmask
+       smallSetUpperBound</entry><entry>int</entry><entry>0
        </entry></row>
-
       <row><entry>
-       options</entry><entry>Odr_bitmask</entry><entry>Empty bitmask
+       largeSetLowerBound</entry><entry>int</entry><entry>1
        </entry></row>
-
       <row><entry>
-       preferredMessageSize</entry><entry>int</entry><entry>30*1024
+       mediumSetPresentNumber</entry><entry>int</entry><entry>0
        </entry></row>
-
       <row><entry>
-       maximumRecordSize</entry><entry>int</entry><entry>30*1024
+       replaceIndicator</entry><entry>bool_t</entry><entry>TRUE
        </entry></row>
-
       <row><entry>
-       result</entry><entry>bool_t</entry><entry>TRUE
+       resultSetName</entry><entry>char *</entry><entry>"default"
        </entry></row>
-
       <row><entry>
-       implementationId</entry><entry>char*</entry><entry>"YAZ (id=81)"
+       num_databaseNames</entry><entry>int</entry><entry>0
        </entry></row>
-
       <row><entry>
-       implementationName</entry><entry>char*</entry><entry>"Index Data/YAZ"
+       databaseNames</entry><entry>char **</entry><entry>NULL
        </entry></row>
-
       <row><entry>
-       implementationVersion</entry><entry>char*</entry><entry>YAZ_VERSION
+       smallSetElementSetNames</entry><entry>Z_ElementSetNames
+       </entry><entry>NULL
        </entry></row>
-
       <row><entry>
-       userInformationField</entry><entry>Z_UserInformation</entry><entry>NULL
+       mediumSetElementSetNames</entry><entry>Z_ElementSetNames
+       </entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       preferredRecordSyntax</entry><entry>Odr_oid</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       query</entry><entry>Z_Query</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       additionalSearchInfo</entry><entry>Z_OtherInformation
+       </entry><entry>NULL
        </entry></row>
-
       <row><entry>
        otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
        </entry></row>
-
      </tbody>
     </tgroup>
    </table>
 
-   <table frame="top"><title>Default settings for PDU Search Request</title>
+   <table frame="top"><title>Default settings for PDU Search Response</title>
     <tgroup cols="3">
-     <colspec colname="field"></colspec>
-     <colspec colname="type"></colspec>
-     <colspec colname="value"></colspec>
+     <colspec colwidth="7*" colname="field"></colspec>
+     <colspec colwidth="5*" colname="type"></colspec>
+     <colspec colwidth="7*" colname="value"></colspec>
      <thead>
       <row>
        <entry>Field</entry>
@@ -475,260 +523,536 @@ typedef struct Z_ext_typeent
       </row>
      </thead>
      <tbody>
-
+      
       <row><entry>
        referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
        </entry></row>
-
       <row><entry>
-       smallSetUpperBound</entry><entry>int</entry><entry>0
+       resultCount</entry><entry>int</entry><entry>0
        </entry></row>
-
       <row><entry>
-       largeSetLowerBound</entry><entry>int</entry><entry>1
+       numberOfRecordsReturned</entry><entry>int</entry><entry>0
        </entry></row>
-
       <row><entry>
-       mediumSetPresentNumber</entry><entry>int</entry><entry>0
+       nextResultSetPosition</entry><entry>int</entry><entry>0
        </entry></row>
-
       <row><entry>
-       replaceIndicator</entry><entry>bool_t</entry><entry>TRUE
+       searchStatus</entry><entry>bool_t</entry><entry>TRUE
        </entry></row>
-
       <row><entry>
-       resultSetName</entry><entry>char *</entry><entry>"default"
+       resultSetStatus</entry><entry>int</entry><entry>NULL
        </entry></row>
-
       <row><entry>
-       num_databaseNames</entry><entry>int</entry><entry>0
+       presentStatus</entry><entry>int</entry><entry>NULL
        </entry></row>
-
       <row><entry>
-       databaseNames</entry><entry>char **</entry><entry>NULL
+       records</entry><entry>Z_Records</entry><entry>NULL
        </entry></row>
-
       <row><entry>
-       smallSetElementSetNames</entry><entry>Z_ElementSetNames</entry><entry>NULL
+       additionalSearchInfo</entry>
+       <entry>Z_OtherInformation</entry><entry>NULL
        </entry></row>
-
       <row><entry>
-       mediumSetElementSetNames</entry><entry>Z_ElementSetNames</entry><entry>NULL
+       otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
        </entry></row>
+     </tbody>
+    </tgroup>
+   </table>
 
+   <table frame="top"><title>Default settings for PDU Present Request</title>
+    <tgroup cols="3">
+     <colspec colwidth="7*" colname="field"></colspec>
+     <colspec colwidth="5*" colname="type"></colspec>
+     <colspec colwidth="7*" colname="value"></colspec>
+     <thead>
+      <row>
+       <entry>Field</entry>
+       <entry>Type</entry>
+       <entry>Default Value</entry>
+      </row>
+     </thead>
+     <tbody>
+      <row><entry>
+       referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       resultSetId</entry><entry>char*</entry><entry>"default"
+       </entry></row>
+      <row><entry>
+       resultSetStartPoint</entry><entry>int</entry><entry>1
+       </entry></row>
+      <row><entry>
+       numberOfRecordsRequested</entry><entry>int</entry><entry>10
+       </entry></row>
+      <row><entry>
+       num_ranges</entry><entry>int</entry><entry>0
+       </entry></row>
+      <row><entry>
+       additionalRanges</entry><entry>Z_Range</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       recordComposition</entry><entry>Z_RecordComposition</entry><entry>NULL
+       </entry></row>
       <row><entry>
        preferredRecordSyntax</entry><entry>Odr_oid</entry><entry>NULL
        </entry></row>
-
       <row><entry>
-       query</entry><entry>Z_Query</entry><entry>NULL
+       maxSegmentCount</entry><entry>int</entry><entry>NULL
        </entry></row>
-
       <row><entry>
-       additionalSearchInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
+       maxRecordSize</entry><entry>int</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       maxSegmentSize</entry><entry>int</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
+       </entry></row>
+     </tbody>
+    </tgroup>
+   </table>
+   
+   <table frame="top"><title>Default settings for PDU Present Response</title>
+    <tgroup cols="3">
+     <colspec colwidth="7*" colname="field"></colspec>
+     <colspec colwidth="5*" colname="type"></colspec>
+     <colspec colwidth="7*" colname="value"></colspec>
+     <thead>
+      <row>
+       <entry>Field</entry>
+       <entry>Type</entry>
+       <entry>Default Value</entry>
+      </row>
+     </thead>
+     <tbody>
+      <row><entry>
+       referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       numberOfRecordsReturned</entry><entry>int</entry><entry>0
+       </entry></row>
+      <row><entry>
+       nextResultSetPosition</entry><entry>int</entry><entry>0
+       </entry></row>
+      <row><entry>
+       presentStatus</entry><entry>int</entry><entry>Z_PRES_SUCCESS
+       </entry></row>
+      <row><entry>
+       records</entry><entry>Z_Records</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
+       </entry></row>
+     </tbody>
+    </tgroup>
+   </table>
+   
+   <table frame="top"><title>Default settings for Delete Result Set Request
+    </title>
+    <tgroup cols="3">
+     <colspec colwidth="7*" colname="field"></colspec>
+     <colspec colwidth="5*" colname="type"></colspec>
+     <colspec colwidth="7*" colname="value"></colspec>
+     <thead>
+      <row>
+       <entry>Field</entry>
+       <entry>Type</entry>
+       <entry>Default Value</entry>
+      </row>
+     </thead>
+     <tbody>
+      <row><entry>referenceId
+       </entry><entry>Z_ReferenceId</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       deleteFunction</entry><entry>int</entry><entry>Z_DeleteRequest_list
+       </entry></row>
+      <row><entry>
+       num_ids</entry><entry>int</entry><entry>0
+       </entry></row>
+      <row><entry>
+       resultSetList</entry><entry>char**</entry><entry>NULL
        </entry></row>
-
       <row><entry>
        otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
        </entry></row>
-
      </tbody>
     </tgroup>
    </table>
 
-   <screen>
-    Z_SearchResponse
-    ----------------
-    Field                        Type                Default value
-
-    referenceId                  Z_ReferenceId       NULL
-    resultCount                  int                 0
-    numberOfRecordsReturned      int                 0
-    nextResultSetPosition        int                 0
-    searchStatus                 bool_t              TRUE
-    resultSetStatus              int                 NULL
-    presentStatus                int                 NULL
-    records                      Z_Records           NULL
-    additionalSearchInfo         Z_OtherInformation  NULL
-    otherInfo                    Z_OtherInformation  NULL
-   </screen>
-
-   <screen>
-    Z_PresentRequest
-    ----------------
-    Field                        Type                Default value
-
-    referenceId                  Z_ReferenceId       NULL
-    resultSetId                  char*               "default"
-    resultSetStartPoint          int                 1
-    numberOfRecordsRequested     int                 10
-    num_ranges                   int                 0
-    additionalRanges             Z_Range             NULL
-    recordComposition            Z_RecordComposition NULL
-    preferredRecordSyntax        Odr_oid             NULL
-    maxSegmentCount              int                 NULL
-    maxRecordSize                int                 NULL
-    maxSegmentSize               int                 NULL
-    otherInfo                    Z_OtherInformation  NULL
-   </screen>
-
-   <screen>
-    Z_PresentResponse
-    -----------------
-    Field                        Type                Default value
-
-    referenceId                  Z_ReferenceId       NULL
-    numberOfRecordsReturned      int                 0
-    nextResultSetPosition        int                 0
-    presentStatus                int                 Z_PRES_SUCCESS
-    records                      Z_Records           NULL
-    otherInfo                    Z_OtherInformation  NULL
-   </screen>
-
-   <screen>
-    Z_DeleteResultSetRequest
-    ------------------------
-    Field                        Type                Default value
-
-    referenceId                  Z_ReferenceId       NULL
-    deleteFunction               int                 Z_DeleteRequest_list
-    num_ids                      int                 0
-    resultSetList                char**              NULL
-    otherInfo                    Z_OtherInformation  NULL
-   </screen>
-
-   <screen>
-    Z_DeleteResultSetResponse
-    -------------------------
-    Field                        Type                Default value
-
-    referenceId                  Z_ReferenceId       NULL
-    deleteOperationStatus        int                 Z_DeleteStatus_success
-    num_statuses                 int                 0
-    deleteListStatuses           Z_ListStatus**      NULL
-    numberNotDeleted             int                 NULL
-    num_bulkStatuses             int                 0
-    bulkStatuses                 Z_ListStatus        NULL
-    deleteMessage                char*               NULL
-    otherInfo                    Z_OtherInformation  NULL
-   </screen>
-
-   <screen>
-    Z_ScanRequest
-    -------------
-    Field                        Type                Default value
-
-    referenceId                  Z_ReferenceId       NULL
-    num_databaseNames            int                 0
-    databaseNames                char**              NULL
-    attributeSet                 Odr_oid             NULL
-    termListAndStartPoint        Z_AttributesPlus... NULL
-    stepSize                     int                 NULL
-    numberOfTermsRequested       int                 20
-    preferredPositionInResponse  int                 NULL
-    otherInfo                    Z_OtherInformation  NULL
-   </screen>
-
-   <screen>
-    Z_ScanResponse
-    --------------
-    Field                        Type                Default value
-
-    referenceId                  Z_ReferenceId       NULL
-    stepSize                     int                 NULL
-    scanStatus                   int                 Z_Scan_success
-    numberOfEntriesReturned      int                 0
-    positionOfTerm               int                 NULL
-    entries                      Z_ListEntris        NULL
-    attributeSet                 Odr_oid             NULL
-    otherInfo                    Z_OtherInformation  NULL
-   </screen>
-
-   <screen>
-    Z_TriggerResourceControlRequest
-    -------------------------------
-    Field                        Type                Default value
-
-    referenceId                  Z_ReferenceId       NULL
-    requestedAction              int                 Z_TriggerResourceCtrl_resou..
-    prefResourceReportFormat     Odr_oid             NULL
-    resultSetWanted              bool_t              NULL
-    otherInfo                    Z_OtherInformation  NULL
-   </screen>
-
-   <screen>
-    Z_ResourceControlRequest
-    ------------------------
-    Field                        Type                Default value
-
-    referenceId                  Z_ReferenceId       NULL
-    suspendedFlag                bool_t              NULL
-    resourceReport               Z_External          NULL
-    partialResultsAvailable      int                 NULL
-    responseRequired             bool_t              FALSE
-    triggeredRequestFlag         bool_t              NULL
-    otherInfo                    Z_OtherInformation  NULL
-   </screen>
-
-   <screen>
-    Z_ResourceControlResponse
-    -------------------------
-    Field                        Type                Default value
-
-    referenceId                  Z_ReferenceId       NULL
-    continueFlag                 bool_t              TRUE
-    resultSetWanted              bool_t              NULL
-    otherInfo                    Z_OtherInformation  NULL
-   </screen>
+   <table frame="top"><title>Default settings for Delete Result Set Response
+    </title>
+    <tgroup cols="3">
+     <colspec colwidth="7*" colname="field"></colspec>
+     <colspec colwidth="5*" colname="type"></colspec>
+     <colspec colwidth="7*" colname="value"></colspec>
+     <thead>
+      <row>
+       <entry>Field</entry>
+       <entry>Type</entry>
+       <entry>Default Value</entry>
+      </row>
+     </thead>
+     <tbody>
+      <row><entry>
+       referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       deleteOperationStatus</entry><entry>int</entry>
+       <entry>Z_DeleteStatus_success</entry></row>
+      <row><entry>
+       num_statuses</entry><entry>int</entry><entry>0
+       </entry></row>
+      <row><entry>
+       deleteListStatuses</entry><entry>Z_ListStatus**</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       numberNotDeleted</entry><entry>int</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       num_bulkStatuses</entry><entry>int</entry><entry>0
+       </entry></row>
+      <row><entry>
+       bulkStatuses</entry><entry>Z_ListStatus</entry><entry>NUL
+       L</entry></row>
+      <row><entry>
+       deleteMessage</entry><entry>char*</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
+       </entry></row>
+     </tbody>
+    </tgroup>
+   </table>
 
-   <screen>
-    Z_AccessControlRequest
-    ----------------------
-    Field                        Type                Default value
+   <table frame="top"><title>Default settings for Scan Request
+    </title>
+    <tgroup cols="3">
+     <colspec colwidth="7*" colname="field"></colspec>
+     <colspec colwidth="5*" colname="type"></colspec>
+     <colspec colwidth="7*" colname="value"></colspec>
+     <thead>
+      <row>
+       <entry>Field</entry>
+       <entry>Type</entry>
+       <entry>Default Value</entry>
+      </row>
+     </thead>
+     <tbody>
+      <row><entry>
+       referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       num_databaseNames</entry><entry>int</entry><entry>0
+       </entry></row>
+      <row><entry>
+       databaseNames</entry><entry>char**</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       attributeSet</entry><entry>Odr_oid</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       termListAndStartPoint</entry><entry>Z_AttributesPlus...
+       </entry><entry>NULL</entry></row>
+      <row><entry>
+       stepSize</entry><entry>int</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       numberOfTermsRequested</entry><entry>int</entry><entry>20
+       </entry></row>
+      <row><entry>
+       preferredPositionInResponse</entry><entry>int</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
+       </entry></row>
+     </tbody>
+    </tgroup>
+   </table>
 
-    referenceId                  Z_ReferenceId       NULL
-    which                        enum                Z_AccessRequest_simpleForm;
-    u                            union               NULL
-    otherInfo                    Z_OtherInformation  NULL
-   </screen>
+   <table frame="top"><title>Default settings for Scan Response
+    </title>
+    <tgroup cols="3">
+     <colspec colwidth="7*" colname="field"></colspec>
+     <colspec colwidth="5*" colname="type"></colspec>
+     <colspec colwidth="7*" colname="value"></colspec>
+     <thead>
+      <row>
+       <entry>Field</entry>
+       <entry>Type</entry>
+       <entry>Default Value</entry>
+      </row>
+     </thead>
+     <tbody>
+      
+      <row><entry>
+       referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       stepSize</entry><entry>int</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       scanStatus</entry><entry>int</entry><entry>Z_Scan_success
+       </entry></row>
+      <row><entry>
+       numberOfEntriesReturned</entry><entry>int</entry><entry>0
+       </entry></row>
+      <row><entry>
+       positionOfTerm</entry><entry>int</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       entries</entry><entry>Z_ListEntris</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       attributeSet</entry><entry>Odr_oid</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
+       </entry></row>
+     </tbody>
+    </tgroup>
+   </table>
 
-   <screen>
-    Z_AccessControlResponse
-    -----------------------
-    Field                        Type                Default value
+   <table frame="top"><title>Default settings for Trigger Resource
+     Control Request </title>
+    <tgroup cols="3">
+     <colspec colwidth="7*" colname="field"></colspec>
+     <colspec colwidth="5*" colname="type"></colspec>
+     <colspec colwidth="7*" colname="value"></colspec>
+     <thead>
+      <row>
+       <entry>Field</entry>
+       <entry>Type</entry>
+       <entry>Default Value</entry>
+      </row>
+     </thead>
+     <tbody>
+      
+      <row><entry>
+       referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       requestedAction</entry><entry>int</entry><entry>
+       Z_TriggerResourceCtrl_resou..
+       </entry></row>
+      <row><entry>
+       prefResourceReportFormat</entry><entry>Odr_oid</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       resultSetWanted</entry><entry>bool_t</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
+       </entry></row>
+      
+     </tbody>
+    </tgroup>
+   </table>
 
-    referenceId                  Z_ReferenceId       NULL
-    which                        enum                Z_AccessResponse_simpleForm
-    u                            union               NULL
-    diagnostic                   Z_DiagRec           NULL
-    otherInfo                    Z_OtherInformation  NULL
-   </screen>
+   <table frame="top"><title>Default settings for Resource
+     Control Request</title>
+    <tgroup cols="3">
+     <colspec colwidth="7*" colname="field"></colspec>
+     <colspec colwidth="5*" colname="type"></colspec>
+     <colspec colwidth="7*" colname="value"></colspec>
+     <thead>
+      <row>
+       <entry>Field</entry>
+       <entry>Type</entry>
+       <entry>Default Value</entry>
+      </row>
+     </thead>
+     <tbody>
+      
+      <row><entry>
+       referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       suspendedFlag</entry><entry>bool_t</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       resourceReport</entry><entry>Z_External</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       partialResultsAvailable</entry><entry>int</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       responseRequired</entry><entry>bool_t</entry><entry>FALSE
+       </entry></row>
+      <row><entry>
+       triggeredRequestFlag</entry><entry>bool_t</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
+       </entry></row>
+     </tbody>
+    </tgroup>
+   </table>
 
-   <screen>
-    Z_Segment
-    ---------
-    Field                        Type                Default value
+   <table frame="top"><title>Default settings for Resource
+     Control Response</title>
+    <tgroup cols="3">
+     <colspec colwidth="7*" colname="field"></colspec>
+     <colspec colwidth="5*" colname="type"></colspec>
+     <colspec colwidth="7*" colname="value"></colspec>
+     <thead>
+      <row>
+       <entry>Field</entry>
+       <entry>Type</entry>
+       <entry>Default Value</entry>
+      </row>
+     </thead>
+     <tbody>
+      
+      <row><entry>
+       referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       continueFlag</entry><entry>bool_t</entry><entry>TRUE
+       </entry></row>
+      <row><entry>
+       resultSetWanted</entry><entry>bool_t</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
+       </entry></row>
+     </tbody>
+    </tgroup>
+   </table>
+   
+   <table frame="top"><title>Default settings for Access
+     Control Request</title>
+    <tgroup cols="3">
+     <colspec colwidth="7*" colname="field"></colspec>
+     <colspec colwidth="5*" colname="type"></colspec>
+     <colspec colwidth="7*" colname="value"></colspec>
+     <thead>
+      <row>
+       <entry>Field</entry>
+       <entry>Type</entry>
+       <entry>Default Value</entry>
+      </row>
+     </thead>
+     <tbody>
+      
+      <row><entry>
+       referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       which</entry><entry>enum</entry><entry>Z_AccessRequest_simpleForm;
+       </entry></row>
+      <row><entry>
+       u</entry><entry>union</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
+       </entry></row>
+     </tbody>
+    </tgroup>
+   </table>
 
-    referenceId                  Z_ReferenceId       NULL
-    numberOfRecordsReturned      int                 value=0
-    num_segmentRecords           int                 0
-    segmentRecords               Z_NamePlusRecord    NULL
-    otherInfo                    Z_OtherInformation  NULL
-   </screen>
+   <table frame="top"><title>Default settings for Access
+     Control Response</title>
+    <tgroup cols="3">
+     <colspec colwidth="7*" colname="field"></colspec>
+     <colspec colwidth="5*" colname="type"></colspec>
+     <colspec colwidth="7*" colname="value"></colspec>
+     <thead>
+      <row>
+       <entry>Field</entry>
+       <entry>Type</entry>
+       <entry>Default Value</entry>
+      </row>
+     </thead>
+     <tbody>
+      
+      <row><entry>
+       referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       which</entry><entry>enum</entry><entry>Z_AccessResponse_simpleForm
+       </entry></row>
+      <row><entry>
+       u</entry><entry>union</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       diagnostic</entry><entry>Z_DiagRec</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
+       </entry></row>
+     </tbody>
+    </tgroup>
+   </table>
 
-   <screen>
-    Z_Close
-    -------
-    Field                        Type                Default value
+   <table frame="top"><title>Default settings for Segment</title>
+    <tgroup cols="3">
+     <colspec colwidth="7*" colname="field"></colspec>
+     <colspec colwidth="5*" colname="type"></colspec>
+     <colspec colwidth="7*" colname="value"></colspec>
+     <thead>
+      <row>
+       <entry>Field</entry>
+       <entry>Type</entry>
+       <entry>Default Value</entry>
+      </row>
+     </thead>
+     <tbody>
+      
+      <row><entry>
+       referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       numberOfRecordsReturned</entry><entry>int</entry><entry>value=0
+       </entry></row>
+      <row><entry>
+       num_segmentRecords</entry><entry>int</entry><entry>0
+       </entry></row>
+      <row><entry>
+       segmentRecords</entry><entry>Z_NamePlusRecord</entry><entry>NULL
+       </entry></row>
+      <row><entry>otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
+       </entry></row>
+     </tbody>
+    </tgroup>
+   </table>
 
-    referenceId                  Z_ReferenceId       NULL
-    closeReason                  int                 Z_Close_finished
-    diagnosticInformation        char*               NULL
-    resourceReportFormat         Odr_oid             NULL
-    resourceFormat               Z_External          NULL
-    otherInfo                    Z_OtherInformation  NULL
+   <table frame="top"><title>Default settings for Close</title>
+    <tgroup cols="3">
+     <colspec colwidth="7*" colname="field"></colspec>
+     <colspec colwidth="5*" colname="type"></colspec>
+     <colspec colwidth="7*" colname="value"></colspec>
+     <thead>
+      <row>
+       <entry>Field</entry>
+       <entry>Type</entry>
+       <entry>Default Value</entry>
+      </row>
+     </thead>
+     <tbody>
 
-   </screen>
+      <row><entry>
+       referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       closeReason</entry><entry>int</entry><entry>Z_Close_finished
+       </entry></row>
+      <row><entry>
+       diagnosticInformation</entry><entry>char*</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       resourceReportFormat</entry><entry>Odr_oid</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       resourceFormat</entry><entry>Z_External</entry><entry>NULL
+       </entry></row>
+      <row><entry>
+       otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
+       </entry></row>
+      
+     </tbody>
+    </tgroup>
+   </table>
 
   </sect1>
  </chapter>