+++ /dev/null
- <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 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>Odr_int</literal> which is equivalent to an integral
- C integer. For ASN.1 constructs that have no direct
- representation in C, such as general octet strings and bit strings,
- 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 id="asn.preparing"><title>Preparing PDUs</title>
-
- <para>
- A structure representing a complex ASN.1 type doesn't in itself contain the
- members of that type. Instead, the structure contains
- <emphasis>pointers</emphasis> to the members of the type.
- This is necessary, in part, to allow a mechanism for specifying which
- of the optional structure (SEQUENCE) members are present, and which
- are not. It follows that you will need to somehow provide space for
- the individual members of the structure, and set the pointers to
- refer to the members.
- </para>
- <para>
- The conversion routines don't care how you allocate and maintain your
- C structures - they just follow the pointers that you provide.
- Depending on the complexity of your application, and your personal
- taste, there are at least three different approaches that you may take
- when you allocate the structures.
- </para>
-
- <para>
- You can use static or automatic local variables in the function that
- prepares the PDU. This is a simple approach, and it provides the most
- efficient form of memory management. While it works well for flat
- PDUs like the InitReqest, it will generally not be sufficient for say,
- the generation of an arbitrarily complex RPN query structure.
- </para>
- <para>
- You can individually create the structure and its members using the
- <function>malloc(2)</function> function. If you want to ensure that
- the data is freed when it is no longer needed, you will have to
- define a function that individually releases each member of a
- structure before freeing the structure itself.
- </para>
- <para>
- 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
- "nibble-memory"
- scheme, in which large portions of memory are allocated, and then
- gradually handed out with each call to <function>odr_malloc()</function>.
- The next time you call <function>odr_reset()</function>, all of the
- memory allocated since the last call is recycled for future use (actually,
- it is placed on a free-list).
- </para>
- <para>
- You can combine all of the methods described here. This will often be
- the most practical approach. For instance, you might use
- <function>odr_malloc()</function> to allocate an entire structure and
- some of its elements, while you leave other elements pointing to global
- or per-session default variables.
- </para>
-
- <para>
- The &asn; module provides an important aid in creating new PDUs. For
- each of the PDU types (say, <function>Z_InitRequest</function>), a
- function is provided that allocates and initializes an instance of
- that PDU type for you. In the case of the InitRequest, the function is
- simply named <function>zget_InitRequest()</function>, and it sets up
- reasonable default value for all of the mandatory members. The optional
- members are generally initialized to null pointers. This last aspect
- is very important: it ensures that if the PDU definitions are
- extended after you finish your implementation (to accommodate
- new versions of the protocol, say), you won't get into trouble with
- uninitialized pointers in your structures. The functions use
- <function>odr_malloc()</function> to
- allocate the PDUs and its members, so you can free everything again with a
- single call to <function>odr_reset()</function>. We strongly recommend
- that you use the <literal>zget_*</literal>
- functions whenever you are preparing a PDU (in a C++ API, the
- <literal>zget_</literal>
- functions would probably be promoted to constructors for the
- individual types).
- </para>
- <para>
- The prototype for the individual PDU types generally look like this:
- </para>
- <synopsis>
- Z_<type> *zget_<type>(ODR o);
- </synopsis>
-
- <para>
- eg.:
- </para>
-
- <synopsis>
- Z_InitRequest *zget_InitRequest(ODR o);
- </synopsis>
-
- <para>
- The &odr; handle should generally be your encoding stream, but it
- needn't be.
- </para>
- <para>
- As well as the individual PDU functions, a function
- <function>zget_APDU()</function> is provided, which allocates
- a top-level Z-APDU of the type requested:
- </para>
-
- <synopsis>
- Z_APDU *zget_APDU(ODR o, int which);
- </synopsis>
-
- <para>
- The <varname>which</varname> parameter is (of course) the discriminator
- belonging to the <varname>Z_APDU</varname> <literal>CHOICE</literal> type.
- All of the interface described here is provided by the &asn; module, and
- you access it through the <filename>proto.h</filename> header file.
-
- </para>
- </sect1>
- <sect1 id="asn.external"><title>EXTERNAL Data</title>
-
- <para>
- In order to achieve extensibility and adaptability to different
- application domains, the new version of the protocol defines many
- structures outside of the main ASN.1 specification, referencing them
- through ASN.1 EXTERNAL constructs. To simplify the construction and
- access to the externally referenced data, the &asn; module defines a
- specialized version of the EXTERNAL construct, called
- <literal>Z_External</literal>.It is defined thus:
- </para>
-
- <screen>
-typedef struct Z_External
-{
- Odr_oid *direct_reference;
- int *indirect_reference;
- char *descriptor;
- enum
- {
- /* Generic types */
- Z_External_single = 0,
- Z_External_octet,
- Z_External_arbitrary,
-
- /* Specific types */
- Z_External_SUTRS,
- Z_External_explainRecord,
- Z_External_resourceReport1,
- Z_External_resourceReport2
-
- ...
-
- } which;
- union
- {
- /* Generic types */
- Odr_any *single_ASN1_type;
- Odr_oct *octet_aligned;
- Odr_bitmask *arbitrary;
-
- /* Specific types */
- Z_SUTRS *sutrs;
- Z_ExplainRecord *explainRecord;
- Z_ResourceReport1 *resourceReport1;
- Z_ResourceReport2 *resourceReport2;
-
- ...
-
- } u;
-} Z_External;
- </screen>
-
- <para>
- When decoding, the &asn; module will attempt to determine which
- syntax describes the data by looking at the reference fields
- (currently only the direct-reference). For ASN.1 structured data, you
- need only consult the <literal>which</literal> field to determine the
- type of data. You can the access the data directly through the union.
- When constructing data for encoding, you set the union pointer to point
- to the data, and set the <literal>which</literal> field accordingly.
- Remember also to set the direct (or indirect) reference to the correct
- OID for the data type.
- For non-ASN.1 data such as MARC records, use the
- <literal>octet_aligned</literal> arm of the union.
- </para>
-
- <para>
- Some servers return ASN.1 structured data values (eg. database
- records) as BER-encoded records placed in the
- <literal>octet-aligned</literal> branch of the EXTERNAL CHOICE.
- The ASN-module will <emphasis>not</emphasis> automatically decode
- these records. To help you decode the records in the application, the
- function
- </para>
-
- <screen>
- Z_ext_typeent *z_ext_gettypebyref(const oid *oid);
- </screen>
-
- <para>
- Can be used to retrieve information about the known, external data
- types. The function return a pointer to a static area, or NULL, if no
- match for the given direct reference is found. The
- <literal>Z_ext_typeent</literal>
- is defined as:
- </para>
-
- <screen>
-typedef struct Z_ext_typeent
-{
- int oid[OID_SIZE]; /* the direct-reference OID. */
- int what; /* discriminator value for the external CHOICE */
- Odr_fun fun; /* decoder function */
-} Z_ext_typeent;
- </screen>
-
- <para>
- The <literal>what</literal> member contains the
- <literal>Z_External</literal> union discriminator value for the
- given type: For the SUTRS record syntax, the value would be
- <literal>Z_External_sutrs</literal>.
- The <literal>fun</literal> member contains a pointer to the
- function which encodes/decodes the given type. Again, for the SUTRS
- record syntax, the value of <literal>fun</literal> would be
- <literal>z_SUTRS</literal> (a function pointer).
- </para>
-
- <para>
- If you receive an EXTERNAL which contains an octet-string value that
- you suspect of being an ASN.1-structured data value, you can use
- <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 <xref linkend="odr.use"/>
- ).
- </para>
-
- <para>
- If you want to <emphasis>send</emphasis> EXTERNALs containing
- ASN.1-structured values in the occtet-aligned branch of the CHOICE, this
- is possible too. However, on the encoding phase, it requires a somewhat
- involved juggling around of the various buffers involved.
- </para>
- <para>
- If you need to add new, externally defined data types, you must update
- the struct above, in the source file <filename>prt-ext.h</filename>, as
- well as the encoder/decoder in the file <filename>prt-ext.c</filename>.
- When changing the latter, remember to update both the
- <literal>arm</literal> arrary and the list
- <literal>type_table</literal>, which drives the CHOICE biasing that
- is necessary to tell the different, structured types apart
- on decoding.
- </para>
-
- <note>
- <para>
- Eventually, the EXTERNAL processing will most likely
- automatically insert the correct OIDs or indirect-refs. First,
- however, we need to determine how application-context management
- (specifically the presentation-context-list) should fit into the
- various modules.
- </para>
- </note>
-
- </sect1>
- <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" 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>
- <colspec colwidth="7*" colname="value"></colspec>
- <thead>
- <row>
- <entry>Field</entry>
- <entry>Type</entry>
- <entry>Default Value</entry>
- </row>
- </thead>
- <tbody>
- <row><entry>
- referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
- </entry></row>
- <row><entry>
- protocolVersion</entry><entry>Odr_bitmask</entry><entry>Empty bitmask
- </entry></row>
- <row><entry>
- options</entry><entry>Odr_bitmask</entry><entry>Empty bitmask
- </entry></row>
- <row><entry>
- preferredMessageSize</entry><entry>Odr_int</entry><entry>30*1024
- </entry></row>
- <row><entry>
- maximumRecordSize</entry><entry>Odr_int</entry><entry>30*1024
- </entry></row>
- <row><entry>
- idAuthentication</entry><entry>Z_IdAuthentication</entry><entry>NULL
- </entry></row>
- <row><entry>
- implementationId</entry><entry>char*</entry><entry>"81"
- </entry></row>
- <row><entry>
- implementationName</entry><entry>char*</entry><entry>"YAZ"
- </entry></row>
- <row><entry>
- implementationVersion</entry><entry>char*</entry><entry>YAZ_VERSION
- </entry></row>
- <row><entry>
- userInformationField</entry><entry>Z_UserInformation</entry><entry>NULL
- </entry></row>
- <row><entry>
- otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
- </entry></row>
- </tbody>
- </tgroup>
- </table>
-
- <table frame="top" id="asn.default.initialize.response">
- <title>Default settings for PDU Initialize
- Response</title>
- <tgroup cols="3">
- <colspec colwidth="7*" colname="field"></colspec>
- <colspec colwidth="5*" colname="type"></colspec>
- <colspec colwidth="7*" colname="value"></colspec>
- <thead>
- <row>
- <entry>Field</entry>
- <entry>Type</entry>
- <entry>Default Value</entry>
- </row>
- </thead>
- <tbody>
- <row><entry>
- referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
- </entry></row>
- <row><entry>
- protocolVersion</entry><entry>Odr_bitmask</entry><entry>Empty bitmask
- </entry></row>
- <row><entry>
- options</entry><entry>Odr_bitmask</entry><entry>Empty bitmask
- </entry></row>
- <row><entry>
- preferredMessageSize</entry><entry>Odr_int</entry><entry>30*1024
- </entry></row>
- <row><entry>
- maximumRecordSize</entry><entry>Odr_int</entry><entry>30*1024
- </entry></row>
- <row><entry>
- result</entry><entry>Odr_bool</entry><entry>TRUE
- </entry></row>
- <row><entry>
- implementationId</entry><entry>char*</entry><entry>"id)"
- </entry></row>
- <row><entry>
- implementationName</entry><entry>char*</entry><entry>"YAZ"
- </entry></row>
- <row><entry>
- implementationVersion</entry><entry>char*</entry><entry>YAZ_VERSION
- </entry></row>
- <row><entry>
- userInformationField</entry><entry>Z_UserInformation</entry><entry>NULL
- </entry></row>
- <row><entry>
- otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
- </entry></row>
- </tbody>
- </tgroup>
- </table>
-
- <table frame="top" 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>
- <colspec colwidth="7*" colname="value"></colspec>
- <thead>
- <row>
- <entry>Field</entry>
- <entry>Type</entry>
- <entry>Default Value</entry>
- </row>
- </thead>
- <tbody>
- <row><entry>
- referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
- </entry></row>
- <row><entry>
- smallSetUpperBound</entry><entry>Odr_int</entry><entry>0
- </entry></row>
- <row><entry>
- largeSetLowerBound</entry><entry>Odr_int</entry><entry>1
- </entry></row>
- <row><entry>
- mediumSetPresentNumber</entry><entry>Odr_int</entry><entry>0
- </entry></row>
- <row><entry>
- replaceIndicator</entry><entry>Odr_bool</entry><entry>TRUE
- </entry></row>
- <row><entry>
- resultSetName</entry><entry>char *</entry><entry>"default"
- </entry></row>
- <row><entry>
- num_databaseNames</entry><entry>Odr_int</entry><entry>0
- </entry></row>
- <row><entry>
- databaseNames</entry><entry>char **</entry><entry>NULL
- </entry></row>
- <row><entry>
- smallSetElementSetNames</entry><entry>Z_ElementSetNames
- </entry><entry>NULL
- </entry></row>
- <row><entry>
- mediumSetElementSetNames</entry><entry>Z_ElementSetNames
- </entry><entry>NULL
- </entry></row>
- <row><entry>
- preferredRecordSyntax</entry><entry>Odr_oid</entry><entry>NULL
- </entry></row>
- <row><entry>
- query</entry><entry>Z_Query</entry><entry>NULL
- </entry></row>
- <row><entry>
- additionalSearchInfo</entry><entry>Z_OtherInformation
- </entry><entry>NULL
- </entry></row>
- <row><entry>
- otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
- </entry></row>
- </tbody>
- </tgroup>
- </table>
-
- <table frame="top" 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>
- <colspec colwidth="7*" colname="value"></colspec>
- <thead>
- <row>
- <entry>Field</entry>
- <entry>Type</entry>
- <entry>Default Value</entry>
- </row>
- </thead>
- <tbody>
-
- <row><entry>
- referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
- </entry></row>
- <row><entry>
- resultCount</entry><entry>Odr_int</entry><entry>0
- </entry></row>
- <row><entry>
- numberOfRecordsReturned</entry><entry>Odr_int</entry><entry>0
- </entry></row>
- <row><entry>
- nextResultSetPosition</entry><entry>Odr_int</entry><entry>0
- </entry></row>
- <row><entry>
- searchStatus</entry><entry>Odr_bool</entry><entry>TRUE
- </entry></row>
- <row><entry>
- resultSetStatus</entry><entry>Odr_int</entry><entry>NULL
- </entry></row>
- <row><entry>
- presentStatus</entry><entry>Odr_int</entry><entry>NULL
- </entry></row>
- <row><entry>
- records</entry><entry>Z_Records</entry><entry>NULL
- </entry></row>
- <row><entry>
- additionalSearchInfo</entry>
- <entry>Z_OtherInformation</entry><entry>NULL
- </entry></row>
- <row><entry>
- otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
- </entry></row>
- </tbody>
- </tgroup>
- </table>
-
- <table frame="top" 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>
- <colspec colwidth="7*" colname="value"></colspec>
- <thead>
- <row>
- <entry>Field</entry>
- <entry>Type</entry>
- <entry>Default Value</entry>
- </row>
- </thead>
- <tbody>
- <row><entry>
- referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
- </entry></row>
- <row><entry>
- resultSetId</entry><entry>char*</entry><entry>"default"
- </entry></row>
- <row><entry>
- resultSetStartPoint</entry><entry>Odr_int</entry><entry>1
- </entry></row>
- <row><entry>
- numberOfRecordsRequested</entry><entry>Odr_int</entry><entry>10
- </entry></row>
- <row><entry>
- num_ranges</entry><entry>Odr_int</entry><entry>0
- </entry></row>
- <row><entry>
- additionalRanges</entry><entry>Z_Range</entry><entry>NULL
- </entry></row>
- <row><entry>
- recordComposition</entry><entry>Z_RecordComposition</entry><entry>NULL
- </entry></row>
- <row><entry>
- preferredRecordSyntax</entry><entry>Odr_oid</entry><entry>NULL
- </entry></row>
- <row><entry>
- maxSegmentCount</entry><entry>Odr_int</entry><entry>NULL
- </entry></row>
- <row><entry>
- maxRecordSize</entry><entry>Odr_int</entry><entry>NULL
- </entry></row>
- <row><entry>
- maxSegmentSize</entry><entry>Odr_int</entry><entry>NULL
- </entry></row>
- <row><entry>
- otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
- </entry></row>
- </tbody>
- </tgroup>
- </table>
-
- <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>
- <colspec colwidth="7*" colname="value"></colspec>
- <thead>
- <row>
- <entry>Field</entry>
- <entry>Type</entry>
- <entry>Default Value</entry>
- </row>
- </thead>
- <tbody>
- <row><entry>
- referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
- </entry></row>
- <row><entry>
- numberOfRecordsReturned</entry><entry>Odr_int</entry><entry>0
- </entry></row>
- <row><entry>
- nextResultSetPosition</entry><entry>Odr_int</entry><entry>0
- </entry></row>
- <row><entry>
- presentStatus</entry><entry>Odr_int</entry><entry>Z_PresentStatus_success
- </entry></row>
- <row><entry>
- records</entry><entry>Z_Records</entry><entry>NULL
- </entry></row>
- <row><entry>
- otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
- </entry></row>
- </tbody>
- </tgroup>
- </table>
-
- <table frame="top" 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>
- <colspec colwidth="5*" colname="type"></colspec>
- <colspec colwidth="7*" colname="value"></colspec>
- <thead>
- <row>
- <entry>Field</entry>
- <entry>Type</entry>
- <entry>Default Value</entry>
- </row>
- </thead>
- <tbody>
- <row><entry>referenceId
- </entry><entry>Z_ReferenceId</entry><entry>NULL
- </entry></row>
- <row><entry>
- deleteFunction</entry><entry>Odr_int</entry><entry>Z_DeleteResultSetRequest_list
- </entry></row>
- <row><entry>
- num_ids</entry><entry>Odr_int</entry><entry>0
- </entry></row>
- <row><entry>
- resultSetList</entry><entry>char**</entry><entry>NULL
- </entry></row>
- <row><entry>
- otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
- </entry></row>
- </tbody>
- </tgroup>
- </table>
-
- <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>
- <colspec colwidth="5*" colname="type"></colspec>
- <colspec colwidth="7*" colname="value"></colspec>
- <thead>
- <row>
- <entry>Field</entry>
- <entry>Type</entry>
- <entry>Default Value</entry>
- </row>
- </thead>
- <tbody>
- <row><entry>
- referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
- </entry></row>
- <row><entry>
- deleteOperationStatus</entry><entry>Odr_int</entry>
- <entry>Z_DeleteStatus_success</entry></row>
- <row><entry>
- num_statuses</entry><entry>Odr_int</entry><entry>0
- </entry></row>
- <row><entry>
- deleteListStatuses</entry><entry>Z_ListStatus**</entry><entry>NULL
- </entry></row>
- <row><entry>
- numberNotDeleted</entry><entry>Odr_int</entry><entry>NULL
- </entry></row>
- <row><entry>
- num_bulkStatuses</entry><entry>Odr_int</entry><entry>0
- </entry></row>
- <row><entry>
- bulkStatuses</entry><entry>Z_ListStatus</entry><entry>NUL
- L</entry></row>
- <row><entry>
- deleteMessage</entry><entry>char*</entry><entry>NULL
- </entry></row>
- <row><entry>
- otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
- </entry></row>
- </tbody>
- </tgroup>
- </table>
-
- <table frame="top" id="asn.default.scan.request">
- <title>Default settings for Scan Request
- </title>
- <tgroup cols="3">
- <colspec colwidth="7*" colname="field"></colspec>
- <colspec colwidth="5*" colname="type"></colspec>
- <colspec colwidth="7*" colname="value"></colspec>
- <thead>
- <row>
- <entry>Field</entry>
- <entry>Type</entry>
- <entry>Default Value</entry>
- </row>
- </thead>
- <tbody>
- <row><entry>
- referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
- </entry></row>
- <row><entry>
- num_databaseNames</entry><entry>Odr_int</entry><entry>0
- </entry></row>
- <row><entry>
- databaseNames</entry><entry>char**</entry><entry>NULL
- </entry></row>
- <row><entry>
- attributeSet</entry><entry>Odr_oid</entry><entry>NULL
- </entry></row>
- <row><entry>
- termListAndStartPoint</entry><entry>Z_AttributesPlus...
- </entry><entry>NULL</entry></row>
- <row><entry>
- stepSize</entry><entry>Odr_int</entry><entry>NULL
- </entry></row>
- <row><entry>
- numberOfTermsRequested</entry><entry>Odr_int</entry><entry>20
- </entry></row>
- <row><entry>
- preferredPositionInResponse</entry><entry>Odr_int</entry><entry>NULL
- </entry></row>
- <row><entry>
- otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
- </entry></row>
- </tbody>
- </tgroup>
- </table>
-
- <table frame="top" id="asn.default.scan.response">
- <title>Default settings for Scan Response
- </title>
- <tgroup cols="3">
- <colspec colwidth="7*" colname="field"></colspec>
- <colspec colwidth="5*" colname="type"></colspec>
- <colspec colwidth="7*" colname="value"></colspec>
- <thead>
- <row>
- <entry>Field</entry>
- <entry>Type</entry>
- <entry>Default Value</entry>
- </row>
- </thead>
- <tbody>
-
- <row><entry>
- referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
- </entry></row>
- <row><entry>
- stepSize</entry><entry>Odr_int</entry><entry>NULL
- </entry></row>
- <row><entry>
- scanStatus</entry><entry>Odr_int</entry><entry>Z_Scan_success
- </entry></row>
- <row><entry>
- numberOfEntriesReturned</entry><entry>Odr_int</entry><entry>0
- </entry></row>
- <row><entry>
- positionOfTerm</entry><entry>Odr_int</entry><entry>NULL
- </entry></row>
- <row><entry>
- entries</entry><entry>Z_ListEntris</entry><entry>NULL
- </entry></row>
- <row><entry>
- attributeSet</entry><entry>Odr_oid</entry><entry>NULL
- </entry></row>
- <row><entry>
- otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
- </entry></row>
- </tbody>
- </tgroup>
- </table>
-
- <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>
- <colspec colwidth="7*" colname="value"></colspec>
- <thead>
- <row>
- <entry>Field</entry>
- <entry>Type</entry>
- <entry>Default Value</entry>
- </row>
- </thead>
- <tbody>
-
- <row><entry>
- referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
- </entry></row>
- <row><entry>
- requestedAction</entry><entry>Odr_int</entry><entry>
- Z_TriggerResourceCtrl_resou..
- </entry></row>
- <row><entry>
- prefResourceReportFormat</entry><entry>Odr_oid</entry><entry>NULL
- </entry></row>
- <row><entry>
- resultSetWanted</entry><entry>Odr_bool</entry><entry>NULL
- </entry></row>
- <row><entry>
- otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
- </entry></row>
-
- </tbody>
- </tgroup>
- </table>
-
- <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>
- <colspec colwidth="7*" colname="value"></colspec>
- <thead>
- <row>
- <entry>Field</entry>
- <entry>Type</entry>
- <entry>Default Value</entry>
- </row>
- </thead>
- <tbody>
-
- <row><entry>
- referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
- </entry></row>
- <row><entry>
- suspendedFlag</entry><entry>Odr_bool</entry><entry>NULL
- </entry></row>
- <row><entry>
- resourceReport</entry><entry>Z_External</entry><entry>NULL
- </entry></row>
- <row><entry>
- partialResultsAvailable</entry><entry>Odr_int</entry><entry>NULL
- </entry></row>
- <row><entry>
- responseRequired</entry><entry>Odr_bool</entry><entry>FALSE
- </entry></row>
- <row><entry>
- triggeredRequestFlag</entry><entry>Odr_bool</entry><entry>NULL
- </entry></row>
- <row><entry>
- otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
- </entry></row>
- </tbody>
- </tgroup>
- </table>
-
- <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>
- <colspec colwidth="7*" colname="value"></colspec>
- <thead>
- <row>
- <entry>Field</entry>
- <entry>Type</entry>
- <entry>Default Value</entry>
- </row>
- </thead>
- <tbody>
-
- <row><entry>
- referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
- </entry></row>
- <row><entry>
- continueFlag</entry><entry>bool_t</entry><entry>TRUE
- </entry></row>
- <row><entry>
- resultSetWanted</entry><entry>bool_t</entry><entry>NULL
- </entry></row>
- <row><entry>
- otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
- </entry></row>
- </tbody>
- </tgroup>
- </table>
-
- <table frame="top" 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>
- <colspec colwidth="7*" colname="value"></colspec>
- <thead>
- <row>
- <entry>Field</entry>
- <entry>Type</entry>
- <entry>Default Value</entry>
- </row>
- </thead>
- <tbody>
-
- <row><entry>
- referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
- </entry></row>
- <row><entry>
- which</entry><entry>enum</entry><entry>Z_AccessRequest_simpleForm;
- </entry></row>
- <row><entry>
- u</entry><entry>union</entry><entry>NULL
- </entry></row>
- <row><entry>
- otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
- </entry></row>
- </tbody>
- </tgroup>
- </table>
-
- <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>
- <colspec colwidth="7*" colname="value"></colspec>
- <thead>
- <row>
- <entry>Field</entry>
- <entry>Type</entry>
- <entry>Default Value</entry>
- </row>
- </thead>
- <tbody>
-
- <row><entry>
- referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
- </entry></row>
- <row><entry>
- which</entry><entry>enum</entry><entry>Z_AccessResponse_simpleForm
- </entry></row>
- <row><entry>
- u</entry><entry>union</entry><entry>NULL
- </entry></row>
- <row><entry>
- diagnostic</entry><entry>Z_DiagRec</entry><entry>NULL
- </entry></row>
- <row><entry>
- otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
- </entry></row>
- </tbody>
- </tgroup>
- </table>
-
- <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>
- <colspec colwidth="7*" colname="value"></colspec>
- <thead>
- <row>
- <entry>Field</entry>
- <entry>Type</entry>
- <entry>Default Value</entry>
- </row>
- </thead>
- <tbody>
-
- <row><entry>
- referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
- </entry></row>
- <row><entry>
- numberOfRecordsReturned</entry><entry>Odr_int</entry><entry>value=0
- </entry></row>
- <row><entry>
- num_segmentRecords</entry><entry>Odr_int</entry><entry>0
- </entry></row>
- <row><entry>
- segmentRecords</entry><entry>Z_NamePlusRecord</entry><entry>NULL
- </entry></row>
- <row><entry>otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
- </entry></row>
- </tbody>
- </tgroup>
- </table>
-
- <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>
- <colspec colwidth="7*" colname="value"></colspec>
- <thead>
- <row>
- <entry>Field</entry>
- <entry>Type</entry>
- <entry>Default Value</entry>
- </row>
- </thead>
- <tbody>
-
- <row><entry>
- referenceId</entry><entry>Z_ReferenceId</entry><entry>NULL
- </entry></row>
- <row><entry>
- closeReason</entry><entry>Odr_int</entry><entry>Z_Close_finished
- </entry></row>
- <row><entry>
- diagnosticInformation</entry><entry>char*</entry><entry>NULL
- </entry></row>
- <row><entry>
- resourceReportFormat</entry><entry>Odr_oid</entry><entry>NULL
- </entry></row>
- <row><entry>
- resourceFormat</entry><entry>Z_External</entry><entry>NULL
- </entry></row>
- <row><entry>
- otherInfo</entry><entry>Z_OtherInformation</entry><entry>NULL
- </entry></row>
-
- </tbody>
- </tgroup>
- </table>
-
- </sect1>
- </chapter>
-
- <!-- Keep this comment at the end of the file
- Local variables:
- mode: sgml
- sgml-omittag:t
- sgml-shorttag:t
- sgml-minimize-attributes:nil
- sgml-always-quote-attributes:t
- sgml-indent-step:1
- sgml-indent-data:t
- sgml-parent-document: "yaz.xml"
- sgml-local-catalogs: nil
- sgml-namecase-general:t
- End:
- -->