Initial commit
[yaz4j-moved-to-github.git] / dependencies / yaz_3.0.14 / include / yaz / z-exp.h
1 /** \file z-exp.h
2     \brief ASN.1 Module RecordSyntax-explain
3
4     Generated automatically by YAZ ASN.1 Compiler 0.4
5 */
6
7 #ifndef z_exp_H
8 #define z_exp_H
9
10 #include <yaz/odr.h>
11 #include <yaz/z-core.h>
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15
16 typedef struct Z_ExplainRecord Z_ExplainRecord;
17 YAZ_EXPORT int z_ExplainRecord (ODR o, Z_ExplainRecord **p, int opt, const char *name);
18
19 typedef struct Z_TargetInfo Z_TargetInfo;
20 YAZ_EXPORT int z_TargetInfo (ODR o, Z_TargetInfo **p, int opt, const char *name);
21
22 typedef struct Z_DatabaseInfo Z_DatabaseInfo;
23 YAZ_EXPORT int z_DatabaseInfo (ODR o, Z_DatabaseInfo **p, int opt, const char *name);
24
25 typedef struct Z_TagTypeMapping Z_TagTypeMapping;
26 YAZ_EXPORT int z_TagTypeMapping (ODR o, Z_TagTypeMapping **p, int opt, const char *name);
27
28 typedef struct Z_SchemaInfo Z_SchemaInfo;
29 YAZ_EXPORT int z_SchemaInfo (ODR o, Z_SchemaInfo **p, int opt, const char *name);
30
31 typedef struct Z_ElementInfo Z_ElementInfo;
32 YAZ_EXPORT int z_ElementInfo (ODR o, Z_ElementInfo **p, int opt, const char *name);
33
34 typedef struct Z_PathUnit Z_PathUnit;
35 YAZ_EXPORT int z_PathUnit (ODR o, Z_PathUnit **p, int opt, const char *name);
36
37 typedef struct Z_Path Z_Path;
38 YAZ_EXPORT int z_Path (ODR o, Z_Path **p, int opt, const char *name);
39
40 typedef struct Z_ElementInfoList Z_ElementInfoList;
41 YAZ_EXPORT int z_ElementInfoList (ODR o, Z_ElementInfoList **p, int opt, const char *name);
42
43 typedef struct Z_ElementDataType Z_ElementDataType;
44 YAZ_EXPORT int z_ElementDataType (ODR o, Z_ElementDataType **p, int opt, const char *name);
45
46 typedef int  Z_PrimitiveDataType;
47 YAZ_EXPORT int z_PrimitiveDataType (ODR o, Z_PrimitiveDataType **p, int opt, const char *name);
48
49 typedef struct Z_TagSetElements Z_TagSetElements;
50 YAZ_EXPORT int z_TagSetElements (ODR o, Z_TagSetElements **p, int opt, const char *name);
51
52 typedef struct Z_TagSetInfo Z_TagSetInfo;
53 YAZ_EXPORT int z_TagSetInfo (ODR o, Z_TagSetInfo **p, int opt, const char *name);
54
55 typedef struct Z_RecordSyntaxInfo Z_RecordSyntaxInfo;
56 YAZ_EXPORT int z_RecordSyntaxInfo (ODR o, Z_RecordSyntaxInfo **p, int opt, const char *name);
57
58 typedef struct Z_AttributeSetInfo Z_AttributeSetInfo;
59 YAZ_EXPORT int z_AttributeSetInfo (ODR o, Z_AttributeSetInfo **p, int opt, const char *name);
60
61 typedef struct Z_AttributeType Z_AttributeType;
62 YAZ_EXPORT int z_AttributeType (ODR o, Z_AttributeType **p, int opt, const char *name);
63
64 typedef struct Z_AttributeDescription Z_AttributeDescription;
65 YAZ_EXPORT int z_AttributeDescription (ODR o, Z_AttributeDescription **p, int opt, const char *name);
66
67 typedef struct Z_TermListElement Z_TermListElement;
68 YAZ_EXPORT int z_TermListElement (ODR o, Z_TermListElement **p, int opt, const char *name);
69
70 typedef struct Z_TermListInfo Z_TermListInfo;
71 YAZ_EXPORT int z_TermListInfo (ODR o, Z_TermListInfo **p, int opt, const char *name);
72
73 typedef struct Z_ExtendedServicesInfo Z_ExtendedServicesInfo;
74 YAZ_EXPORT int z_ExtendedServicesInfo (ODR o, Z_ExtendedServicesInfo **p, int opt, const char *name);
75
76 typedef struct Z_AttributeDetails Z_AttributeDetails;
77 YAZ_EXPORT int z_AttributeDetails (ODR o, Z_AttributeDetails **p, int opt, const char *name);
78
79 typedef struct Z_AttributeSetDetails Z_AttributeSetDetails;
80 YAZ_EXPORT int z_AttributeSetDetails (ODR o, Z_AttributeSetDetails **p, int opt, const char *name);
81
82 typedef struct Z_AttributeTypeDetails Z_AttributeTypeDetails;
83 YAZ_EXPORT int z_AttributeTypeDetails (ODR o, Z_AttributeTypeDetails **p, int opt, const char *name);
84
85 typedef struct Z_OmittedAttributeInterpretation Z_OmittedAttributeInterpretation;
86 YAZ_EXPORT int z_OmittedAttributeInterpretation (ODR o, Z_OmittedAttributeInterpretation **p, int opt, const char *name);
87
88 typedef struct Z_AttributeValue Z_AttributeValue;
89 YAZ_EXPORT int z_AttributeValue (ODR o, Z_AttributeValue **p, int opt, const char *name);
90
91 typedef struct Z_EScanInfo Z_EScanInfo;
92 YAZ_EXPORT int z_EScanInfo (ODR o, Z_EScanInfo **p, int opt, const char *name);
93
94 typedef struct Z_TermListDetails Z_TermListDetails;
95 YAZ_EXPORT int z_TermListDetails (ODR o, Z_TermListDetails **p, int opt, const char *name);
96
97 typedef struct Z_ElementSetDetails Z_ElementSetDetails;
98 YAZ_EXPORT int z_ElementSetDetails (ODR o, Z_ElementSetDetails **p, int opt, const char *name);
99
100 typedef struct Z_RetrievalRecordDetails Z_RetrievalRecordDetails;
101 YAZ_EXPORT int z_RetrievalRecordDetails (ODR o, Z_RetrievalRecordDetails **p, int opt, const char *name);
102
103 typedef struct Z_PerElementDetails Z_PerElementDetails;
104 YAZ_EXPORT int z_PerElementDetails (ODR o, Z_PerElementDetails **p, int opt, const char *name);
105
106 typedef struct Z_RecordTag Z_RecordTag;
107 YAZ_EXPORT int z_RecordTag (ODR o, Z_RecordTag **p, int opt, const char *name);
108
109 typedef struct Z_SortDetails Z_SortDetails;
110 YAZ_EXPORT int z_SortDetails (ODR o, Z_SortDetails **p, int opt, const char *name);
111
112 typedef struct Z_SortKeyDetails Z_SortKeyDetails;
113 YAZ_EXPORT int z_SortKeyDetails (ODR o, Z_SortKeyDetails **p, int opt, const char *name);
114
115 typedef struct Z_ProcessingInformation Z_ProcessingInformation;
116 YAZ_EXPORT int z_ProcessingInformation (ODR o, Z_ProcessingInformation **p, int opt, const char *name);
117
118 typedef struct Z_VariantSetInfo Z_VariantSetInfo;
119 YAZ_EXPORT int z_VariantSetInfo (ODR o, Z_VariantSetInfo **p, int opt, const char *name);
120
121 typedef struct Z_VariantClass Z_VariantClass;
122 YAZ_EXPORT int z_VariantClass (ODR o, Z_VariantClass **p, int opt, const char *name);
123
124 typedef struct Z_VariantType Z_VariantType;
125 YAZ_EXPORT int z_VariantType (ODR o, Z_VariantType **p, int opt, const char *name);
126
127 typedef struct Z_VariantValue Z_VariantValue;
128 YAZ_EXPORT int z_VariantValue (ODR o, Z_VariantValue **p, int opt, const char *name);
129
130 typedef struct Z_ValueSetEnumerated Z_ValueSetEnumerated;
131 YAZ_EXPORT int z_ValueSetEnumerated (ODR o, Z_ValueSetEnumerated **p, int opt, const char *name);
132
133 typedef struct Z_ValueSet Z_ValueSet;
134 YAZ_EXPORT int z_ValueSet (ODR o, Z_ValueSet **p, int opt, const char *name);
135
136 typedef struct Z_ValueRange Z_ValueRange;
137 YAZ_EXPORT int z_ValueRange (ODR o, Z_ValueRange **p, int opt, const char *name);
138
139 typedef struct Z_ValueDescription Z_ValueDescription;
140 YAZ_EXPORT int z_ValueDescription (ODR o, Z_ValueDescription **p, int opt, const char *name);
141
142 typedef struct Z_UnitInfo Z_UnitInfo;
143 YAZ_EXPORT int z_UnitInfo (ODR o, Z_UnitInfo **p, int opt, const char *name);
144
145 typedef struct Z_UnitType Z_UnitType;
146 YAZ_EXPORT int z_UnitType (ODR o, Z_UnitType **p, int opt, const char *name);
147
148 typedef struct Z_Units Z_Units;
149 YAZ_EXPORT int z_Units (ODR o, Z_Units **p, int opt, const char *name);
150
151 typedef struct Z_CategoryList Z_CategoryList;
152 YAZ_EXPORT int z_CategoryList (ODR o, Z_CategoryList **p, int opt, const char *name);
153
154 typedef struct Z_CategoryInfo Z_CategoryInfo;
155 YAZ_EXPORT int z_CategoryInfo (ODR o, Z_CategoryInfo **p, int opt, const char *name);
156
157 typedef struct Z_CommonInfo Z_CommonInfo;
158 YAZ_EXPORT int z_CommonInfo (ODR o, Z_CommonInfo **p, int opt, const char *name);
159
160 typedef struct Z_HumanStringUnit Z_HumanStringUnit;
161 YAZ_EXPORT int z_HumanStringUnit (ODR o, Z_HumanStringUnit **p, int opt, const char *name);
162
163 typedef struct Z_HumanString Z_HumanString;
164 YAZ_EXPORT int z_HumanString (ODR o, Z_HumanString **p, int opt, const char *name);
165
166 typedef struct Z_IconObjectUnit Z_IconObjectUnit;
167 YAZ_EXPORT int z_IconObjectUnit (ODR o, Z_IconObjectUnit **p, int opt, const char *name);
168
169 typedef struct Z_IconObject Z_IconObject;
170 YAZ_EXPORT int z_IconObject (ODR o, Z_IconObject **p, int opt, const char *name);
171
172 typedef Z_InternationalString  Z_LanguageCode;
173 YAZ_EXPORT int z_LanguageCode (ODR o, Z_LanguageCode **p, int opt, const char *name);
174
175 typedef struct Z_ContactInfo Z_ContactInfo;
176 YAZ_EXPORT int z_ContactInfo (ODR o, Z_ContactInfo **p, int opt, const char *name);
177
178 typedef struct Z_NetworkAddressIA Z_NetworkAddressIA;
179 YAZ_EXPORT int z_NetworkAddressIA (ODR o, Z_NetworkAddressIA **p, int opt, const char *name);
180
181 typedef struct Z_NetworkAddressOPA Z_NetworkAddressOPA;
182 YAZ_EXPORT int z_NetworkAddressOPA (ODR o, Z_NetworkAddressOPA **p, int opt, const char *name);
183
184 typedef struct Z_NetworkAddressOther Z_NetworkAddressOther;
185 YAZ_EXPORT int z_NetworkAddressOther (ODR o, Z_NetworkAddressOther **p, int opt, const char *name);
186
187 typedef struct Z_NetworkAddress Z_NetworkAddress;
188 YAZ_EXPORT int z_NetworkAddress (ODR o, Z_NetworkAddress **p, int opt, const char *name);
189
190 typedef struct Z_AccessInfo Z_AccessInfo;
191 YAZ_EXPORT int z_AccessInfo (ODR o, Z_AccessInfo **p, int opt, const char *name);
192
193 typedef struct Z_QueryTypeDetails Z_QueryTypeDetails;
194 YAZ_EXPORT int z_QueryTypeDetails (ODR o, Z_QueryTypeDetails **p, int opt, const char *name);
195
196 typedef struct Z_PrivateCapOperator Z_PrivateCapOperator;
197 YAZ_EXPORT int z_PrivateCapOperator (ODR o, Z_PrivateCapOperator **p, int opt, const char *name);
198
199 typedef struct Z_PrivateCapabilities Z_PrivateCapabilities;
200 YAZ_EXPORT int z_PrivateCapabilities (ODR o, Z_PrivateCapabilities **p, int opt, const char *name);
201
202 typedef struct Z_RpnCapabilities Z_RpnCapabilities;
203 YAZ_EXPORT int z_RpnCapabilities (ODR o, Z_RpnCapabilities **p, int opt, const char *name);
204
205 typedef struct Z_Iso8777Capabilities Z_Iso8777Capabilities;
206 YAZ_EXPORT int z_Iso8777Capabilities (ODR o, Z_Iso8777Capabilities **p, int opt, const char *name);
207
208 typedef struct Z_ProxSupportPrivate Z_ProxSupportPrivate;
209 YAZ_EXPORT int z_ProxSupportPrivate (ODR o, Z_ProxSupportPrivate **p, int opt, const char *name);
210
211 typedef struct Z_ProxSupportUnit Z_ProxSupportUnit;
212 YAZ_EXPORT int z_ProxSupportUnit (ODR o, Z_ProxSupportUnit **p, int opt, const char *name);
213
214 typedef struct Z_ProximitySupport Z_ProximitySupport;
215 YAZ_EXPORT int z_ProximitySupport (ODR o, Z_ProximitySupport **p, int opt, const char *name);
216
217 typedef struct Z_SearchKey Z_SearchKey;
218 YAZ_EXPORT int z_SearchKey (ODR o, Z_SearchKey **p, int opt, const char *name);
219
220 typedef struct Z_AccessRestrictionsUnit Z_AccessRestrictionsUnit;
221 YAZ_EXPORT int z_AccessRestrictionsUnit (ODR o, Z_AccessRestrictionsUnit **p, int opt, const char *name);
222
223 typedef struct Z_AccessRestrictions Z_AccessRestrictions;
224 YAZ_EXPORT int z_AccessRestrictions (ODR o, Z_AccessRestrictions **p, int opt, const char *name);
225
226 typedef struct Z_CostsOtherCharge Z_CostsOtherCharge;
227 YAZ_EXPORT int z_CostsOtherCharge (ODR o, Z_CostsOtherCharge **p, int opt, const char *name);
228
229 typedef struct Z_Costs Z_Costs;
230 YAZ_EXPORT int z_Costs (ODR o, Z_Costs **p, int opt, const char *name);
231
232 typedef struct Z_Charge Z_Charge;
233 YAZ_EXPORT int z_Charge (ODR o, Z_Charge **p, int opt, const char *name);
234
235 typedef struct Z_DatabaseList Z_DatabaseList;
236 YAZ_EXPORT int z_DatabaseList (ODR o, Z_DatabaseList **p, int opt, const char *name);
237
238 typedef struct Z_AttributeCombinations Z_AttributeCombinations;
239 YAZ_EXPORT int z_AttributeCombinations (ODR o, Z_AttributeCombinations **p, int opt, const char *name);
240
241 typedef struct Z_AttributeCombination Z_AttributeCombination;
242 YAZ_EXPORT int z_AttributeCombination (ODR o, Z_AttributeCombination **p, int opt, const char *name);
243
244 typedef struct Z_AttributeValueList Z_AttributeValueList;
245 YAZ_EXPORT int z_AttributeValueList (ODR o, Z_AttributeValueList **p, int opt, const char *name);
246
247 typedef struct Z_AttributeOccurrence Z_AttributeOccurrence;
248 YAZ_EXPORT int z_AttributeOccurrence (ODR o, Z_AttributeOccurrence **p, int opt, const char *name);
249 #ifdef __cplusplus
250 }
251 #endif
252 #ifdef __cplusplus
253 extern "C" {
254 #endif
255 struct Z_ExplainRecord {
256         int which;
257         union {
258                 Z_TargetInfo *targetInfo;
259                 Z_DatabaseInfo *databaseInfo;
260                 Z_SchemaInfo *schemaInfo;
261                 Z_TagSetInfo *tagSetInfo;
262                 Z_RecordSyntaxInfo *recordSyntaxInfo;
263                 Z_AttributeSetInfo *attributeSetInfo;
264                 Z_TermListInfo *termListInfo;
265                 Z_ExtendedServicesInfo *extendedServicesInfo;
266                 Z_AttributeDetails *attributeDetails;
267                 Z_TermListDetails *termListDetails;
268                 Z_ElementSetDetails *elementSetDetails;
269                 Z_RetrievalRecordDetails *retrievalRecordDetails;
270                 Z_SortDetails *sortDetails;
271                 Z_ProcessingInformation *processing;
272                 Z_VariantSetInfo *variants;
273                 Z_UnitInfo *units;
274                 Z_CategoryList *categoryList;
275 #define Z_Explain_targetInfo 1
276 #define Z_Explain_databaseInfo 2
277 #define Z_Explain_schemaInfo 3
278 #define Z_Explain_tagSetInfo 4
279 #define Z_Explain_recordSyntaxInfo 5
280 #define Z_Explain_attributeSetInfo 6
281 #define Z_Explain_termListInfo 7
282 #define Z_Explain_extendedServicesInfo 8
283 #define Z_Explain_attributeDetails 9
284 #define Z_Explain_termListDetails 10
285 #define Z_Explain_elementSetDetails 11
286 #define Z_Explain_retrievalRecordDetails 12
287 #define Z_Explain_sortDetails 13
288 #define Z_Explain_processing 14
289 #define Z_Explain_variants 15
290 #define Z_Explain_units 16
291 #define Z_Explain_categoryList 17
292         } u;
293 };
294
295 struct Z_TargetInfo {
296         Z_CommonInfo *commonInfo; /* OPT */
297         Z_InternationalString *name;
298         Z_HumanString *recentNews; /* OPT */
299         Z_IconObject *icon; /* OPT */
300         bool_t *namedResultSets;
301         bool_t *multipleDBsearch;
302         int *maxResultSets; /* OPT */
303         int *maxResultSize; /* OPT */
304         int *maxTerms; /* OPT */
305         Z_IntUnit *timeoutInterval; /* OPT */
306         Z_HumanString *welcomeMessage; /* OPT */
307         Z_ContactInfo *contactInfo; /* OPT */
308         Z_HumanString *description; /* OPT */
309         int num_nicknames;
310         Z_InternationalString **nicknames; /* OPT */
311         Z_HumanString *usageRest; /* OPT */
312         Z_HumanString *paymentAddr; /* OPT */
313         Z_HumanString *hours; /* OPT */
314         int num_dbCombinations;
315         Z_DatabaseList **dbCombinations; /* OPT */
316         int num_addresses;
317         Z_NetworkAddress **addresses; /* OPT */
318         int num_languages;
319         Z_InternationalString **languages; /* OPT */
320         Z_AccessInfo *commonAccessInfo; /* OPT */
321 };
322
323 struct Z_DatabaseInfo {
324         Z_CommonInfo *commonInfo; /* OPT */
325         Z_DatabaseName *name;
326         Odr_null *explainDatabase; /* OPT */
327         int num_nicknames;
328         Z_DatabaseName **nicknames; /* OPT */
329         Z_IconObject *icon; /* OPT */
330         bool_t *userFee;
331         bool_t *available;
332         Z_HumanString *titleString; /* OPT */
333         int num_keywords;
334         Z_HumanString **keywords; /* OPT */
335         Z_HumanString *description; /* OPT */
336         Z_DatabaseList *associatedDbs; /* OPT */
337         Z_DatabaseList *subDbs; /* OPT */
338         Z_HumanString *disclaimers; /* OPT */
339         Z_HumanString *news; /* OPT */
340         int which;
341         union {
342                 int *actualNumber;
343                 int *approxNumber;
344 #define Z_DatabaseInfo_actualNumber 1
345 #define Z_DatabaseInfo_approxNumber 2
346         } u; /* OPT */
347         Z_HumanString *defaultOrder; /* OPT */
348         int *avRecordSize; /* OPT */
349         int *maxRecordSize; /* OPT */
350         Z_HumanString *hours; /* OPT */
351         Z_HumanString *bestTime; /* OPT */
352         char *lastUpdate; /* OPT */
353         Z_IntUnit *updateInterval; /* OPT */
354         Z_HumanString *coverage; /* OPT */
355         bool_t *proprietary; /* OPT */
356         Z_HumanString *copyrightText; /* OPT */
357         Z_HumanString *copyrightNotice; /* OPT */
358         Z_ContactInfo *producerContactInfo; /* OPT */
359         Z_ContactInfo *supplierContactInfo; /* OPT */
360         Z_ContactInfo *submissionContactInfo; /* OPT */
361         Z_AccessInfo *accessInfo; /* OPT */
362 };
363
364 struct Z_TagTypeMapping {
365         int *tagType;
366         Odr_oid *tagSet; /* OPT */
367         Odr_null *defaultTagType; /* OPT */
368 };
369
370 struct Z_SchemaInfo {
371         Z_CommonInfo *commonInfo; /* OPT */
372         Odr_oid *schema;
373         Z_InternationalString *name;
374         Z_HumanString *description; /* OPT */
375         int num_tagTypeMapping;
376         Z_TagTypeMapping **tagTypeMapping; /* OPT */
377         int num_recordStructure;
378         Z_ElementInfo **recordStructure; /* OPT */
379 };
380
381 struct Z_ElementInfo {
382         Z_InternationalString *elementName;
383         Z_Path *elementTagPath;
384         Z_ElementDataType *dataType; /* OPT */
385         bool_t *required;
386         bool_t *repeatable;
387         Z_HumanString *description; /* OPT */
388 };
389
390 struct Z_PathUnit {
391         int *tagType;
392         Z_StringOrNumeric *tagValue;
393 };
394
395 struct Z_Path {
396         int num;
397         Z_PathUnit **elements;
398 };
399
400 struct Z_ElementInfoList {
401         int num;
402         Z_ElementInfo **elements;
403 };
404
405 struct Z_ElementDataType {
406         int which;
407         union {
408                 Z_PrimitiveDataType *primitive;
409                 Z_ElementInfoList *structured;
410 #define Z_ElementDataType_primitive 1
411 #define Z_ElementDataType_structured 2
412         } u;
413 };
414
415 #define Z_PrimitiveDataType_octetString 0
416 #define Z_PrimitiveDataType_numeric 1
417 #define Z_PrimitiveDataType_date 2
418 #define Z_PrimitiveDataType_external 3
419 #define Z_PrimitiveDataType_string 4
420 #define Z_PrimitiveDataType_trueOrFalse 5
421 #define Z_PrimitiveDataType_oid 6
422 #define Z_PrimitiveDataType_intUnit 7
423 #define Z_PrimitiveDataType_empty 8
424 #define Z_PrimitiveDataType_noneOfTheAbove 100
425
426 struct Z_TagSetElements {
427         Z_InternationalString *elementname;
428         int num_nicknames;
429         Z_InternationalString **nicknames; /* OPT */
430         Z_StringOrNumeric *elementTag;
431         Z_HumanString *description; /* OPT */
432         Z_PrimitiveDataType *dataType; /* OPT */
433         Z_OtherInformation *otherTagInfo; /* OPT */
434 };
435
436 struct Z_TagSetInfo {
437         Z_CommonInfo *commonInfo; /* OPT */
438         Odr_oid *tagSet;
439         Z_InternationalString *name;
440         Z_HumanString *description; /* OPT */
441         int num_elements;
442         Z_TagSetElements **elements; /* OPT */
443 };
444
445 struct Z_RecordSyntaxInfo {
446         Z_CommonInfo *commonInfo; /* OPT */
447         Odr_oid *recordSyntax;
448         Z_InternationalString *name;
449         int num_transferSyntaxes;
450         Odr_oid **transferSyntaxes; /* OPT */
451         Z_HumanString *description; /* OPT */
452         Z_InternationalString *asn1Module; /* OPT */
453         int num_abstractStructure;
454         Z_ElementInfo **abstractStructure; /* OPT */
455 };
456
457 struct Z_AttributeSetInfo {
458         Z_CommonInfo *commonInfo; /* OPT */
459         Z_AttributeSetId *attributeSet;
460         Z_InternationalString *name;
461         int num_attributes;
462         Z_AttributeType **attributes; /* OPT */
463         Z_HumanString *description; /* OPT */
464 };
465
466 struct Z_AttributeType {
467         Z_InternationalString *name; /* OPT */
468         Z_HumanString *description; /* OPT */
469         int *attributeType;
470         int num_attributeValues;
471         Z_AttributeDescription **attributeValues;
472 };
473
474 struct Z_AttributeDescription {
475         Z_InternationalString *name; /* OPT */
476         Z_HumanString *description; /* OPT */
477         Z_StringOrNumeric *attributeValue;
478         int num_equivalentAttributes;
479         Z_StringOrNumeric **equivalentAttributes; /* OPT */
480 };
481
482 struct Z_TermListElement {
483         Z_InternationalString *name;
484         Z_HumanString *title; /* OPT */
485 #define Z_TermListElement_optimized 0
486 #define Z_TermListElement_normal 1
487 #define Z_TermListElement_expensive 2
488 #define Z_TermListElement_filter 3
489         int *searchCost; /* OPT */
490         bool_t *scanable;
491         int num_broader;
492         Z_InternationalString **broader; /* OPT */
493         int num_narrower;
494         Z_InternationalString **narrower; /* OPT */
495 };
496
497 struct Z_TermListInfo {
498         Z_CommonInfo *commonInfo; /* OPT */
499         Z_DatabaseName *databaseName;
500         int num_termLists;
501         Z_TermListElement **termLists;
502 };
503
504 struct Z_ExtendedServicesInfo {
505         Z_CommonInfo *commonInfo; /* OPT */
506         Odr_oid *type;
507         Z_InternationalString *name; /* OPT */
508         bool_t *privateType;
509         bool_t *restrictionsApply;
510         bool_t *feeApply;
511         bool_t *available;
512         bool_t *retentionSupported;
513 #define Z_ExtendedServicesInfo_waitSupported 1
514 #define Z_ExtendedServicesInfo_waitAlways 2
515 #define Z_ExtendedServicesInfo_waitNotSupported 3
516 #define Z_ExtendedServicesInfo_depends 4
517 #define Z_ExtendedServicesInfo_notSaying 5
518         int *waitAction;
519         Z_HumanString *description; /* OPT */
520         Z_External *specificExplain; /* OPT */
521         Z_InternationalString *esASN; /* OPT */
522 };
523
524 struct Z_AttributeDetails {
525         Z_CommonInfo *commonInfo; /* OPT */
526         Z_DatabaseName *databaseName;
527         int num_attributesBySet;
528         Z_AttributeSetDetails **attributesBySet; /* OPT */
529         Z_AttributeCombinations *attributeCombinations; /* OPT */
530 };
531
532 struct Z_AttributeSetDetails {
533         Z_AttributeSetId *attributeSet;
534         int num_attributesByType;
535         Z_AttributeTypeDetails **attributesByType;
536 };
537
538 struct Z_AttributeTypeDetails {
539         int *attributeType;
540         Z_OmittedAttributeInterpretation *defaultIfOmitted; /* OPT */
541         int num_attributeValues;
542         Z_AttributeValue **attributeValues; /* OPT */
543 };
544
545 struct Z_OmittedAttributeInterpretation {
546         Z_StringOrNumeric *defaultValue; /* OPT */
547         Z_HumanString *defaultDescription; /* OPT */
548 };
549
550 struct Z_AttributeValue {
551         Z_StringOrNumeric *value;
552         Z_HumanString *description; /* OPT */
553         int num_subAttributes;
554         Z_StringOrNumeric **subAttributes; /* OPT */
555         int num_superAttributes;
556         Z_StringOrNumeric **superAttributes; /* OPT */
557         Odr_null *partialSupport; /* OPT */
558 };
559
560 struct Z_EScanInfo {
561         int *maxStepSize; /* OPT */
562         Z_HumanString *collatingSequence; /* OPT */
563         bool_t *increasing; /* OPT */
564 };
565
566 struct Z_TermListDetails {
567         Z_CommonInfo *commonInfo; /* OPT */
568         Z_InternationalString *termListName;
569         Z_HumanString *description; /* OPT */
570         Z_AttributeCombinations *attributes; /* OPT */
571         Z_EScanInfo *scanInfo; /* OPT */
572         int *estNumberTerms; /* OPT */
573         int num_sampleTerms;
574         Z_Term **sampleTerms; /* OPT */
575 };
576
577 struct Z_ElementSetDetails {
578         Z_CommonInfo *commonInfo; /* OPT */
579         Z_DatabaseName *databaseName;
580         Z_ElementSetName *elementSetName;
581         Odr_oid *recordSyntax;
582         Odr_oid *schema;
583         Z_HumanString *description; /* OPT */
584         int num_detailsPerElement;
585         Z_PerElementDetails **detailsPerElement; /* OPT */
586 };
587
588 struct Z_RetrievalRecordDetails {
589         Z_CommonInfo *commonInfo; /* OPT */
590         Z_DatabaseName *databaseName;
591         Odr_oid *schema;
592         Odr_oid *recordSyntax;
593         Z_HumanString *description; /* OPT */
594         int num_detailsPerElement;
595         Z_PerElementDetails **detailsPerElement; /* OPT */
596 };
597
598 struct Z_PerElementDetails {
599         Z_InternationalString *name; /* OPT */
600         Z_RecordTag *recordTag; /* OPT */
601         int num_schemaTags;
602         Z_Path **schemaTags; /* OPT */
603         int *maxSize; /* OPT */
604         int *minSize; /* OPT */
605         int *avgSize; /* OPT */
606         int *fixedSize; /* OPT */
607         bool_t *repeatable;
608         bool_t *required;
609         Z_HumanString *description; /* OPT */
610         Z_HumanString *contents; /* OPT */
611         Z_HumanString *billingInfo; /* OPT */
612         Z_HumanString *restrictions; /* OPT */
613         int num_alternateNames;
614         Z_InternationalString **alternateNames; /* OPT */
615         int num_genericNames;
616         Z_InternationalString **genericNames; /* OPT */
617         Z_AttributeCombinations *searchAccess; /* OPT */
618 };
619
620 struct Z_RecordTag {
621         Z_StringOrNumeric *qualifier; /* OPT */
622         Z_StringOrNumeric *tagValue;
623 };
624
625 struct Z_SortDetails {
626         Z_CommonInfo *commonInfo; /* OPT */
627         Z_DatabaseName *databaseName;
628         int num_sortKeys;
629         Z_SortKeyDetails **sortKeys; /* OPT */
630 };
631
632 struct Z_SortKeyDetails {
633         Z_HumanString *description; /* OPT */
634         int num_elementSpecifications;
635         Z_Specification **elementSpecifications; /* OPT */
636         Z_AttributeCombinations *attributeSpecifications; /* OPT */
637         int which;
638         union {
639                 Odr_null *character;
640                 Odr_null *numeric;
641                 Z_HumanString *structured;
642 #define Z_SortKeyDetails_character 1
643 #define Z_SortKeyDetails_numeric 2
644 #define Z_SortKeyDetails_structured 3
645         } u; /* OPT */
646 #define Z_SortKeyDetails_always 0
647 #define Z_SortKeyDetails_never 1
648 #define Z_SortKeyDetails_default_yes 2
649 #define Z_SortKeyDetails_default_no 3
650         int *caseSensitivity; /* OPT */
651 };
652
653 struct Z_ProcessingInformation {
654         Z_CommonInfo *commonInfo; /* OPT */
655         Z_DatabaseName *databaseName;
656 #define Z_ProcessingInformation_access 0
657 #define Z_ProcessingInformation_search 1
658 #define Z_ProcessingInformation_retrieval 2
659 #define Z_ProcessingInformation_record_presentation 3
660 #define Z_ProcessingInformation_record_handling 4
661         int *processingContext;
662         Z_InternationalString *name;
663         Odr_oid *oid;
664         Z_HumanString *description; /* OPT */
665         Z_External *instructions; /* OPT */
666 };
667
668 struct Z_VariantSetInfo {
669         Z_CommonInfo *commonInfo; /* OPT */
670         Odr_oid *variantSet;
671         Z_InternationalString *name;
672         int num_variants;
673         Z_VariantClass **variants; /* OPT */
674 };
675
676 struct Z_VariantClass {
677         Z_InternationalString *name; /* OPT */
678         Z_HumanString *description; /* OPT */
679         int *variantClass;
680         int num_variantTypes;
681         Z_VariantType **variantTypes;
682 };
683
684 struct Z_VariantType {
685         Z_InternationalString *name; /* OPT */
686         Z_HumanString *description; /* OPT */
687         int *variantType;
688         Z_VariantValue *variantValue; /* OPT */
689 };
690
691 struct Z_VariantValue {
692         Z_PrimitiveDataType *dataType;
693         Z_ValueSet *values; /* OPT */
694 };
695
696 struct Z_ValueSetEnumerated {
697         int num;
698         Z_ValueDescription **elements;
699 };
700
701 struct Z_ValueSet {
702         int which;
703         union {
704                 Z_ValueRange *range;
705                 Z_ValueSetEnumerated *enumerated;
706 #define Z_ValueSet_range 1
707 #define Z_ValueSet_enumerated 2
708         } u;
709 };
710
711 struct Z_ValueRange {
712         Z_ValueDescription *lower; /* OPT */
713         Z_ValueDescription *upper; /* OPT */
714 };
715
716 struct Z_ValueDescription {
717         int which;
718         union {
719                 int *integer;
720                 Z_InternationalString *string;
721                 Odr_oct *octets;
722                 Odr_oid *oid;
723                 Z_Unit *unit;
724                 Z_IntUnit *valueAndUnit;
725 #define Z_ValueDescription_integer 1
726 #define Z_ValueDescription_string 2
727 #define Z_ValueDescription_octets 3
728 #define Z_ValueDescription_oid 4
729 #define Z_ValueDescription_unit 5
730 #define Z_ValueDescription_valueAndUnit 6
731         } u;
732 };
733
734 struct Z_UnitInfo {
735         Z_CommonInfo *commonInfo; /* OPT */
736         Z_InternationalString *unitSystem;
737         Z_HumanString *description; /* OPT */
738         int num_units;
739         Z_UnitType **units; /* OPT */
740 };
741
742 struct Z_UnitType {
743         Z_InternationalString *name; /* OPT */
744         Z_HumanString *description; /* OPT */
745         Z_StringOrNumeric *unitType;
746         int num_units;
747         Z_Units **units;
748 };
749
750 struct Z_Units {
751         Z_InternationalString *name; /* OPT */
752         Z_HumanString *description; /* OPT */
753         Z_StringOrNumeric *unit;
754 };
755
756 struct Z_CategoryList {
757         Z_CommonInfo *commonInfo; /* OPT */
758         int num_categories;
759         Z_CategoryInfo **categories;
760 };
761
762 struct Z_CategoryInfo {
763         Z_InternationalString *category;
764         Z_InternationalString *originalCategory; /* OPT */
765         Z_HumanString *description; /* OPT */
766         Z_InternationalString *asn1Module; /* OPT */
767 };
768
769 struct Z_CommonInfo {
770         char *dateAdded; /* OPT */
771         char *dateChanged; /* OPT */
772         char *expiry; /* OPT */
773         Z_LanguageCode *humanStringLanguage; /* OPT */
774         Z_OtherInformation *otherInfo; /* OPT */
775 };
776
777 struct Z_HumanStringUnit {
778         Z_LanguageCode *language; /* OPT */
779         Z_InternationalString *text;
780 };
781
782 struct Z_HumanString {
783         int num_strings;
784         Z_HumanStringUnit **strings;
785 };
786
787 struct Z_IconObjectUnit {
788         int which;
789         union {
790                 Z_InternationalString *ianaType;
791                 Z_InternationalString *z3950type;
792                 Z_InternationalString *otherType;
793 #define Z_IconObjectUnit_ianaType 1
794 #define Z_IconObjectUnit_z3950type 2
795 #define Z_IconObjectUnit_otherType 3
796         } u;
797         Odr_oct *content;
798 };
799
800 struct Z_IconObject {
801         int num;
802         Z_IconObjectUnit **elements;
803 };
804
805
806
807 struct Z_ContactInfo {
808         Z_InternationalString *name; /* OPT */
809         Z_HumanString *description; /* OPT */
810         Z_HumanString *address; /* OPT */
811         Z_InternationalString *email; /* OPT */
812         Z_InternationalString *phone; /* OPT */
813 };
814
815 struct Z_NetworkAddressIA {
816         Z_InternationalString *hostAddress;
817         int *port;
818 };
819
820 struct Z_NetworkAddressOPA {
821         Z_InternationalString *pSel;
822         Z_InternationalString *sSel; /* OPT */
823         Z_InternationalString *tSel; /* OPT */
824         Z_InternationalString *nSap;
825 };
826
827 struct Z_NetworkAddressOther {
828         Z_InternationalString *type;
829         Z_InternationalString *address;
830 };
831
832 struct Z_NetworkAddress {
833         int which;
834         union {
835                 Z_NetworkAddressIA *internetAddress;
836                 Z_NetworkAddressOPA *osiPresentationAddress;
837                 Z_NetworkAddressOther *other;
838 #define Z_NetworkAddress_iA 1
839 #define Z_NetworkAddress_oPA 2
840 #define Z_NetworkAddress_other 3
841         } u;
842 };
843
844 struct Z_AccessInfo {
845         int num_queryTypesSupported;
846         Z_QueryTypeDetails **queryTypesSupported; /* OPT */
847         int num_diagnosticsSets;
848         Odr_oid **diagnosticsSets; /* OPT */
849         int num_attributeSetIds;
850         Z_AttributeSetId **attributeSetIds; /* OPT */
851         int num_schemas;
852         Odr_oid **schemas; /* OPT */
853         int num_recordSyntaxes;
854         Odr_oid **recordSyntaxes; /* OPT */
855         int num_resourceChallenges;
856         Odr_oid **resourceChallenges; /* OPT */
857         Z_AccessRestrictions *restrictedAccess; /* OPT */
858         Z_Costs *costInfo; /* OPT */
859         int num_variantSets;
860         Odr_oid **variantSets; /* OPT */
861         int num_elementSetNames;
862         Z_ElementSetName **elementSetNames; /* OPT */
863         int num_unitSystems;
864         Z_InternationalString **unitSystems;
865 };
866
867 struct Z_QueryTypeDetails {
868         int which;
869         union {
870                 Z_PrivateCapabilities *zprivate;
871                 Z_RpnCapabilities *rpn;
872                 Z_Iso8777Capabilities *iso8777;
873                 Z_HumanString *z39_58;
874                 Z_RpnCapabilities *erpn;
875                 Z_HumanString *rankedList;
876 #define Z_QueryTypeDetails_private 1
877 #define Z_QueryTypeDetails_rpn 2
878 #define Z_QueryTypeDetails_iso8777 3
879 #define Z_QueryTypeDetails_z39_58 4
880 #define Z_QueryTypeDetails_erpn 5
881 #define Z_QueryTypeDetails_rankedList 6
882         } u;
883 };
884
885 struct Z_PrivateCapOperator {
886         Z_InternationalString *roperator;
887         Z_HumanString *description; /* OPT */
888 };
889
890 struct Z_PrivateCapabilities {
891         int num_operators;
892         Z_PrivateCapOperator **operators; /* OPT */
893         int num_searchKeys;
894         Z_SearchKey **searchKeys; /* OPT */
895         int num_description;
896         Z_HumanString **description; /* OPT */
897 };
898
899 struct Z_RpnCapabilities {
900         int num_operators;
901         int **operators; /* OPT */
902         bool_t *resultSetAsOperandSupported;
903         bool_t *restrictionOperandSupported;
904         Z_ProximitySupport *proximity; /* OPT */
905 };
906
907 struct Z_Iso8777Capabilities {
908         int num_searchKeys;
909         Z_SearchKey **searchKeys;
910         Z_HumanString *restrictions; /* OPT */
911 };
912
913 struct Z_ProxSupportPrivate {
914         int *unit;
915         Z_HumanString *description; /* OPT */
916 };
917
918 struct Z_ProxSupportUnit {
919         int which;
920         union {
921                 int *known;
922                 Z_ProxSupportPrivate *zprivate;
923 #define Z_ProxSupportUnit_known 1
924 #define Z_ProxSupportUnit_private 2
925         } u;
926 };
927
928 struct Z_ProximitySupport {
929         bool_t *anySupport;
930         int num_unitsSupported;
931         Z_ProxSupportUnit **unitsSupported; /* OPT */
932 };
933
934 struct Z_SearchKey {
935         Z_InternationalString *searchKey;
936         Z_HumanString *description; /* OPT */
937 };
938
939 struct Z_AccessRestrictionsUnit {
940 #define Z_AccessRestrictionsUnit_any 0
941 #define Z_AccessRestrictionsUnit_search 1
942 #define Z_AccessRestrictionsUnit_present 2
943 #define Z_AccessRestrictionsUnit_specific_elements 3
944 #define Z_AccessRestrictionsUnit_extended_services 4
945 #define Z_AccessRestrictionsUnit_by_database 5
946         int *accessType;
947         Z_HumanString *accessText; /* OPT */
948         int num_accessChallenges;
949         Odr_oid **accessChallenges; /* OPT */
950 };
951
952 struct Z_AccessRestrictions {
953         int num;
954         Z_AccessRestrictionsUnit **elements;
955 };
956
957 struct Z_CostsOtherCharge {
958         Z_HumanString *forWhat;
959         Z_Charge *charge;
960 };
961
962 struct Z_Costs {
963         Z_Charge *connectCharge; /* OPT */
964         Z_Charge *connectTime; /* OPT */
965         Z_Charge *displayCharge; /* OPT */
966         Z_Charge *searchCharge; /* OPT */
967         Z_Charge *subscriptCharge; /* OPT */
968         int num_otherCharges;
969         Z_CostsOtherCharge **otherCharges; /* OPT */
970 };
971
972 struct Z_Charge {
973         Z_IntUnit *cost;
974         Z_Unit *perWhat; /* OPT */
975         Z_HumanString *text; /* OPT */
976 };
977
978 struct Z_DatabaseList {
979         int num_databases;
980         Z_DatabaseName **databases;
981 };
982
983 struct Z_AttributeCombinations {
984         Z_AttributeSetId *defaultAttributeSet;
985         int num_legalCombinations;
986         Z_AttributeCombination **legalCombinations;
987 };
988
989 struct Z_AttributeCombination {
990         int num_occurrences;
991         Z_AttributeOccurrence **occurrences;
992 };
993
994 struct Z_AttributeValueList {
995         int num_attributes;
996         Z_StringOrNumeric **attributes;
997 };
998
999 struct Z_AttributeOccurrence {
1000         Z_AttributeSetId *attributeSet; /* OPT */
1001         int *attributeType;
1002         Odr_null *mustBeSupplied; /* OPT */
1003         int which;
1004         union {
1005                 Odr_null *any_or_none;
1006                 Z_AttributeValueList *specific;
1007 #define Z_AttributeOcc_any_or_none 1
1008 #define Z_AttributeOcc_specific 2
1009         } attributeValues;
1010 };
1011
1012 #ifdef __cplusplus
1013 }
1014 #endif
1015 #endif