-<!-- $Id: asn.xml,v 1.7 2001-08-13 09:42:54 adam Exp $ -->
- <chapter><title>The ASN Module</title>
- <sect1><title>Introduction</title>
+<!-- $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>
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
structure before freeing the structure itself.
</para>
<para>
- You can use the <function>odr_malloc()</function> function (see section
- <link linkend="odr-use">Using ODR</link> for details). When you use
+ You can use the <function>odr_malloc()</function> function (see
+ <xref linkend="odr.use"/> for details). When you use
<function>odr_malloc()</function>, you can release all of the
allocated data in a single operation, independent of any pointers and
relations between the data. <function>odr_malloc()</function> is based on a
</para>
</sect1>
- <sect1><title id="oid">Object Identifiers</title>
+ <sect1 id="asn.oid"><title>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
</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
<literal>z_ext_gettypebyref</literal> to look for the provided
direct-reference.
If the return value is different from NULL, you can use the provided
- function to decode the BER string (see section <link linkend="odr-use">
- Using ODR</link>).
+ function to decode the BER string (see <xref linkend="odr.use"/>
+ ).
</para>
<para>
</note>
</sect1>
- <sect1><title>PDU Contents Table</title>
+ <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>
+ <table frame="top" id="asn.default.initialize.request">
+ <title>Default settings for PDU Initialize 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>
idAuthentication</entry><entry>Z_IdAuthentication</entry><entry>NULL
</entry></row>
<row><entry>
- implementationId</entry><entry>char*</entry><entry>"YAZ (id=81)"
+ implementationId</entry><entry>char*</entry><entry>"81"
</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
</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 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>
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
</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 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>
</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 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>
</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 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>
</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 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>
nextResultSetPosition</entry><entry>int</entry><entry>0
</entry></row>
<row><entry>
- presentStatus</entry><entry>int</entry><entry>Z_PRES_SUCCESS
+ presentStatus</entry><entry>int</entry><entry>Z_PresentStatus_success
</entry></row>
<row><entry>
records</entry><entry>Z_Records</entry><entry>NULL
</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 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>
</entry><entry>Z_ReferenceId</entry><entry>NULL
</entry></row>
<row><entry>
- deleteFunction</entry><entry>int</entry><entry>Z_DeleteRequest_list
+ deleteFunction</entry><entry>int</entry><entry>Z_DeleteResultSetRequest_list
</entry></row>
<row><entry>
num_ids</entry><entry>int</entry><entry>0
</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 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>
</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 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>
</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 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>
</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 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>
</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 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>
</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 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>
</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 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>
</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 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>
</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 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>
</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 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>
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document: "yaz.xml"
- sgml-local-catalogs: "../../docbook/docbook.cat"
+ sgml-local-catalogs: nil
sgml-namecase-general:t
End:
-->