Supply id on all sections + examples.
authorAdam Dickmeiss <adam@indexdata.dk>
Thu, 5 Oct 2006 08:26:58 +0000 (08:26 +0000)
committerAdam Dickmeiss <adam@indexdata.dk>
Thu, 5 Oct 2006 08:26:58 +0000 (08:26 +0000)
doc/asn.xml
doc/comstack.xml
doc/entities.ent
doc/frontend.xml
doc/introduction.xml
doc/odr.xml
doc/tools.xml
doc/yaz-ztest-man.xml
doc/zoom.xml

index 9ef1576..3420e63 100644 (file)
@@ -1,4 +1,4 @@
-<!-- $Id: asn.xml,v 1.17 2006-04-25 11:25:08 marc Exp $ -->
+<!-- $Id: asn.xml,v 1.18 2006-10-05 08:26:58 adam Exp $ -->
  <chapter id="asn"><title>The Z39.50 ASN.1 Module</title>
   <sect1 id="asn.introduction"><title>Introduction</title>
    <para>
  <chapter id="asn"><title>The Z39.50 ASN.1 Module</title>
   <sect1 id="asn.introduction"><title>Introduction</title>
    <para>
@@ -347,7 +347,8 @@ typedef struct Z_ext_typeent
     PDU, as well as their default settings.
    </para>
    
     PDU, as well as their default settings.
    </para>
    
-   <table frame="top"><title>Default settings for PDU Initialize Request</title>
+   <table frame="top" id="asn.default.initialize.request">
+    <title>Default settings for PDU Initialize Request</title>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
      <colspec colwidth="5*" colname="type"></colspec>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
      <colspec colwidth="5*" colname="type"></colspec>
@@ -397,7 +398,8 @@ typedef struct Z_ext_typeent
    </tgroup>
   </table>
 
    </tgroup>
   </table>
 
-  <table frame="top"><title>Default settings for PDU Initialize
+  <table frame="top" id="asn.default.initialize.response">
+    <title>Default settings for PDU Initialize
     Response</title>
    <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
     Response</title>
    <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
@@ -448,7 +450,8 @@ typedef struct Z_ext_typeent
     </tgroup>
    </table>
 
     </tgroup>
    </table>
 
-   <table frame="top"><title>Default settings for PDU Search Request</title>
+   <table frame="top" id="asn.default.search.request">
+    <title>Default settings for PDU Search Request</title>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
      <colspec colwidth="5*" colname="type"></colspec>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
      <colspec colwidth="5*" colname="type"></colspec>
@@ -510,7 +513,8 @@ typedef struct Z_ext_typeent
     </tgroup>
    </table>
 
     </tgroup>
    </table>
 
-   <table frame="top"><title>Default settings for PDU Search Response</title>
+   <table frame="top" id="asn.default.search.response">
+    <title>Default settings for PDU Search Response</title>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
      <colspec colwidth="5*" colname="type"></colspec>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
      <colspec colwidth="5*" colname="type"></colspec>
@@ -559,7 +563,8 @@ typedef struct Z_ext_typeent
     </tgroup>
    </table>
 
     </tgroup>
    </table>
 
-   <table frame="top"><title>Default settings for PDU Present Request</title>
+   <table frame="top" id="asn.default.present.request">
+    <title>Default settings for PDU Present Request</title>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
      <colspec colwidth="5*" colname="type"></colspec>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
      <colspec colwidth="5*" colname="type"></colspec>
@@ -612,7 +617,8 @@ typedef struct Z_ext_typeent
     </tgroup>
    </table>
    
     </tgroup>
    </table>
    
-   <table frame="top"><title>Default settings for PDU Present Response</title>
+   <table frame="top" id="asn.default.present.response">
+    <title>Default settings for PDU Present Response</title>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
      <colspec colwidth="5*" colname="type"></colspec>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
      <colspec colwidth="5*" colname="type"></colspec>
@@ -647,7 +653,8 @@ typedef struct Z_ext_typeent
     </tgroup>
    </table>
    
     </tgroup>
    </table>
    
-   <table frame="top"><title>Default settings for Delete Result Set Request
+   <table frame="top" id="asn.default.delete.result.set.request">
+    <title>Default settings for Delete Result Set Request
     </title>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
     </title>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
@@ -680,7 +687,8 @@ typedef struct Z_ext_typeent
     </tgroup>
    </table>
 
     </tgroup>
    </table>
 
-   <table frame="top"><title>Default settings for Delete Result Set Response
+   <table frame="top" id="asn.default.delete.result.set.response">
+    <title>Default settings for Delete Result Set Response
     </title>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
     </title>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
@@ -725,7 +733,8 @@ typedef struct Z_ext_typeent
     </tgroup>
    </table>
 
     </tgroup>
    </table>
 
-   <table frame="top"><title>Default settings for Scan Request
+   <table frame="top" id="asn.default.scan.request">
+    <title>Default settings for Scan Request
     </title>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
     </title>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
@@ -770,7 +779,8 @@ typedef struct Z_ext_typeent
     </tgroup>
    </table>
 
     </tgroup>
    </table>
 
-   <table frame="top"><title>Default settings for Scan Response
+   <table frame="top" id="asn.default.scan.response">
+    <title>Default settings for Scan Response
     </title>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
     </title>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
@@ -813,8 +823,8 @@ typedef struct Z_ext_typeent
     </tgroup>
    </table>
 
     </tgroup>
    </table>
 
-   <table frame="top"><title>Default settings for Trigger Resource
-     Control Request </title>
+   <table frame="top" id="asn.default.trigger.resource.control.request">
+    <title>Default settings for Trigger Resource Control Request </title>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
      <colspec colwidth="5*" colname="type"></colspec>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
      <colspec colwidth="5*" colname="type"></colspec>
@@ -849,8 +859,8 @@ typedef struct Z_ext_typeent
     </tgroup>
    </table>
 
     </tgroup>
    </table>
 
-   <table frame="top"><title>Default settings for Resource
-     Control Request</title>
+   <table frame="top" id="asn.default.resource.control.request">
+    <title>Default settings for Resource Control Request</title>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
      <colspec colwidth="5*" colname="type"></colspec>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
      <colspec colwidth="5*" colname="type"></colspec>
@@ -889,8 +899,8 @@ typedef struct Z_ext_typeent
     </tgroup>
    </table>
 
     </tgroup>
    </table>
 
-   <table frame="top"><title>Default settings for Resource
-     Control Response</title>
+   <table frame="top" id="asn.default.resource.control.response">
+    <title>Default settings for Resource Control Response</title>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
      <colspec colwidth="5*" colname="type"></colspec>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
      <colspec colwidth="5*" colname="type"></colspec>
@@ -920,8 +930,8 @@ typedef struct Z_ext_typeent
     </tgroup>
    </table>
    
     </tgroup>
    </table>
    
-   <table frame="top"><title>Default settings for Access
-     Control Request</title>
+   <table frame="top" id="asn.default.access.control.request">
+    <title>Default settings for Access Control Request</title>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
      <colspec colwidth="5*" colname="type"></colspec>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
      <colspec colwidth="5*" colname="type"></colspec>
@@ -951,8 +961,8 @@ typedef struct Z_ext_typeent
     </tgroup>
    </table>
 
     </tgroup>
    </table>
 
-   <table frame="top"><title>Default settings for Access
-     Control Response</title>
+   <table frame="top" id="asn.default.access.control.response">
+    <title>Default settings for Access Control Response</title>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
      <colspec colwidth="5*" colname="type"></colspec>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
      <colspec colwidth="5*" colname="type"></colspec>
@@ -985,7 +995,8 @@ typedef struct Z_ext_typeent
     </tgroup>
    </table>
 
     </tgroup>
    </table>
 
-   <table frame="top"><title>Default settings for Segment</title>
+   <table frame="top" id="asn.default.segment">
+    <title>Default settings for Segment</title>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
      <colspec colwidth="5*" colname="type"></colspec>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
      <colspec colwidth="5*" colname="type"></colspec>
@@ -1017,7 +1028,8 @@ typedef struct Z_ext_typeent
     </tgroup>
    </table>
 
     </tgroup>
    </table>
 
-   <table frame="top"><title>Default settings for Close</title>
+   <table frame="top" id="asn.default.close">
+    <title>Default settings for Close</title>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
      <colspec colwidth="5*" colname="type"></colspec>
     <tgroup cols="3">
      <colspec colwidth="7*" colname="field"></colspec>
      <colspec colwidth="5*" colname="type"></colspec>
index b7c2b39..bfec43d 100644 (file)
@@ -1,4 +1,4 @@
-<!-- $Id: comstack.xml,v 1.13 2006-04-25 11:25:08 marc Exp $ -->
+<!-- $Id: comstack.xml,v 1.14 2006-10-05 08:26:58 adam Exp $ -->
  <chapter id="comstack"><title>The COMSTACK Module</title>
   
   <sect1 id="comstack.synopsis"><title>Synopsis (blocking mode)</title>
  <chapter id="comstack"><title>The COMSTACK Module</title>
   
   <sect1 id="comstack.synopsis"><title>Synopsis (blocking mode)</title>
@@ -101,7 +101,7 @@ if (buf)
   </sect1>
   <sect1 id="comstack.common"><title>Common Functions</title>
 
   </sect1>
   <sect1 id="comstack.common"><title>Common Functions</title>
 
-   <sect2><title>Managing Endpoints</title>
+   <sect2 id="comstack.managing.endpoints"><title>Managing Endpoints</title>
 
     <synopsis>
      COMSTACK cs_create(CS_TYPE type, int blocking, int protocol);
 
     <synopsis>
      COMSTACK cs_create(CS_TYPE type, int blocking, int protocol);
@@ -162,7 +162,7 @@ if (buf)
     </note>
    </sect2>
 
     </note>
    </sect2>
 
-   <sect2><title>Data Exchange</title>
+   <sect2 id="comstack.data.exchange"><title>Data Exchange</title>
 
     <synopsis>
      int cs_put(COMSTACK handle, char *buf, int len);
 
     <synopsis>
      int cs_put(COMSTACK handle, char *buf, int len);
index 74ff152..2c8471e 100644 (file)
@@ -1,4 +1,4 @@
-<!-- $Id: entities.ent,v 1.2 2006-02-01 20:11:22 adam Exp $ -->
+<!-- $Id: entities.ent,v 1.3 2006-10-05 08:26:58 adam Exp $ -->
 <!ENTITY yaz "YAZ">
 <!ENTITY bookinfo SYSTEM "bookinfo.xml">
 <!ENTITY chap-introduction SYSTEM "introduction.xml">
 <!ENTITY yaz "YAZ">
 <!ENTITY bookinfo SYSTEM "bookinfo.xml">
 <!ENTITY chap-introduction SYSTEM "introduction.xml">
@@ -24,5 +24,5 @@
 <!ENTITY comstack "<acronym>COMSTACK</acronym>">
 <!ENTITY zoom "<acronym>ZOOM</acronym>">
 <!ENTITY gfs-synopsis-app "application">
 <!ENTITY comstack "<acronym>COMSTACK</acronym>">
 <!ENTITY zoom "<acronym>ZOOM</acronym>">
 <!ENTITY gfs-synopsis-app "application">
-<!ENTITY reference-tools-cql-map "<xref linkend='tools.cql.map'/>">
+<!ENTITY reference-tools-cql-map "<xref linkend='cql.to.rpn'/>">
 <!ENTITY copyright-year "1995-2006">
 <!ENTITY copyright-year "1995-2006">
index 246cae8..0f83a6e 100644 (file)
@@ -1,6 +1,6 @@
-<!-- $Id: frontend.xml,v 1.31 2006-07-31 11:47:04 adam Exp $ -->
+<!-- $Id: frontend.xml,v 1.32 2006-10-05 08:26:58 adam Exp $ -->
  <chapter id="server"><title>Generic server</title>
  <chapter id="server"><title>Generic server</title>
-  <sect1><title>Introduction</title>
+  <sect1 id="server.introduction"><title>Introduction</title>
    
    <para>
     If you aren't into documentation, a good way to learn how the
    
    <para>
     If you aren't into documentation, a good way to learn how the
@@ -315,7 +315,7 @@ void statserv_setcontrol(statserv_options_block *block);
     functions representing the services that you wish to implement.
    </para>
 
     functions representing the services that you wish to implement.
    </para>
 
-   <sect2><title>Init</title>
+   <sect2 id="server.init"><title>Init</title>
 
     <synopsis>
 bend_initresult (*bend_init)(bend_initrequest *r);
 
     <synopsis>
 bend_initresult (*bend_init)(bend_initrequest *r);
@@ -429,7 +429,7 @@ typedef struct bend_initresult
 
    </sect2>
 
 
    </sect2>
 
-   <sect2><title>Search and retrieve</title>
+   <sect2 id="server.search.retrieve"><title>Search and Retrieve</title>
 
     <para>We now describe the handlers that are required to support search -
      and retrieve. You must support two functions - one for search - and one
 
     <para>We now describe the handlers that are required to support search -
      and retrieve. You must support two functions - one for search - and one
@@ -503,7 +503,7 @@ typedef struct {
      structure (note that CQL is now part of Z39.50 via an external).
      To support CQL in existing implementations that only do Type-1,
      we refer to the CQL-to-PQF tool described
      structure (note that CQL is now part of Z39.50 via an external).
      To support CQL in existing implementations that only do Type-1,
      we refer to the CQL-to-PQF tool described
-     <link linkend="tools.cql.pqf">here</link>.
+     <link linkend="cql.to.pqf">here</link>.
     </para>
 
     <para>
     </para>
 
     <para>
@@ -650,7 +650,7 @@ typedef struct {
 
    </sect2>
 
 
    </sect2>
 
-   <sect2><title>Delete</title>
+   <sect2 id="server.delete"><title>Delete</title>
 
     <para>
      For back-ends that supports delete of a result set only one handler
 
     <para>
      For back-ends that supports delete of a result set only one handler
@@ -684,7 +684,7 @@ typedef struct bend_delete_rr {
 
    </sect2>
 
 
    </sect2>
 
-   <sect2><title>scan</title>
+   <sect2 id="server.scan"><title>Scan</title>
 
     <para>
      For servers that wish to offer the scan service one handler
 
     <para>
      For servers that wish to offer the scan service one handler
@@ -779,7 +779,7 @@ typedef struct bend_scan_rr {
     which causes the server to listen on any local interface. 
    </para>
 
     which causes the server to listen on any local interface. 
    </para>
 
-   <example><title>Running the GFS on Unix</title>
+   <example id="server.example.running.unix"><title>Running the GFS on Unix</title>
     <para>
      Assuming the server application <replaceable>appname</replaceable> is
      started as root, the following will make it listen on port 210.
     <para>
      Assuming the server application <replaceable>appname</replaceable> is
      started as root, the following will make it listen on port 210.
@@ -793,7 +793,7 @@ typedef struct bend_scan_rr {
      The server will accept Z39.50 requests and offer SRU service on port 210.
     </para>
    </example>
      The server will accept Z39.50 requests and offer SRU service on port 210.
     </para>
    </example>
-   <example><title>Setting up Apache as SRU Frontend</title>
+   <example id="server.example.apache.sru"><title>Setting up Apache as SRU Frontend</title>
     <para>
      If you use <ulink url="&url.apache;">Apache</ulink>
      as your public web server and want to offer HTTP port 80
     <para>
      If you use <ulink url="&url.apache;">Apache</ulink>
      as your public web server and want to offer HTTP port 80
@@ -816,7 +816,8 @@ typedef struct bend_scan_rr {
      The above for the Apache 1.3 series.
     </para>
    </example>
      The above for the Apache 1.3 series.
     </para>
    </example>
-   <example><title>Running a server with local access only</title>
+   <example id="server.example.local.access">
+    <title>Running a server with local access only</title>
     <para>
      Servers that is only being accessed from the local host should listen
      on UNIX file socket rather than a Internet socket. To listen on
     <para>
      Servers that is only being accessed from the local host should listen
      on UNIX file socket rather than a Internet socket. To listen on
index 32b4810..d1a8bc5 100644 (file)
@@ -1,4 +1,4 @@
-<!-- $Id: introduction.xml,v 1.24 2006-06-13 16:01:51 adam Exp $ -->
+<!-- $Id: introduction.xml,v 1.25 2006-10-05 08:26:58 adam Exp $ -->
  <chapter id="introduction"><title>Introduction</title>
 
   <para>
  <chapter id="introduction"><title>Introduction</title>
 
   <para>
       <xref linkend="tools"/> contains sections for the various
       tools offered by &yaz;. Scan through the material quickly
       and see what's relevant to you! SRU implementors
       <xref linkend="tools"/> contains sections for the various
       tools offered by &yaz;. Scan through the material quickly
       and see what's relevant to you! SRU implementors
-      might find the <link linkend="tools.cql">CQL</link> section
+      might find the <link linkend="cql">CQL</link> section
       particularly useful.
      </para>
     </listitem>
       particularly useful.
      </para>
     </listitem>
index 6a135e9..38d300e 100644 (file)
@@ -1,4 +1,4 @@
-<!-- $Id: odr.xml,v 1.18 2006-04-25 11:25:08 marc Exp $ -->
+<!-- $Id: odr.xml,v 1.19 2006-10-05 08:26:58 adam Exp $ -->
  <chapter id="odr"><title>The ODR Module</title>
   
   <sect1 id="odr.introduction"><title>Introduction</title>
  <chapter id="odr"><title>The ODR Module</title>
   
   <sect1 id="odr.introduction"><title>Introduction</title>
@@ -39,7 +39,7 @@
   </sect1>
   <sect1 id="odr.use"><title>Using ODR</title>
 
   </sect1>
   <sect1 id="odr.use"><title>Using ODR</title>
 
-   <sect2><title>ODR Streams</title>
+   <sect2 id="odr.streams"><title>ODR Streams</title>
 
     <para>
      Conceptually, the ODR stream is the source of encoded data in the
 
     <para>
      Conceptually, the ODR stream is the source of encoded data in the
@@ -74,7 +74,7 @@
     </para>
    </sect2>
 
     </para>
    </sect2>
 
-   <sect2><title id="memory">Memory Management</title>
+   <sect2 id="odr.memory.management"><title id="memory">Memory Management</title>
 
     <para>
      Two forms of memory management take place in the &odr; system. The first
 
     <para>
      Two forms of memory management take place in the &odr; system. The first
     </para>
 
    </sect2>
     </para>
 
    </sect2>
-   <sect2><title>Encoding and Decoding Data</title>
+   <sect2 id="odr.encoding.and.decoding"><title>Encoding and Decoding Data</title>
 
     <para>
      When encoding data, the ODR stream will write the encoded octet string
 
     <para>
      When encoding data, the ODR stream will write the encoded octet string
      <function>z_APDU()</function>).
     </para>
     
      <function>z_APDU()</function>).
     </para>
     
-    <example><title>Encoding and decoding functions</title>
+    <example id="example.odr.encoding.and.decoding.functions">
+     <title>Encoding and decoding functions</title>
      <synopsis>
       int odr_integer(ODR o, int **p, int optional, const char *name);
       
      <synopsis>
       int odr_integer(ODR o, int **p, int optional, const char *name);
       
      last call to <function>odr_reset()</function> will be released.
     </para>
 
      last call to <function>odr_reset()</function> will be released.
     </para>
 
-    <example><title>Encoding and decoding of an integer</title>
+    <example id="example.odr.encoding.of.integer">
+     <title>Encoding and decoding of an integer</title>
      <para>
       The use of the double indirection can be a little confusing at first
       (its purpose will become clear later on, hopefully),
      <para>
       The use of the double indirection can be a little confusing at first
       (its purpose will become clear later on, hopefully),
@@ -355,7 +357,7 @@ void do_nothing_useful(int value)
     
    </sect2>
 
     
    </sect2>
 
-   <sect2><title>Printing</title>
+   <sect2 id="odr.printing"><title>Printing</title>
     <para>
      When an ODR stream is created of type <literal>ODR_PRINT</literal>
      the ODR module will print the contents of a PDU in a readable format.
     <para>
      When an ODR stream is created of type <literal>ODR_PRINT</literal>
      the ODR module will print the contents of a PDU in a readable format.
@@ -396,7 +398,7 @@ void do_nothing_useful(int value)
      <literal>ar[n]</literal> is the last. The last element has the
      property that <literal>ar[n+1] == NULL</literal>.
     </para>
      <literal>ar[n]</literal> is the last. The last element has the
      property that <literal>ar[n+1] == NULL</literal>.
     </para>
-    <example>
+    <example id="example.odr.element.path.record">
      <title>Element Path for record</title>
      <para>
       For a database record part of a PresentResponse the
      <title>Element Path for record</title>
      <para>
       For a database record part of a PresentResponse the
@@ -406,7 +408,7 @@ void do_nothing_useful(int value)
      </para>
      </example>
    </sect2>
      </para>
      </example>
    </sect2>
-   <sect2><title>Diagnostics</title>
+   <sect2 id="odr.diagnostics"><title>Diagnostics</title>
 
     <para>
      The encoding/decoding functions all return 0 when an error occurs.
 
     <para>
      The encoding/decoding functions all return 0 when an error occurs.
@@ -440,7 +442,8 @@ void do_nothing_useful(int value)
      one of these constants:
     </para>
 
      one of these constants:
     </para>
 
-    <table frame="top"><title>ODR Error codes</title>
+    <table frame="top" id="odr.error.codes">
+     <title>ODR Error codes</title>
      <tgroup cols="2">
       <thead>
        <row>
      <tgroup cols="2">
       <thead>
        <row>
@@ -498,7 +501,8 @@ void do_nothing_useful(int value)
     </para>
 
    </sect2>
     </para>
 
    </sect2>
-   <sect2><title>Summary and Synopsis</title>
+   <sect2 id="odr.summary.and.synopsis">
+    <title>Summary and Synopsis</title>
 
     <synopsis>
      #include &lt;odr.h>
 
     <synopsis>
      #include &lt;odr.h>
@@ -568,14 +572,15 @@ void do_nothing_useful(int value)
     SEQUENCE members which don't exist in XDR.
    </para>
 
     SEQUENCE members which don't exist in XDR.
    </para>
 
-   <sect2><title>The Primitive ASN.1 Types</title>
+   <sect2 id="odr.primitive.asn1.types">
+    <title>The Primitive ASN.1 Types</title>
 
     <para>
      ASN.1 defines a number of primitive types (many of which correspond
      roughly to primitive types in structured programming languages, such as C).
     </para>
 
 
     <para>
      ASN.1 defines a number of primitive types (many of which correspond
      roughly to primitive types in structured programming languages, such as C).
     </para>
 
-    <sect3><title>INTEGER</title>
+    <sect3 id="odr.integer"><title>INTEGER</title>
 
      <para>
       The &odr; function for encoding or decoding (or printing) the ASN.1
 
      <para>
       The &odr; function for encoding or decoding (or printing) the ASN.1
@@ -633,21 +638,21 @@ void do_nothing_useful(int value)
       similar manners:
      </para>
     </sect3>
       similar manners:
      </para>
     </sect3>
-    <sect3><title>BOOLEAN</title>
+    <sect3 id="odr.boolean"><title>BOOLEAN</title>
 
      <synopsis>
 int odr_bool(ODR o, bool_t **p, int optional, const char *name);
      </synopsis>
 
     </sect3>
 
      <synopsis>
 int odr_bool(ODR o, bool_t **p, int optional, const char *name);
      </synopsis>
 
     </sect3>
-    <sect3><title>REAL</title>
+    <sect3 id="odr.real"><title>REAL</title>
 
      <para>
       Not defined.
      </para>
 
     </sect3>
 
      <para>
       Not defined.
      </para>
 
     </sect3>
-    <sect3><title>NULL</title>
+    <sect3 id="odr.null"><title>NULL</title>
 
      <synopsis>
 int odr_null(ODR o, bool_t **p, int optional, const char *name);
 
      <synopsis>
 int odr_null(ODR o, bool_t **p, int optional, const char *name);
@@ -660,7 +665,7 @@ int odr_null(ODR o, bool_t **p, int optional, const char *name);
      </para>
 
     </sect3>
      </para>
 
     </sect3>
-    <sect3><title>OCTET STRING</title>
+    <sect3 id="odr.octet.string"><title>OCTET STRING</title>
 
      <synopsis>
 typedef struct odr_oct
 
      <synopsis>
 typedef struct odr_oct
@@ -707,7 +712,7 @@ int odr_visiblestring(ODR o, char **p, int optional,
      </synopsis>
 
     </sect3>
      </synopsis>
 
     </sect3>
-    <sect3><title>BIT STRING</title>
+    <sect3 id="odr.bit.string"><title>BIT STRING</title>
 
      <synopsis>
 int odr_bitstring(ODR o, Odr_bitmask **p, int optional,
 
      <synopsis>
 int odr_bitstring(ODR o, Odr_bitmask **p, int optional,
@@ -745,7 +750,7 @@ int ODR_MASK_GET(Odr_bitmask *b, int bitno);
      </para>
     </sect3>
 
      </para>
     </sect3>
 
-    <sect3><title>OBJECT IDENTIFIER</title>
+    <sect3 id="odr.object.identifier"><title>OBJECT IDENTIFIER</title>
 
      <synopsis>
 int odr_oid(ODR o, Odr_oid **p, int optional, const char *name);
 
      <synopsis>
 int odr_oid(ODR o, Odr_oid **p, int optional, const char *name);
@@ -762,7 +767,7 @@ int odr_oid(ODR o, Odr_oid **p, int optional, const char *name);
 
     </sect3>
    </sect2>
 
     </sect3>
    </sect2>
-   <sect2 id="tag.prim"><title>Tagging Primitive Types</title>
+   <sect2 id="odr.tagging.primitive.types"><title>Tagging Primitive Types</title> <!-- tag.prim -->
 
     <para>
      The simplest way of tagging a type is to use the
 
     <para>
      The simplest way of tagging a type is to use the
@@ -813,7 +818,7 @@ int myInt(ODR o, int **p, int optional, const char *name)
     </para>
 
    </sect2>
     </para>
 
    </sect2>
-   <sect2><title>Constructed Types</title>
+   <sect2 id="odr.constructed.types"><title>Constructed Types</title>
 
     <para>
      Constructed types are created by combining primitive types. The
 
     <para>
      Constructed types are created by combining primitive types. The
@@ -900,16 +905,18 @@ int mySequence(ODR o, MySequence **p, int optional, const char *name)
     </para>
 
    </sect2>
     </para>
 
    </sect2>
-   <sect2><title>Tagging Constructed Types</title>
+   <sect2 id="odr.tagging.constructed.types">
+    <title>Tagging Constructed Types</title>
 
     <note>
      <para>
 
     <note>
      <para>
-      See <xref linkend="tag.prim"/> for information on how to tag
+      See <xref linkend="odr.tagging.primitive.types"/> for information on how to tag
       the primitive types, as well as types that are already defined.
      </para>
     </note>
 
       the primitive types, as well as types that are already defined.
      </para>
     </note>
 
-    <sect3><title>Implicit Tagging</title>
+    <sect3 id="odr.implicit.tagging">
+     <title>Implicit Tagging</title>
 
      <para>
       Assume the type above had been defined as
 
      <para>
       Assume the type above had been defined as
@@ -957,7 +964,7 @@ int mySequence(ODR o, MySequence **p, int optional, const char *name)
      </para>
     </sect3>
 
      </para>
     </sect3>
 
-    <sect3><title>Explicit Tagging</title>
+    <sect3 id="odr.explicit.tagging"><title>Explicit Tagging</title>
 
      <para>
       Explicit tagging of constructed types is a little more complicated,
 
      <para>
       Explicit tagging of constructed types is a little more complicated,
@@ -1032,7 +1039,7 @@ int mySequence(ODR o, MySequence **p, int optional, const char *name)
 
     </sect3>
    </sect2>
 
     </sect3>
    </sect2>
-   <sect2><title>SEQUENCE OF</title>
+   <sect2 id="odr.sequence.of"><title>SEQUENCE OF</title>
 
     <para>
      To handle sequences (arrays) of a specific type, the function
 
     <para>
      To handle sequences (arrays) of a specific type, the function
@@ -1088,7 +1095,7 @@ int myArray(ODR o, MyArray **p, int optional, const char *name)
     </screen>
 
    </sect2>
     </screen>
 
    </sect2>
-   <sect2><title>CHOICE Types</title>
+   <sect2 id="odr.choice.types"><title>CHOICE Types</title>
 
     <para>
      The choice type is used fairly often in some ASN.1 definitions, so
 
     <para>
      The choice type is used fairly often in some ASN.1 definitions, so
index d47683f..9ca9e24 100644 (file)
@@ -1,4 +1,4 @@
-<!-- $Id: tools.xml,v 1.50 2006-06-13 16:01:51 adam Exp $ -->
+<!-- $Id: tools.xml,v 1.51 2006-10-05 08:26:58 adam Exp $ -->
  <chapter id="tools"><title>Supporting Tools</title>
   
   <para>
  <chapter id="tools"><title>Supporting Tools</title>
   
   <para>
 
     <sect3 id="pqf-examples"><title>PQF queries</title>
 
 
     <sect3 id="pqf-examples"><title>PQF queries</title>
 
-     <example><title>PQF queries using simple terms</title>
+     <example id="example.pqf.simple.terms">
+      <title>PQF queries using simple terms</title>
       <para>
        <screen>
        dylan
       <para>
        <screen>
        dylan
        </screen>
       </para>
      </example>
        </screen>
       </para>
      </example>
-     <example><title>PQF boolean operators</title>
+     <example id="pqf.example.pqf.boolean.operators">
+      <title>PQF boolean operators</title>
       <para>
        <screen>
        @or "dylan" "zimmerman"
       <para>
        <screen>
        @or "dylan" "zimmerman"
        </screen>
       </para>
      </example>
        </screen>
       </para>
      </example>
-     <example><title>PQF references to result sets</title>
+     <example id="example.pqf.result.sets">
+      <title>PQF references to result sets</title>
       <para>
        <screen>
        @set Result-1
       <para>
        <screen>
        @set Result-1
        </screen>
       </para>
      </example>
        </screen>
       </para>
      </example>
-     <example><title>Attributes for terms</title>
+     <example id="example.pqf.attributes">
+      <title>Attributes for terms</title>
       <para>
        <screen>
        @attr 1=4 computer
       <para>
        <screen>
        @attr 1=4 computer
        </screen>
       </para>
      </example>
        </screen>
       </para>
      </example>
-     <example><title>PQF Proximity queries</title>
+     <example id="example.pqf.proximity">
+      <title>PQF Proximity queries</title>
       <para>
        <screen>
        @prox 0 3 1 2 k 2 dylan zimmerman
       <para>
        <screen>
        @prox 0 3 1 2 k 2 dylan zimmerman
        </para></note>
       </para>
      </example>
        </para></note>
       </para>
      </example>
-     <example><title>PQF specification of search term</title>
+     <example id="example.pqf.search.term.type">
+      <title>PQF specification of search term type</title>
       <para>
        <screen>
        @term string "a UTF-8 string, maybe?"
        </screen>
       </para>
      </example>
       <para>
        <screen>
        @term string "a UTF-8 string, maybe?"
        </screen>
       </para>
      </example>
-     <example><title>PQF mixed queries</title>
+     <example id="example.pqf.mixed.queries">
+      <title>PQF mixed queries</title>
       <para>
        <screen>
        @or @and bob dylan @set Result-1
       <para>
        <screen>
        @or @and bob dylan @set Result-1
      license, it is included as a supplement to &yaz;.
     </para>
 
      license, it is included as a supplement to &yaz;.
     </para>
 
-    <sect3><title>CCL Syntax</title>
+    <sect3 id="ccl.syntax">
+     <title>CCL Syntax</title>
 
      <para>
       The CCL parser obeys the following grammar for the FIND argument.
 
      <para>
       The CCL parser obeys the following grammar for the FIND argument.
 
      </screen>
      
 
      </screen>
      
-     <example><title>CCL queries</title>
+     <example id="example.ccl.queries">
+      <title>CCL queries</title>
       <para>
        The following queries are all valid:
       </para>
       <para>
        The following queries are all valid:
       </para>
      </example>
      
     </sect3>
      </example>
      
     </sect3>
-    <sect3><title>CCL Qualifiers</title>
+    <sect3 id="ccl.qualifiers">
+     <title>CCL Qualifiers</title>
      
      <para>
       Qualifiers are used to direct the search to a particular searchable
      
      <para>
       Qualifiers are used to direct the search to a particular searchable
       lines in a CCL profile: qualifier specification,
       qualifier alias, comments and directives.
      </para>
       lines in a CCL profile: qualifier specification,
       qualifier alias, comments and directives.
      </para>
-     <sect4><title id="qualifier-specification">Qualifier specification</title>
+     <sect4 id="ccl.qualifier.specification">
+      <title>Qualifier specification</title>
       <para>
        A qualifier specification is of the form:
       </para>
       <para>
        A qualifier specification is of the form:
       </para>
        or <literal>c</literal> for completeness.
        The attributes for the special qualifier name <literal>term</literal>
        are used when no CCL qualifier is given in a query.
        or <literal>c</literal> for completeness.
        The attributes for the special qualifier name <literal>term</literal>
        are used when no CCL qualifier is given in a query.
-       <table><title>Common Bib-1 attributes</title>
+       <table id="ccl.common.bib1.attributes">
+       <title>Common Bib-1 attributes</title>
        <tgroup cols="2">
         <colspec colwidth="2*" colname="type"></colspec>
         <colspec colwidth="9*" colname="description"></colspec>
        <tgroup cols="2">
         <colspec colwidth="2*" colname="type"></colspec>
         <colspec colwidth="9*" colname="description"></colspec>
        which are used in combination with certain types.
        The special combinations are:
        
        which are used in combination with certain types.
        The special combinations are:
        
-       <table><title>Special attribute combos</title>
+       <table id="ccl.special.attribute.combos">
+       <title>Special attribute combos</title>
        <tgroup cols="2">
         <colspec colwidth="2*" colname="name"></colspec>
         <colspec colwidth="9*" colname="description"></colspec>
        <tgroup cols="2">
         <colspec colwidth="2*" colname="name"></colspec>
         <colspec colwidth="9*" colname="description"></colspec>
        </tgroup>
        </table>
       </para>
        </tgroup>
        </table>
       </para>
-      <example><title>CCL profile</title>
+      <example id="example.ccl.profile"><title>CCL profile</title>
        <para>
        Consider the following definition:
        </para>
        <para>
        Consider the following definition:
        </para>
        </para>
       </example>
      </sect4>
        </para>
       </example>
      </sect4>
-     <sect4><title>Qualifier alias</title>
+     <sect4 id="ccl.qualifier.alias">
+      <title>Qualifier alias</title>
       <para>
        A qualifier alias is of the form:
       </para>
       <para>
        A qualifier alias is of the form:
       </para>
       </para>
      </sect4>
 
       </para>
      </sect4>
 
-     <sect4><title>Comments</title>
+     <sect4 id="ccl.comments">
+      <title>Comments</title>
       <para>
        Lines with white space or lines that begin with
        character <literal>#</literal> are treated as comments.
       </para>
      </sect4>
 
       <para>
        Lines with white space or lines that begin with
        character <literal>#</literal> are treated as comments.
       </para>
      </sect4>
 
-     <sect4><title>Directives</title>
+     <sect4 id="ccl.directives">
+      <title>Directives</title>
       <para>
        Directive specifications takes the form
       </para>
       <para><literal>@</literal><replaceable>directive</replaceable> <replaceable>value</replaceable>
       </para>
       <para>
        Directive specifications takes the form
       </para>
       <para><literal>@</literal><replaceable>directive</replaceable> <replaceable>value</replaceable>
       </para>
-      <table><title>CCL directives</title>
+      <table id="ccl.directives">
+       <title>CCL directives</title>
        <tgroup cols="3">
        <colspec colwidth="2*" colname="name"></colspec>
        <colspec colwidth="8*" colname="description"></colspec>
        <tgroup cols="3">
        <colspec colwidth="2*" colname="name"></colspec>
        <colspec colwidth="8*" colname="description"></colspec>
       </table>
      </sect4>
     </sect3>
       </table>
      </sect4>
     </sect3>
-    <sect3><title>CCL API</title>
+    <sect3 id="ccl.apid">
+     <title>CCL API</title>
      <para>
       All public definitions can be found in the header file
       <filename>ccl.h</filename>. A profile identifier is of type
      <para>
       All public definitions can be found in the header file
       <filename>ccl.h</filename>. A profile identifier is of type
@@ -936,7 +954,7 @@ struct ccl_rpn_node *ccl_find_str (CCL_bibset bibset, const char *str,
      </para>
     </sect3>
    </sect2>
      </para>
     </sect3>
    </sect2>
-   <sect2 id="tools.cql"><title>CQL</title>
+   <sect2 id="cql"><title>CQL</title>
     <para>
      <ulink url="&url.cql;">CQL</ulink>
       - Common Query Language - was defined for the
     <para>
      <ulink url="&url.cql;">CQL</ulink>
       - Common Query Language - was defined for the
@@ -986,7 +1004,7 @@ struct ccl_rpn_node *ccl_find_str (CCL_bibset bibset, const char *str,
       </listitem>
      </itemizedlist>
     </para>
       </listitem>
      </itemizedlist>
     </para>
-    <sect3 id="tools.cql.parsing"><title>CQL parsing</title>
+    <sect3 id="cql.parsing"><title>CQL parsing</title>
      <para>
       A CQL parser is represented by the <literal>CQL_parser</literal>
       handle. Its contents should be considered &yaz; internal (private).
      <para>
       A CQL parser is represented by the <literal>CQL_parser</literal>
       handle. Its contents should be considered &yaz; internal (private).
@@ -1032,7 +1050,7 @@ int cql_parser_stdio(CQL_parser cp, FILE *f);
      </para>
     </sect3>
     
      </para>
     </sect3>
     
-    <sect3 id="tools.cql.tree"><title>CQL tree</title>
+    <sect3 id="cql.tree"><title>CQL tree</title>
      <para>
       The the query string is valid, the CQL parser
       generates a tree representing the structure of the
      <para>
       The the query string is valid, the CQL parser
       generates a tree representing the structure of the
@@ -1136,7 +1154,7 @@ struct cql_node {
      </para>
 
     </sect3>
      </para>
 
     </sect3>
-    <sect3 id="tools.cql.pqf"><title>CQL to PQF conversion</title>
+    <sect3 id="cql.to.pqf"><title>CQL to PQF conversion</title>
      <para>
       Conversion to PQF (and Z39.50 RPN) is tricky by the fact
       that the resulting RPN depends on the Z39.50 target
      <para>
       Conversion to PQF (and Z39.50 RPN) is tricky by the fact
       that the resulting RPN depends on the Z39.50 target
@@ -1218,7 +1236,7 @@ int cql_transform_FILE(cql_transform_t ct,
       open <literal>FILE</literal>.
      </para>
     </sect3>
       open <literal>FILE</literal>.
      </para>
     </sect3>
-    <sect3 id="tools.cql.map">
+    <sect3 id="cql.to.rpn">
      <title>Specification of CQL to RPN mappings</title>
      <para>
       The file supplied to functions 
      <title>Specification of CQL to RPN mappings</title>
      <para>
       The file supplied to functions 
@@ -1369,7 +1387,7 @@ int cql_transform_FILE(cql_transform_t ct,
        </varlistentry>
       </variablelist>
      </para>
        </varlistentry>
       </variablelist>
      </para>
-     <example><title>CQL to RPN mapping file</title>
+     <example id="example.cql.to.rpn.mapping"><title>CQL to RPN mapping file</title>
       <para>
        This simple file defines two context sets, three indexes and three
        relations, a position pattern and a default structure.
       <para>
        This simple file defines two context sets, three indexes and three
        relations, a position pattern and a default structure.
@@ -1424,7 +1442,7 @@ int cql_transform_FILE(cql_transform_t ct,
       </para>
      </example>
     </sect3>
       </para>
      </example>
     </sect3>
-    <sect3 id="tools.cql.xcql"><title>CQL to XCQL conversion</title>
+    <sect3 id="cql.xcql"><title>CQL to XCQL conversion</title>
      <para>
       Conversion from CQL to XCQL is trivial and does not
       require a mapping to be defined.
      <para>
       Conversion from CQL to XCQL is trivial and does not
       require a mapping to be defined.
@@ -1950,7 +1968,7 @@ typedef struct oident
 
   </sect1>
   
 
   </sect1>
   
-  <sect1 id="tools.marc"><title>MARC</title>
+  <sect1 id="marc"><title>MARC</title>
    
    <para>
     YAZ provides a fast utility that decodes MARC records and
    
    <para>
     YAZ provides a fast utility that decodes MARC records and
@@ -2038,7 +2056,7 @@ typedef struct oident
     stores the resulting record in a WRBUF handle (WRBUF is a simple string
     type).
    </para>
     stores the resulting record in a WRBUF handle (WRBUF is a simple string
     type).
    </para>
-   <example>
+   <example id="example.marc.display">
     <title>Display of MARC record</title>
     <para>
      The followint program snippet illustrates how the MARC API may
     <title>Display of MARC record</title>
     <para>
      The followint program snippet illustrates how the MARC API may
index 52595f3..9b174b2 100644 (file)
@@ -10,7 +10,7 @@
      <!ENTITY gfs-synopsis-app "yaz-ztest">
      <!ENTITY reference-tools-cql-map 'section "Specifiction of CQL to RPN mappings"'>
 ]>
      <!ENTITY gfs-synopsis-app "yaz-ztest">
      <!ENTITY reference-tools-cql-map 'section "Specifiction of CQL to RPN mappings"'>
 ]>
-<!-- $Id: yaz-ztest-man.xml,v 1.13 2006-10-04 13:21:33 adam Exp $ -->
+<!-- $Id: yaz-ztest-man.xml,v 1.14 2006-10-05 08:26:58 adam Exp $ -->
 <refentry id="yaz-ztest">
  <refentryinfo>
   <productname>YAZ</productname>
 <refentry id="yaz-ztest">
  <refentryinfo>
   <productname>YAZ</productname>
@@ -69,7 +69,7 @@
    <filename>yaz-&lt;version&gt;/include/yaz/backend.h</filename>
   </para>
  </refsect1>
    <filename>yaz-&lt;version&gt;/include/yaz/backend.h</filename>
   </para>
  </refsect1>
- <refsect1 id="tools.cql.map"><title>SEE ALSO</title>
+ <refsect1 id="cql.to.rpn"><title>SEE ALSO</title>
   <para>
    <citerefentry>
     <refentrytitle>yaz</refentrytitle>
   <para>
    <citerefentry>
     <refentrytitle>yaz</refentrytitle>
index ce88f61..a50eb3e 100644 (file)
@@ -20,7 +20,7 @@ ZOOM_options_set_int(opt, name, value)
 ZOOM_connection_scan1 (ZOOM_connection c, ZOOM_query startterm)
 ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
 -->
 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.51 2006-09-06 09:26:36 adam Exp $ -->
+<!-- $Id: zoom.xml,v 1.52 2006-10-05 08:26:58 adam Exp $ -->
  <chapter id="zoom"><title>ZOOM</title>
   <para>
     &zoom; is an acronym for 'Z39.50 Object-Orientation Model' and is
  <chapter id="zoom"><title>ZOOM</title>
   <para>
     &zoom; is an acronym for 'Z39.50 Object-Orientation Model' and is
@@ -318,7 +318,8 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
      API cannot tell the outcome (yet).
     </para>
     </sect2>
      API cannot tell the outcome (yet).
     </para>
     </sect2>
-   <sect2><title>SRU Protocol behavior</title>
+   <sect2 id="zoom.sru.init.behavior">
+    <title>SRU Protocol behavior</title>
     <para>
      The SRU protocol doesn't feature an Inititialize Request, so
      the connection phase merely establishes a TCP/IP connection
     <para>
      The SRU protocol doesn't feature an Inititialize Request, so
      the connection phase merely establishes a TCP/IP connection
@@ -365,7 +366,7 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
     sort criteria using the same string notation for sort as offered by
     the <link linkend="sortspec">YAZ client</link>.
    </para>
     sort criteria using the same string notation for sort as offered by
     the <link linkend="sortspec">YAZ client</link>.
    </para>
-   <sect2><title>Protocol behavior</title>
+   <sect2 id="zoom.sort.behavior"><title>Protocol behavior</title>
     <para>
      The query object is just an interface for the member Query
      in the SearchRequest. The sortby-function is an interface to the
     <para>
      The query object is just an interface for the member Query
      in the SearchRequest. The sortby-function is an interface to the
@@ -416,7 +417,8 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
     The number of hits also called result-count is returned by
     function <function>ZOOM_resultset_size</function>.
    </para>
     The number of hits also called result-count is returned by
     function <function>ZOOM_resultset_size</function>.
    </para>
-   <table frame="top"><title>ZOOM Result set Options</title>
+   <table id="zoom.resultset.options" 
+    frame="top"><title>ZOOM Result set Options</title>
     <tgroup cols="3">
      <colspec colwidth="4*" colname="name"></colspec>
      <colspec colwidth="7*" colname="description"></colspec>
     <tgroup cols="3">
      <colspec colwidth="4*" colname="name"></colspec>
      <colspec colwidth="7*" colname="description"></colspec>
@@ -480,7 +482,8 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
     Read <literal>searchresult.size</literal> to determine the
     number of items.
    </para>
     Read <literal>searchresult.size</literal> to determine the
     number of items.
    </para>
-   <table frame="top"><title>Search Info Report options</title>
+   <table id="zoom.search.info.report.options" 
+    frame="top"><title>Search Info Report Options</title>
     <tgroup cols="2">
      <colspec colwidth="4*" colname="name"></colspec>
      <colspec colwidth="7*" colname="description"></colspec>
     <tgroup cols="2">
      <colspec colwidth="4*" colname="name"></colspec>
      <colspec colwidth="7*" colname="description"></colspec>
@@ -525,7 +528,7 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
      </tbody>
     </tgroup>
    </table>
      </tbody>
     </tgroup>
    </table>
-   <sect2>
+   <sect2 id="zoom.z3950.resultset.behavior">
     <title>Z39.50 Protocol behavior</title>
     <para>
      The creation of a result set involves at least a SearchRequest
     <title>Z39.50 Protocol behavior</title>
     <para>
      The creation of a result set involves at least a SearchRequest
@@ -577,7 +580,7 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
      to specify one elementSetName option rather than three.
      </para>
    </sect2>
      to specify one elementSetName option rather than three.
      </para>
    </sect2>
-   <sect2>
+   <sect2 id="zoom.sru.resultset.behavior">
     <title>SRU Protocol behavior</title>
     <para>
      Current version of &yaz; does not take advantage of a result set id
     <title>SRU Protocol behavior</title>
     <para>
      Current version of &yaz; does not take advantage of a result set id
@@ -760,7 +763,8 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
      render; charset=marc8,iso-8859-1
     </screen>
    </para>
      render; charset=marc8,iso-8859-1
     </screen>
    </para>
-   <sect2><title>Z39.50 Protocol behavior</title>
+   <sect2 id="zoom.z3950.record.behavior">
+    <title>Z39.50 Protocol behavior</title>
     <para>
      The functions <function>ZOOM_resultset_record</function> and
      <function>ZOOM_resultset_records</function> inspects the client-side
     <para>
      The functions <function>ZOOM_resultset_record</function> and
      <function>ZOOM_resultset_records</function> inspects the client-side
@@ -779,7 +783,8 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
      <emphasis>now</emphasis>.
     </para>
    </sect2>
      <emphasis>now</emphasis>.
     </para>
    </sect2>
-   <sect2><title>SRU Protocol behavior</title>
+   <sect2 id="zoom.sru.record.behavior">
+    <title>SRU Protocol behavior</title>
     <para>
      The ZOOM driver for SRU treats records returned by a SRU server
      as if they where Z39.50 records with transfer syntax XML and
     <para>
      The ZOOM driver for SRU treats records returned by a SRU server
      as if they where Z39.50 records with transfer syntax XML and
@@ -860,7 +865,8 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
     </literallayout>
    </para>
    
     </literallayout>
    </para>
    
-   <table frame="top"><title>ZOOM Scan Set Options</title>
+   <table frame="top" id="zoom.scanset.options">
+    <title>ZOOM Scan Set Options</title>
     <tgroup cols="3">
      <colspec colwidth="4*" colname="name"></colspec>
      <colspec colwidth="7*" colname="description"></colspec>
     <tgroup cols="3">
      <colspec colwidth="4*" colname="name"></colspec>
      <colspec colwidth="7*" colname="description"></colspec>
@@ -893,7 +899,7 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
    </table>
   </sect1>
 
    </table>
   </sect1>
 
-  <sect1 id="zoom.ext"><title>Extended Services</title>
+  <sect1 id="zoom.extendedservices"><title>Extended Services</title>
    <para>
     ZOOM offers an interface to a subset of the Z39.50 extended services
     as well as a few privately defined ones:
    <para>
     ZOOM offers an interface to a subset of the Z39.50 extended services
     as well as a few privately defined ones:
@@ -902,35 +908,35 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
     <listitem>
      <para>
       Z39.50 Item Order (ILL).
     <listitem>
      <para>
       Z39.50 Item Order (ILL).
-      See <xref linkend="zoom.ext.itemorder"/>.
+      See <xref linkend="zoom.item.order"/>.
      </para>
     </listitem>
     <listitem>
      <para>
       Record Update. This allows a client to insert, modify or delete
       records.
      </para>
     </listitem>
     <listitem>
      <para>
       Record Update. This allows a client to insert, modify or delete
       records.
-      See <xref linkend="zoom.ext.update"/>.
+      See <xref linkend="zoom.record.update"/>.
      </para>
     </listitem>
     <listitem>
      <para>
       Database Create. This a non-standard feature. Allows a client
       to create a database.
      </para>
     </listitem>
     <listitem>
      <para>
       Database Create. This a non-standard feature. Allows a client
       to create a database.
-      See <xref linkend="zoom.ext.dbcreate"/>.
+      See <xref linkend="zoom.database.create"/>.
      </para>
     </listitem>
     <listitem>
      <para>
       Database Drop. This a non-standard feature. Allows a client
       to delete/drop a database.
      </para>
     </listitem>
     <listitem>
      <para>
       Database Drop. This a non-standard feature. Allows a client
       to delete/drop a database.
-      See <xref linkend="zoom.ext.dbdrop"/>.
+      See <xref linkend="zoom.database.drop"/>.
      </para>
      </listitem>
     <listitem>
      <para>
       Commit operation. This a non-standard feature. Allows a client
       to commit operations.
      </para>
      </listitem>
     <listitem>
      <para>
       Commit operation. This a non-standard feature. Allows a client
       to commit operations.
-      See <xref linkend="zoom.ext.commit"/>.
+      See <xref linkend="zoom.commit"/>.
      </para>
     </listitem>
     <!-- all the ILL PDU options should go here too -->
      </para>
     </listitem>
     <!-- all the ILL PDU options should go here too -->
@@ -971,7 +977,8 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
     package type to be sent.
    </para>
 
     package type to be sent.
    </para>
 
-   <table frame="top"><title>Extended Service Common Options</title>
+   <table frame="top" id="zoom.extendedservices.options">
+    <title>Extended Service Common Options</title>
     <tgroup cols="3">
      <colspec colwidth="4*" colname="name"></colspec>
      <colspec colwidth="7*" colname="description"></colspec>
     <tgroup cols="3">
      <colspec colwidth="4*" colname="name"></colspec>
      <colspec colwidth="7*" colname="description"></colspec>
@@ -1016,13 +1023,14 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
     </tgroup>
    </table>
 
     </tgroup>
    </table>
 
-   <sect2 id="zoom.ext.itemorder"><title>Item Order</title>
+   <sect2 id="zoom.item.order"><title>Item Order</title>
     <para>
      For Item Order, type must be set to <literal>itemorder</literal> in
      <function>ZOOM_package_send</function>.
     </para>
 
     <para>
      For Item Order, type must be set to <literal>itemorder</literal> in
      <function>ZOOM_package_send</function>.
     </para>
 
-    <table frame="top"><title>Item Order Options</title>
+    <table frame="top" id="zoom.item.order.options">
+     <title>Item Order Options</title>
      <tgroup cols="3">
       <colspec colwidth="4*" colname="name"></colspec>
       <colspec colwidth="7*" colname="description"></colspec>
      <tgroup cols="3">
       <colspec colwidth="4*" colname="name"></colspec>
       <colspec colwidth="7*" colname="description"></colspec>
@@ -1061,13 +1069,14 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
 
    </sect2>
 
 
    </sect2>
 
-   <sect2 id="zoom.ext.update"><title>Record Update</title>
+   <sect2 id="zoom.record.update"><title>Record Update</title>
     <para>
      For Record Update, type must be set to <literal>update</literal> in
      <function>ZOOM_package_send</function>.
     </para>
 
     <para>
      For Record Update, type must be set to <literal>update</literal> in
      <function>ZOOM_package_send</function>.
     </para>
 
-    <table frame="top"><title>Record Update Options</title>
+    <table frame="top" id="zoom.record.update.options">
+     <title>Record Update Options</title>
      <tgroup cols="3">
       <colspec colwidth="4*" colname="name"></colspec>
       <colspec colwidth="7*" colname="description"></colspec>
      <tgroup cols="3">
       <colspec colwidth="4*" colname="name"></colspec>
       <colspec colwidth="7*" colname="description"></colspec>
@@ -1125,13 +1134,14 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
     
    </sect2>
 
     
    </sect2>
 
-   <sect2 id="zoom.ext.dbcreate"><title>Database Create</title>
+   <sect2 id="zoom.database.create"><title>Database Create</title>
     <para>
      For Database Create, type must be set to <literal>create</literal> in
      <function>ZOOM_package_send</function>.
     </para>
     
     <para>
      For Database Create, type must be set to <literal>create</literal> in
      <function>ZOOM_package_send</function>.
     </para>
     
-    <table frame="top"><title>Database Create Options</title>
+    <table frame="top" id="zoom.database.create.options">
+     <title>Database Create Options</title>
      <tgroup cols="3">
       <colspec colwidth="4*" colname="name"></colspec>
       <colspec colwidth="7*" colname="description"></colspec>
      <tgroup cols="3">
       <colspec colwidth="4*" colname="name"></colspec>
       <colspec colwidth="7*" colname="description"></colspec>
@@ -1154,13 +1164,14 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
     </table>
    </sect2>
    
     </table>
    </sect2>
    
-   <sect2 id="zoom.ext.dbdrop"><title>Database Drop</title>
+   <sect2 id="zoom.database.drop"><title>Database Drop</title>
     <para>
      For Database Drop, type must be set to <literal>drop</literal> in
      <function>ZOOM_package_send</function>.
     </para>
     
     <para>
      For Database Drop, type must be set to <literal>drop</literal> in
      <function>ZOOM_package_send</function>.
     </para>
     
-    <table frame="top"><title>Database Create Options</title>
+    <table frame="top" id="zoom.database.drop.options">
+     <title>Database Drop Options</title>
      <tgroup cols="3">
       <colspec colwidth="4*" colname="name"></colspec>
       <colspec colwidth="7*" colname="description"></colspec>
      <tgroup cols="3">
       <colspec colwidth="4*" colname="name"></colspec>
       <colspec colwidth="7*" colname="description"></colspec>
@@ -1183,14 +1194,15 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
     </table>
    </sect2>
    
     </table>
    </sect2>
    
-   <sect2 id="zoom.ext.commit"><title>Commit Operation</title>
+   <sect2 id="zoom.commit"><title>Commit Operation</title>
     <para>
      For Commit, type must be set to <literal>commit</literal> in
      <function>ZOOM_package_send</function>.
     </para>
    </sect2>
 
     <para>
      For Commit, type must be set to <literal>commit</literal> in
      <function>ZOOM_package_send</function>.
     </para>
    </sect2>
 
-   <sect2><title>Protocol behavior</title>
+   <sect2 id="zoom.extended.services.behavior">
+    <title>Protocol behavior</title>
     <para>
      All the extended services are Z39.50-only.
     </para>
     <para>
      All the extended services are Z39.50-only.
     </para>
@@ -1269,7 +1281,8 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
     (integer) for the last event.
    </para>
 
     (integer) for the last event.
    </para>
 
-   <table frame="top"><title>ZOOM Event IDs</title>
+   <table frame="top" id="zoom.event.ids">
+    <title>ZOOM Event IDs</title>
     <tgroup cols="2">
      <colspec colwidth="4*" colname="name"></colspec>
      <colspec colwidth="7*" colname="description"></colspec>
     <tgroup cols="2">
      <colspec colwidth="4*" colname="name"></colspec>
      <colspec colwidth="7*" colname="description"></colspec>