X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=doc%2Fasn.xml;h=78ee8148a1c0ce6a43c4301eb7078ed064602757;hp=c787d4f62402016f059b10038d8b9b05c4ff1a40;hb=c91efbe35fe8ff53aeafedf0ffb8f1b90841ecdc;hpb=62d24093ae987d90e07a40a8d75f1338b5bbb14b diff --git a/doc/asn.xml b/doc/asn.xml index c787d4f..78ee814 100644 --- a/doc/asn.xml +++ b/doc/asn.xml @@ -15,12 +15,12 @@ The &asn; module is located in sub directory z39.50. There you'll find C files that implements encoders and decoders for the Z39.50 types. You'll also find the protocol definitions: - z3950v3.asn, esupdate.asn, + z3950v3.asn, esupdate.asn, and others. Preparing PDUs - + A structure representing a complex ASN.1 type doesn't in itself contain the members of that type. Instead, the structure contains @@ -38,7 +38,7 @@ taste, there are at least three different approaches that you may take when you allocate the structures. - + 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 @@ -73,7 +73,7 @@ some of its elements, while you leave other elements pointing to global or per-session default variables. - + The &asn; module provides an important aid in creating new PDUs. For each of the PDU types (say, Z_InitRequest), a @@ -101,11 +101,11 @@ Z_<type> *zget_<type>(ODR o); - + eg.: - + Z_InitRequest *zget_InitRequest(ODR o); @@ -119,21 +119,21 @@ zget_APDU() is provided, which allocates a top-level Z-APDU of the type requested: - + Z_APDU *zget_APDU(ODR o, int which); - + The which parameter is (of course) the discriminator belonging to the Z_APDU CHOICE type. All of the interface described here is provided by the &asn; module, and you access it through the proto.h header file. - + EXTERNAL Data - + In order to achieve extensibility and adaptability to different application domains, the new version of the protocol defines many @@ -143,7 +143,7 @@ specialized version of the EXTERNAL construct, called Z_External.It is defined thus: - + typedef struct Z_External { @@ -184,7 +184,7 @@ typedef struct Z_External } u; } Z_External; - + When decoding, the &asn; module will attempt to determine which syntax describes the data by looking at the reference fields @@ -198,7 +198,7 @@ typedef struct Z_External For non-ASN.1 data such as MARC records, use the octet_aligned arm of the union. - + Some servers return ASN.1 structured data values (eg. database records) as BER-encoded records placed in the @@ -207,7 +207,7 @@ typedef struct Z_External these records. To help you decode the records in the application, the function - + Z_ext_typeent *z_ext_gettypebyref(const oid *oid); @@ -219,7 +219,7 @@ typedef struct Z_External Z_ext_typeent is defined as: - + typedef struct Z_ext_typeent { @@ -228,7 +228,7 @@ typedef struct Z_ext_typeent Odr_fun fun; /* decoder function */ } Z_ext_typeent; - + The what member contains the Z_External union discriminator value for the @@ -239,7 +239,7 @@ typedef struct Z_ext_typeent record syntax, the value of fun would be z_SUTRS (a function pointer). - + 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 @@ -249,7 +249,7 @@ typedef struct Z_ext_typeent function to decode the BER string (see ). - + If you want to send EXTERNALs containing ASN.1-structured values in the occtet-aligned branch of the CHOICE, this @@ -266,7 +266,7 @@ typedef struct Z_ext_typeent is necessary to tell the different, structured types apart on decoding. - + Eventually, the EXTERNAL processing will most likely @@ -276,15 +276,15 @@ typedef struct Z_ext_typeent various modules. - + PDU Contents Table - + We include, for reference, a listing of the fields of each top-level PDU, as well as their default settings. - + Default settings for PDU Initialize Request @@ -465,7 +465,7 @@ typedef struct Z_ext_typeent - + referenceIdZ_ReferenceIdNULL @@ -554,7 +554,7 @@ typedef struct Z_ext_typeent
- + Default settings for PDU Present Response @@ -590,7 +590,7 @@ typedef struct Z_ext_typeent
- + Default settings for Delete Result Set Request @@ -732,7 +732,7 @@ typedef struct Z_ext_typeent - + referenceIdZ_ReferenceIdNULL @@ -775,7 +775,7 @@ typedef struct Z_ext_typeent - + referenceIdZ_ReferenceIdNULL @@ -792,7 +792,7 @@ typedef struct Z_ext_typeent otherInfoZ_OtherInformationNULL - +
@@ -811,7 +811,7 @@ typedef struct Z_ext_typeent - + referenceIdZ_ReferenceIdNULL @@ -851,7 +851,7 @@ typedef struct Z_ext_typeent - + referenceIdZ_ReferenceIdNULL @@ -867,7 +867,7 @@ typedef struct Z_ext_typeent - + Default settings for Access Control Request @@ -882,7 +882,7 @@ typedef struct Z_ext_typeent - + referenceIdZ_ReferenceIdNULL @@ -913,7 +913,7 @@ typedef struct Z_ext_typeent - + referenceIdZ_ReferenceIdNULL @@ -947,7 +947,7 @@ typedef struct Z_ext_typeent - + referenceIdZ_ReferenceIdNULL @@ -999,7 +999,7 @@ typedef struct Z_ext_typeent otherInfoZ_OtherInformationNULL - +