-<!-- $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>
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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
-<!-- $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>
</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);
</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);
-<!-- $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 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">
-<!-- $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>
- <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
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);
</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
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>
</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
</sect2>
- <sect2><title>scan</title>
+ <sect2 id="server.scan"><title>Scan</title>
<para>
For servers that wish to offer the scan service one handler
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.
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
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
-<!-- $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>
<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>
-<!-- $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>
</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>
</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>
</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
<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);
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),
</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.
<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
</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.
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>
</para>
</sect2>
- <sect2><title>Summary and Synopsis</title>
+ <sect2 id="odr.summary.and.synopsis">
+ <title>Summary and Synopsis</title>
<synopsis>
#include <odr.h>
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>
- <sect3><title>INTEGER</title>
+ <sect3 id="odr.integer"><title>INTEGER</title>
<para>
The &odr; function for encoding or decoding (or printing) the ASN.1
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>
- <sect3><title>REAL</title>
+ <sect3 id="odr.real"><title>REAL</title>
<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);
</para>
</sect3>
- <sect3><title>OCTET STRING</title>
+ <sect3 id="odr.octet.string"><title>OCTET STRING</title>
<synopsis>
typedef struct odr_oct
</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,
</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);
</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>
</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>
</sect2>
- <sect2><title>Tagging Constructed Types</title>
+ <sect2 id="odr.tagging.constructed.types">
+ <title>Tagging Constructed Types</title>
<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>
- <sect3><title>Implicit Tagging</title>
+ <sect3 id="odr.implicit.tagging">
+ <title>Implicit Tagging</title>
<para>
Assume the type above had been defined as
</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,
</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
</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
-<!-- $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>
<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
</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"
</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
</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
</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></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>
- <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
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.
</screen>
- <example><title>CCL queries</title>
+ <example id="example.ccl.queries">
+ <title>CCL queries</title>
<para>
The following queries are all valid:
</para>
</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
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>
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>
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>
</table>
</para>
- <example><title>CCL profile</title>
+ <example id="example.ccl.profile"><title>CCL profile</title>
<para>
Consider the following definition:
</para>
</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>
</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>
- <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>
- <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>
</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>
</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
</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>
</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>
</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
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
</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>
</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.
</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
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
<!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>
<filename>yaz-<version>/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>
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
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
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
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>
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>
</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
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
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
<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
</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>
</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:
<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.
- 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.
- 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.
- 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.
- See <xref linkend="zoom.ext.commit"/>.
+ See <xref linkend="zoom.commit"/>.
</para>
</listitem>
<!-- all the ILL PDU options should go here too -->
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>
</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>
- <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>
</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>
- <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>
</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>
- <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>
</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>
- <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>
</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>
- <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>
(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>