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 Odr_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 	Odr_bool *namedResultSets;
301 	Odr_bool *multipleDBsearch;
302 	Odr_int *maxResultSets; /* OPT */
303 	Odr_int *maxResultSize; /* OPT */
304 	Odr_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 	Odr_bool *userFee;
331 	Odr_bool *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 		Odr_int *actualNumber;
343 		Odr_int *approxNumber;
344 #define Z_DatabaseInfo_actualNumber 1
345 #define Z_DatabaseInfo_approxNumber 2
346 	} u; /* OPT */
347 	Z_HumanString *defaultOrder; /* OPT */
348 	Odr_int *avRecordSize; /* OPT */
349 	Odr_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 	Odr_bool *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 	Odr_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 	Odr_bool *required;
386 	Odr_bool *repeatable;
387 	Z_HumanString *description; /* OPT */
388 };
389 
390 struct Z_PathUnit {
391 	Odr_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 	Odr_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 	Odr_int *searchCost; /* OPT */
490 	Odr_bool *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 	Odr_bool *privateType;
509 	Odr_bool *restrictionsApply;
510 	Odr_bool *feeApply;
511 	Odr_bool *available;
512 	Odr_bool *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 	Odr_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 	Odr_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 	Odr_int *maxStepSize; /* OPT */
562 	Z_HumanString *collatingSequence; /* OPT */
563 	Odr_bool *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 	Odr_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 	Odr_int *maxSize; /* OPT */
604 	Odr_int *minSize; /* OPT */
605 	Odr_int *avgSize; /* OPT */
606 	Odr_int *fixedSize; /* OPT */
607 	Odr_bool *repeatable;
608 	Odr_bool *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 	Odr_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 	Odr_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 	Odr_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 	Odr_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 		Odr_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 	Odr_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 	Odr_int **operators; /* OPT */
902 	Odr_bool *resultSetAsOperandSupported;
903 	Odr_bool *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 	Odr_int *unit;
915 	Z_HumanString *description; /* OPT */
916 };
917 
918 struct Z_ProxSupportUnit {
919 	int which;
920 	union {
921 		Odr_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 	Odr_bool *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 	Odr_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 	Odr_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
1016