1 /* Generated automatically by the YAZ ASN.1 Compiler 0.3 */
2 /* Module-C: RecordSyntax-explain */
6 int z_ExplainRecord (ODR o, Z_ExplainRecord **p, int opt, const char *name)
8 static Odr_arm arm[] = {
9 {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_Explain_targetInfo,
10 (Odr_fun) z_TargetInfo, "targetInfo"},
11 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Explain_databaseInfo,
12 (Odr_fun) z_DatabaseInfo, "databaseInfo"},
13 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Explain_schemaInfo,
14 (Odr_fun) z_SchemaInfo, "schemaInfo"},
15 {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Explain_tagSetInfo,
16 (Odr_fun) z_TagSetInfo, "tagSetInfo"},
17 {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_Explain_recordSyntaxInfo,
18 (Odr_fun) z_RecordSyntaxInfo, "recordSyntaxInfo"},
19 {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_Explain_attributeSetInfo,
20 (Odr_fun) z_AttributeSetInfo, "attributeSetInfo"},
21 {ODR_IMPLICIT, ODR_CONTEXT, 6, Z_Explain_termListInfo,
22 (Odr_fun) z_TermListInfo, "termListInfo"},
23 {ODR_IMPLICIT, ODR_CONTEXT, 7, Z_Explain_extendedServicesInfo,
24 (Odr_fun) z_ExtendedServicesInfo, "extendedServicesInfo"},
25 {ODR_IMPLICIT, ODR_CONTEXT, 8, Z_Explain_attributeDetails,
26 (Odr_fun) z_AttributeDetails, "attributeDetails"},
27 {ODR_IMPLICIT, ODR_CONTEXT, 9, Z_Explain_termListDetails,
28 (Odr_fun) z_TermListDetails, "termListDetails"},
29 {ODR_IMPLICIT, ODR_CONTEXT, 10, Z_Explain_elementSetDetails,
30 (Odr_fun) z_ElementSetDetails, "elementSetDetails"},
31 {ODR_IMPLICIT, ODR_CONTEXT, 11, Z_Explain_retrievalRecordDetails,
32 (Odr_fun) z_RetrievalRecordDetails, "retrievalRecordDetails"},
33 {ODR_IMPLICIT, ODR_CONTEXT, 12, Z_Explain_sortDetails,
34 (Odr_fun) z_SortDetails, "sortDetails"},
35 {ODR_IMPLICIT, ODR_CONTEXT, 13, Z_Explain_processing,
36 (Odr_fun) z_ProcessingInformation, "processing"},
37 {ODR_IMPLICIT, ODR_CONTEXT, 14, Z_Explain_variants,
38 (Odr_fun) z_VariantSetInfo, "variants"},
39 {ODR_IMPLICIT, ODR_CONTEXT, 15, Z_Explain_units,
40 (Odr_fun) z_UnitInfo, "units"},
41 {ODR_IMPLICIT, ODR_CONTEXT, 100, Z_Explain_categoryList,
42 (Odr_fun) z_CategoryList, "categoryList"},
43 {-1, -1, -1, -1, (Odr_fun) 0, 0}
45 if (!odr_initmember(o, p, sizeof(**p)))
46 return opt && odr_ok(o);
47 if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
50 return opt && odr_ok(o);
53 int z_TargetInfo (ODR o, Z_TargetInfo **p, int opt, const char *name)
55 if (!odr_sequence_begin (o, p, sizeof(**p), name))
56 return opt && odr_ok (o);
58 odr_implicit_tag (o, z_CommonInfo,
59 &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
60 odr_implicit_tag (o, z_InternationalString,
61 &(*p)->name, ODR_CONTEXT, 1, 0, "name") &&
62 odr_implicit_tag (o, z_HumanString,
63 &(*p)->recentNews, ODR_CONTEXT, 2, 1, "recentNews") &&
64 odr_implicit_tag (o, z_IconObject,
65 &(*p)->icon, ODR_CONTEXT, 3, 1, "icon") &&
66 odr_implicit_tag (o, odr_bool,
67 &(*p)->namedResultSets, ODR_CONTEXT, 4, 0, "namedResultSets") &&
68 odr_implicit_tag (o, odr_bool,
69 &(*p)->multipleDBsearch, ODR_CONTEXT, 5, 0, "multipleDBsearch") &&
70 odr_implicit_tag (o, odr_integer,
71 &(*p)->maxResultSets, ODR_CONTEXT, 6, 1, "maxResultSets") &&
72 odr_implicit_tag (o, odr_integer,
73 &(*p)->maxResultSize, ODR_CONTEXT, 7, 1, "maxResultSize") &&
74 odr_implicit_tag (o, odr_integer,
75 &(*p)->maxTerms, ODR_CONTEXT, 8, 1, "maxTerms") &&
76 odr_implicit_tag (o, z_IntUnit,
77 &(*p)->timeoutInterval, ODR_CONTEXT, 9, 1, "timeoutInterval") &&
78 odr_implicit_tag (o, z_HumanString,
79 &(*p)->welcomeMessage, ODR_CONTEXT, 10, 1, "welcomeMessage") &&
80 odr_implicit_tag (o, z_ContactInfo,
81 &(*p)->contactInfo, ODR_CONTEXT, 11, 1, "contactInfo") &&
82 odr_implicit_tag (o, z_HumanString,
83 &(*p)->description, ODR_CONTEXT, 12, 1, "description") &&
84 odr_implicit_settag (o, ODR_CONTEXT, 13) &&
85 (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->nicknames,
86 &(*p)->num_nicknames, "nicknames") || odr_ok(o)) &&
87 odr_implicit_tag (o, z_HumanString,
88 &(*p)->usageRest, ODR_CONTEXT, 14, 1, "usageRest") &&
89 odr_implicit_tag (o, z_HumanString,
90 &(*p)->paymentAddr, ODR_CONTEXT, 15, 1, "paymentAddr") &&
91 odr_implicit_tag (o, z_HumanString,
92 &(*p)->hours, ODR_CONTEXT, 16, 1, "hours") &&
93 odr_implicit_settag (o, ODR_CONTEXT, 17) &&
94 (odr_sequence_of(o, (Odr_fun) z_DatabaseList, &(*p)->dbCombinations,
95 &(*p)->num_dbCombinations, "dbCombinations") || odr_ok(o)) &&
96 odr_implicit_settag (o, ODR_CONTEXT, 18) &&
97 (odr_sequence_of(o, (Odr_fun) z_NetworkAddress, &(*p)->addresses,
98 &(*p)->num_addresses, "addresses") || odr_ok(o)) &&
99 odr_implicit_settag (o, ODR_CONTEXT, 101) &&
100 (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->languages,
101 &(*p)->num_languages, "languages") || odr_ok(o)) &&
102 odr_implicit_tag (o, z_AccessInfo,
103 &(*p)->commonAccessInfo, ODR_CONTEXT, 19, 1, "commonAccessInfo") &&
104 odr_sequence_end (o);
107 int z_DatabaseInfo (ODR o, Z_DatabaseInfo **p, int opt, const char *name)
109 static Odr_arm arm[] = {
110 {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_DatabaseInfo_actualNumber,
111 (Odr_fun) odr_integer, "actualNumber"},
112 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_DatabaseInfo_approxNumber,
113 (Odr_fun) odr_integer, "approxNumber"},
114 {-1, -1, -1, -1, (Odr_fun) 0, 0}
116 if (!odr_sequence_begin (o, p, sizeof(**p), name))
117 return opt && odr_ok (o);
119 odr_implicit_tag (o, z_CommonInfo,
120 &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
121 odr_implicit_tag (o, z_DatabaseName,
122 &(*p)->name, ODR_CONTEXT, 1, 0, "name") &&
123 odr_implicit_tag (o, odr_null,
124 &(*p)->explainDatabase, ODR_CONTEXT, 2, 1, "explainDatabase") &&
125 odr_implicit_settag (o, ODR_CONTEXT, 3) &&
126 (odr_sequence_of(o, (Odr_fun) z_DatabaseName, &(*p)->nicknames,
127 &(*p)->num_nicknames, "nicknames") || odr_ok(o)) &&
128 odr_implicit_tag (o, z_IconObject,
129 &(*p)->icon, ODR_CONTEXT, 4, 1, "icon") &&
130 odr_implicit_tag (o, odr_bool,
131 &(*p)->userFee, ODR_CONTEXT, 5, 0, "userFee") &&
132 odr_implicit_tag (o, odr_bool,
133 &(*p)->available, ODR_CONTEXT, 6, 0, "available") &&
134 odr_implicit_tag (o, z_HumanString,
135 &(*p)->titleString, ODR_CONTEXT, 7, 1, "titleString") &&
136 odr_implicit_settag (o, ODR_CONTEXT, 8) &&
137 (odr_sequence_of(o, (Odr_fun) z_HumanString, &(*p)->keywords,
138 &(*p)->num_keywords, "keywords") || odr_ok(o)) &&
139 odr_implicit_tag (o, z_HumanString,
140 &(*p)->description, ODR_CONTEXT, 9, 1, "description") &&
141 odr_implicit_tag (o, z_DatabaseList,
142 &(*p)->associatedDbs, ODR_CONTEXT, 10, 1, "associatedDbs") &&
143 odr_implicit_tag (o, z_DatabaseList,
144 &(*p)->subDbs, ODR_CONTEXT, 11, 1, "subDbs") &&
145 odr_implicit_tag (o, z_HumanString,
146 &(*p)->disclaimers, ODR_CONTEXT, 12, 1, "disclaimers") &&
147 odr_implicit_tag (o, z_HumanString,
148 &(*p)->news, ODR_CONTEXT, 13, 1, "news") &&
149 ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 14, "recordCount") &&
150 odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) &&
151 odr_constructed_end (o)) || odr_ok(o)) &&
152 odr_implicit_tag (o, z_HumanString,
153 &(*p)->defaultOrder, ODR_CONTEXT, 15, 1, "defaultOrder") &&
154 odr_implicit_tag (o, odr_integer,
155 &(*p)->avRecordSize, ODR_CONTEXT, 16, 1, "avRecordSize") &&
156 odr_implicit_tag (o, odr_integer,
157 &(*p)->maxRecordSize, ODR_CONTEXT, 17, 1, "maxRecordSize") &&
158 odr_implicit_tag (o, z_HumanString,
159 &(*p)->hours, ODR_CONTEXT, 18, 1, "hours") &&
160 odr_implicit_tag (o, z_HumanString,
161 &(*p)->bestTime, ODR_CONTEXT, 19, 1, "bestTime") &&
162 odr_implicit_tag (o, odr_generalizedtime,
163 &(*p)->lastUpdate, ODR_CONTEXT, 20, 1, "lastUpdate") &&
164 odr_implicit_tag (o, z_IntUnit,
165 &(*p)->updateInterval, ODR_CONTEXT, 21, 1, "updateInterval") &&
166 odr_implicit_tag (o, z_HumanString,
167 &(*p)->coverage, ODR_CONTEXT, 22, 1, "coverage") &&
168 odr_implicit_tag (o, odr_bool,
169 &(*p)->proprietary, ODR_CONTEXT, 23, 1, "proprietary") &&
170 odr_implicit_tag (o, z_HumanString,
171 &(*p)->copyrightText, ODR_CONTEXT, 24, 1, "copyrightText") &&
172 odr_implicit_tag (o, z_HumanString,
173 &(*p)->copyrightNotice, ODR_CONTEXT, 25, 1, "copyrightNotice") &&
174 odr_implicit_tag (o, z_ContactInfo,
175 &(*p)->producerContactInfo, ODR_CONTEXT, 26, 1, "producerContactInfo") &&
176 odr_implicit_tag (o, z_ContactInfo,
177 &(*p)->supplierContactInfo, ODR_CONTEXT, 27, 1, "supplierContactInfo") &&
178 odr_implicit_tag (o, z_ContactInfo,
179 &(*p)->submissionContactInfo, ODR_CONTEXT, 28, 1, "submissionContactInfo") &&
180 odr_implicit_tag (o, z_AccessInfo,
181 &(*p)->accessInfo, ODR_CONTEXT, 29, 1, "accessInfo") &&
182 odr_sequence_end (o);
185 int z_TagTypeMapping (ODR o, Z_TagTypeMapping **p, int opt, const char *name)
187 if (!odr_sequence_begin (o, p, sizeof(**p), name))
188 return opt && odr_ok (o);
190 odr_implicit_tag (o, odr_integer,
191 &(*p)->tagType, ODR_CONTEXT, 0, 0, "tagType") &&
192 odr_implicit_tag (o, odr_oid,
193 &(*p)->tagSet, ODR_CONTEXT, 1, 1, "tagSet") &&
194 odr_implicit_tag (o, odr_null,
195 &(*p)->defaultTagType, ODR_CONTEXT, 2, 1, "defaultTagType") &&
196 odr_sequence_end (o);
199 int z_SchemaInfo (ODR o, Z_SchemaInfo **p, int opt, const char *name)
201 if (!odr_sequence_begin (o, p, sizeof(**p), name))
202 return opt && odr_ok (o);
204 odr_implicit_tag (o, z_CommonInfo,
205 &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
206 odr_implicit_tag (o, odr_oid,
207 &(*p)->schema, ODR_CONTEXT, 1, 0, "schema") &&
208 odr_implicit_tag (o, z_InternationalString,
209 &(*p)->name, ODR_CONTEXT, 2, 0, "name") &&
210 odr_implicit_tag (o, z_HumanString,
211 &(*p)->description, ODR_CONTEXT, 3, 1, "description") &&
212 odr_implicit_settag (o, ODR_CONTEXT, 4) &&
213 (odr_sequence_of(o, (Odr_fun) z_TagTypeMapping, &(*p)->tagTypeMapping,
214 &(*p)->num_tagTypeMapping, "tagTypeMapping") || odr_ok(o)) &&
215 odr_implicit_settag (o, ODR_CONTEXT, 5) &&
216 (odr_sequence_of(o, (Odr_fun) z_ElementInfo, &(*p)->recordStructure,
217 &(*p)->num_recordStructure, "recordStructure") || odr_ok(o)) &&
218 odr_sequence_end (o);
221 int z_ElementInfo (ODR o, Z_ElementInfo **p, int opt, const char *name)
223 if (!odr_sequence_begin (o, p, sizeof(**p), name))
224 return opt && odr_ok (o);
226 odr_implicit_tag (o, z_InternationalString,
227 &(*p)->elementName, ODR_CONTEXT, 1, 0, "elementName") &&
228 odr_implicit_tag (o, z_Path,
229 &(*p)->elementTagPath, ODR_CONTEXT, 2, 0, "elementTagPath") &&
230 odr_explicit_tag (o, z_ElementDataType,
231 &(*p)->dataType, ODR_CONTEXT, 3, 1, "dataType") &&
232 odr_implicit_tag (o, odr_bool,
233 &(*p)->required, ODR_CONTEXT, 4, 0, "required") &&
234 odr_implicit_tag (o, odr_bool,
235 &(*p)->repeatable, ODR_CONTEXT, 5, 0, "repeatable") &&
236 odr_implicit_tag (o, z_HumanString,
237 &(*p)->description, ODR_CONTEXT, 6, 1, "description") &&
238 odr_sequence_end (o);
241 int z_PathUnit (ODR o, Z_PathUnit **p, int opt, const char *name)
243 if (!odr_sequence_begin (o, p, sizeof(**p), name))
244 return opt && odr_ok (o);
246 odr_implicit_tag (o, odr_integer,
247 &(*p)->tagType, ODR_CONTEXT, 1, 0, "tagType") &&
248 odr_explicit_tag (o, z_StringOrNumeric,
249 &(*p)->tagValue, ODR_CONTEXT, 2, 0, "tagValue") &&
250 odr_sequence_end (o);
253 int z_Path (ODR o, Z_Path **p, int opt, const char *name)
255 if (!odr_initmember (o, p, sizeof(**p)))
256 return opt && odr_ok(o);
257 if (odr_sequence_of (o, (Odr_fun) z_PathUnit, &(*p)->elements,
261 return opt && odr_ok(o);
264 int z_ElementInfoList (ODR o, Z_ElementInfoList **p, int opt, const char *name)
266 if (!odr_initmember (o, p, sizeof(**p)))
267 return opt && odr_ok(o);
268 if (odr_sequence_of (o, (Odr_fun) z_ElementInfo, &(*p)->elements,
272 return opt && odr_ok(o);
275 int z_ElementDataType (ODR o, Z_ElementDataType **p, int opt, const char *name)
277 static Odr_arm arm[] = {
278 {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_ElementDataType_primitive,
279 (Odr_fun) z_PrimitiveDataType, "primitive"},
280 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ElementDataType_structured,
281 (Odr_fun) z_ElementInfoList, "structured"},
282 {-1, -1, -1, -1, (Odr_fun) 0, 0}
284 if (!odr_initmember(o, p, sizeof(**p)))
285 return opt && odr_ok(o);
286 if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
289 return opt && odr_ok(o);
292 int z_PrimitiveDataType (ODR o, Z_PrimitiveDataType **p, int opt, const char *name)
294 return odr_integer (o, p, opt, name);
297 int z_TagSetElements (ODR o, Z_TagSetElements **p, int opt, const char *name)
299 if (!odr_sequence_begin (o, p, sizeof(**p), name))
300 return opt && odr_ok (o);
302 odr_implicit_tag (o, z_InternationalString,
303 &(*p)->elementname, ODR_CONTEXT, 1, 0, "elementname") &&
304 odr_implicit_settag (o, ODR_CONTEXT, 2) &&
305 (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->nicknames,
306 &(*p)->num_nicknames, "nicknames") || odr_ok(o)) &&
307 odr_explicit_tag (o, z_StringOrNumeric,
308 &(*p)->elementTag, ODR_CONTEXT, 3, 0, "elementTag") &&
309 odr_implicit_tag (o, z_HumanString,
310 &(*p)->description, ODR_CONTEXT, 4, 1, "description") &&
311 odr_explicit_tag (o, z_PrimitiveDataType,
312 &(*p)->dataType, ODR_CONTEXT, 5, 1, "dataType") &&
313 z_OtherInformation(o, &(*p)->otherTagInfo, 1, "otherTagInfo") &&
314 odr_sequence_end (o);
317 int z_TagSetInfo (ODR o, Z_TagSetInfo **p, int opt, const char *name)
319 if (!odr_sequence_begin (o, p, sizeof(**p), name))
320 return opt && odr_ok (o);
322 odr_implicit_tag (o, z_CommonInfo,
323 &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
324 odr_implicit_tag (o, odr_oid,
325 &(*p)->tagSet, ODR_CONTEXT, 1, 0, "tagSet") &&
326 odr_implicit_tag (o, z_InternationalString,
327 &(*p)->name, ODR_CONTEXT, 2, 0, "name") &&
328 odr_implicit_tag (o, z_HumanString,
329 &(*p)->description, ODR_CONTEXT, 3, 1, "description") &&
330 odr_implicit_settag (o, ODR_CONTEXT, 4) &&
331 (odr_sequence_of(o, (Odr_fun) z_TagSetElements, &(*p)->elements,
332 &(*p)->num_elements, "elements") || odr_ok(o)) &&
333 odr_sequence_end (o);
336 int z_RecordSyntaxInfo (ODR o, Z_RecordSyntaxInfo **p, int opt, const char *name)
338 if (!odr_sequence_begin (o, p, sizeof(**p), name))
339 return opt && odr_ok (o);
341 odr_implicit_tag (o, z_CommonInfo,
342 &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
343 odr_implicit_tag (o, odr_oid,
344 &(*p)->recordSyntax, ODR_CONTEXT, 1, 0, "recordSyntax") &&
345 odr_implicit_tag (o, z_InternationalString,
346 &(*p)->name, ODR_CONTEXT, 2, 0, "name") &&
347 odr_implicit_settag (o, ODR_CONTEXT, 3) &&
348 (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->transferSyntaxes,
349 &(*p)->num_transferSyntaxes, "transferSyntaxes") || odr_ok(o)) &&
350 odr_implicit_tag (o, z_HumanString,
351 &(*p)->description, ODR_CONTEXT, 4, 1, "description") &&
352 odr_implicit_tag (o, z_InternationalString,
353 &(*p)->asn1Module, ODR_CONTEXT, 5, 1, "asn1Module") &&
354 odr_implicit_settag (o, ODR_CONTEXT, 6) &&
355 (odr_sequence_of(o, (Odr_fun) z_ElementInfo, &(*p)->abstractStructure,
356 &(*p)->num_abstractStructure, "abstractStructure") || odr_ok(o)) &&
357 odr_sequence_end (o);
360 int z_AttributeSetInfo (ODR o, Z_AttributeSetInfo **p, int opt, const char *name)
362 if (!odr_sequence_begin (o, p, sizeof(**p), name))
363 return opt && odr_ok (o);
365 odr_implicit_tag (o, z_CommonInfo,
366 &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
367 odr_implicit_tag (o, z_AttributeSetId,
368 &(*p)->attributeSet, ODR_CONTEXT, 1, 0, "attributeSet") &&
369 odr_implicit_tag (o, z_InternationalString,
370 &(*p)->name, ODR_CONTEXT, 2, 0, "name") &&
371 odr_implicit_settag (o, ODR_CONTEXT, 3) &&
372 (odr_sequence_of(o, (Odr_fun) z_AttributeType, &(*p)->attributes,
373 &(*p)->num_attributes, "attributes") || odr_ok(o)) &&
374 odr_implicit_tag (o, z_HumanString,
375 &(*p)->description, ODR_CONTEXT, 4, 1, "description") &&
376 odr_sequence_end (o);
379 int z_AttributeType (ODR o, Z_AttributeType **p, int opt, const char *name)
381 if (!odr_sequence_begin (o, p, sizeof(**p), name))
382 return opt && odr_ok (o);
384 odr_implicit_tag (o, z_InternationalString,
385 &(*p)->name, ODR_CONTEXT, 0, 1, "name") &&
386 odr_implicit_tag (o, z_HumanString,
387 &(*p)->description, ODR_CONTEXT, 1, 1, "description") &&
388 odr_implicit_tag (o, odr_integer,
389 &(*p)->attributeType, ODR_CONTEXT, 2, 0, "attributeType") &&
390 odr_implicit_settag (o, ODR_CONTEXT, 3) &&
391 odr_sequence_of(o, (Odr_fun) z_AttributeDescription, &(*p)->attributeValues,
392 &(*p)->num_attributeValues, "attributeValues") &&
393 odr_sequence_end (o);
396 int z_AttributeDescription (ODR o, Z_AttributeDescription **p, int opt, const char *name)
398 if (!odr_sequence_begin (o, p, sizeof(**p), name))
399 return opt && odr_ok (o);
401 odr_implicit_tag (o, z_InternationalString,
402 &(*p)->name, ODR_CONTEXT, 0, 1, "name") &&
403 odr_implicit_tag (o, z_HumanString,
404 &(*p)->description, ODR_CONTEXT, 1, 1, "description") &&
405 odr_explicit_tag (o, z_StringOrNumeric,
406 &(*p)->attributeValue, ODR_CONTEXT, 2, 0, "attributeValue") &&
407 odr_implicit_settag (o, ODR_CONTEXT, 3) &&
408 (odr_sequence_of(o, (Odr_fun) z_StringOrNumeric, &(*p)->equivalentAttributes,
409 &(*p)->num_equivalentAttributes, "equivalentAttributes") || odr_ok(o)) &&
410 odr_sequence_end (o);
413 int z_TermListElement (ODR o, Z_TermListElement **p, int opt, const char *name)
415 if (!odr_sequence_begin (o, p, sizeof(**p), name))
416 return opt && odr_ok (o);
418 odr_implicit_tag (o, z_InternationalString,
419 &(*p)->name, ODR_CONTEXT, 1, 0, "name") &&
420 odr_implicit_tag (o, z_HumanString,
421 &(*p)->title, ODR_CONTEXT, 2, 1, "title") &&
422 odr_implicit_tag (o, odr_integer,
423 &(*p)->searchCost, ODR_CONTEXT, 3, 1, "searchCost") &&
424 odr_implicit_tag (o, odr_bool,
425 &(*p)->scanable, ODR_CONTEXT, 4, 0, "scanable") &&
426 odr_implicit_settag (o, ODR_CONTEXT, 5) &&
427 (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->broader,
428 &(*p)->num_broader, "broader") || odr_ok(o)) &&
429 odr_implicit_settag (o, ODR_CONTEXT, 6) &&
430 (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->narrower,
431 &(*p)->num_narrower, "narrower") || odr_ok(o)) &&
432 odr_sequence_end (o);
435 int z_TermListInfo (ODR o, Z_TermListInfo **p, int opt, const char *name)
437 if (!odr_sequence_begin (o, p, sizeof(**p), name))
438 return opt && odr_ok (o);
440 odr_implicit_tag (o, z_CommonInfo,
441 &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
442 odr_implicit_tag (o, z_DatabaseName,
443 &(*p)->databaseName, ODR_CONTEXT, 1, 0, "databaseName") &&
444 odr_implicit_settag (o, ODR_CONTEXT, 2) &&
445 odr_sequence_of(o, (Odr_fun) z_TermListElement, &(*p)->termLists,
446 &(*p)->num_termLists, "termLists") &&
447 odr_sequence_end (o);
450 int z_ExtendedServicesInfo (ODR o, Z_ExtendedServicesInfo **p, int opt, const char *name)
452 if (!odr_sequence_begin (o, p, sizeof(**p), name))
453 return opt && odr_ok (o);
455 odr_implicit_tag (o, z_CommonInfo,
456 &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
457 odr_implicit_tag (o, odr_oid,
458 &(*p)->type, ODR_CONTEXT, 1, 0, "type") &&
459 odr_implicit_tag (o, z_InternationalString,
460 &(*p)->name, ODR_CONTEXT, 2, 1, "name") &&
461 odr_implicit_tag (o, odr_bool,
462 &(*p)->privateType, ODR_CONTEXT, 3, 0, "privateType") &&
463 odr_implicit_tag (o, odr_bool,
464 &(*p)->restrictionsApply, ODR_CONTEXT, 5, 0, "restrictionsApply") &&
465 odr_implicit_tag (o, odr_bool,
466 &(*p)->feeApply, ODR_CONTEXT, 6, 0, "feeApply") &&
467 odr_implicit_tag (o, odr_bool,
468 &(*p)->available, ODR_CONTEXT, 7, 0, "available") &&
469 odr_implicit_tag (o, odr_bool,
470 &(*p)->retentionSupported, ODR_CONTEXT, 8, 0, "retentionSupported") &&
471 odr_implicit_tag (o, odr_integer,
472 &(*p)->waitAction, ODR_CONTEXT, 9, 0, "waitAction") &&
473 odr_implicit_tag (o, z_HumanString,
474 &(*p)->description, ODR_CONTEXT, 10, 1, "description") &&
475 odr_implicit_tag (o, z_External,
476 &(*p)->specificExplain, ODR_CONTEXT, 11, 1, "specificExplain") &&
477 odr_implicit_tag (o, z_InternationalString,
478 &(*p)->esASN, ODR_CONTEXT, 12, 1, "esASN") &&
479 odr_sequence_end (o);
482 int z_AttributeDetails (ODR o, Z_AttributeDetails **p, int opt, const char *name)
484 if (!odr_sequence_begin (o, p, sizeof(**p), name))
485 return opt && odr_ok (o);
487 odr_implicit_tag (o, z_CommonInfo,
488 &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
489 odr_implicit_tag (o, z_DatabaseName,
490 &(*p)->databaseName, ODR_CONTEXT, 1, 0, "databaseName") &&
491 odr_implicit_settag (o, ODR_CONTEXT, 2) &&
492 (odr_sequence_of(o, (Odr_fun) z_AttributeSetDetails, &(*p)->attributesBySet,
493 &(*p)->num_attributesBySet, "attributesBySet") || odr_ok(o)) &&
494 odr_implicit_tag (o, z_AttributeCombinations,
495 &(*p)->attributeCombinations, ODR_CONTEXT, 3, 1, "attributeCombinations") &&
496 odr_sequence_end (o);
499 int z_AttributeSetDetails (ODR o, Z_AttributeSetDetails **p, int opt, const char *name)
501 if (!odr_sequence_begin (o, p, sizeof(**p), name))
502 return opt && odr_ok (o);
504 odr_implicit_tag (o, z_AttributeSetId,
505 &(*p)->attributeSet, ODR_CONTEXT, 0, 0, "attributeSet") &&
506 odr_implicit_settag (o, ODR_CONTEXT, 1) &&
507 odr_sequence_of(o, (Odr_fun) z_AttributeTypeDetails, &(*p)->attributesByType,
508 &(*p)->num_attributesByType, "attributesByType") &&
509 odr_sequence_end (o);
512 int z_AttributeTypeDetails (ODR o, Z_AttributeTypeDetails **p, int opt, const char *name)
514 if (!odr_sequence_begin (o, p, sizeof(**p), name))
515 return opt && odr_ok (o);
517 odr_implicit_tag (o, odr_integer,
518 &(*p)->attributeType, ODR_CONTEXT, 0, 0, "attributeType") &&
519 odr_implicit_tag (o, z_OmittedAttributeInterpretation,
520 &(*p)->defaultIfOmitted, ODR_CONTEXT, 1, 1, "defaultIfOmitted") &&
521 odr_implicit_settag (o, ODR_CONTEXT, 2) &&
522 (odr_sequence_of(o, (Odr_fun) z_AttributeValue, &(*p)->attributeValues,
523 &(*p)->num_attributeValues, "attributeValues") || odr_ok(o)) &&
524 odr_sequence_end (o);
527 int z_OmittedAttributeInterpretation (ODR o, Z_OmittedAttributeInterpretation **p, int opt, const char *name)
529 if (!odr_sequence_begin (o, p, sizeof(**p), name))
530 return opt && odr_ok (o);
532 odr_explicit_tag (o, z_StringOrNumeric,
533 &(*p)->defaultValue, ODR_CONTEXT, 0, 1, "defaultValue") &&
534 odr_implicit_tag (o, z_HumanString,
535 &(*p)->defaultDescription, ODR_CONTEXT, 1, 1, "defaultDescription") &&
536 odr_sequence_end (o);
539 int z_AttributeValue (ODR o, Z_AttributeValue **p, int opt, const char *name)
541 if (!odr_sequence_begin (o, p, sizeof(**p), name))
542 return opt && odr_ok (o);
544 odr_explicit_tag (o, z_StringOrNumeric,
545 &(*p)->value, ODR_CONTEXT, 0, 0, "value") &&
546 odr_implicit_tag (o, z_HumanString,
547 &(*p)->description, ODR_CONTEXT, 1, 1, "description") &&
548 odr_implicit_settag (o, ODR_CONTEXT, 2) &&
549 (odr_sequence_of(o, (Odr_fun) z_StringOrNumeric, &(*p)->subAttributes,
550 &(*p)->num_subAttributes, "subAttributes") || odr_ok(o)) &&
551 odr_implicit_settag (o, ODR_CONTEXT, 3) &&
552 (odr_sequence_of(o, (Odr_fun) z_StringOrNumeric, &(*p)->superAttributes,
553 &(*p)->num_superAttributes, "superAttributes") || odr_ok(o)) &&
554 odr_implicit_tag (o, odr_null,
555 &(*p)->partialSupport, ODR_CONTEXT, 4, 1, "partialSupport") &&
556 odr_sequence_end (o);
559 int z_EScanInfo (ODR o, Z_EScanInfo **p, int opt, const char *name)
561 if (!odr_sequence_begin (o, p, sizeof(**p), name))
562 return opt && odr_ok (o);
564 odr_implicit_tag (o, odr_integer,
565 &(*p)->maxStepSize, ODR_CONTEXT, 0, 1, "maxStepSize") &&
566 odr_implicit_tag (o, z_HumanString,
567 &(*p)->collatingSequence, ODR_CONTEXT, 1, 1, "collatingSequence") &&
568 odr_implicit_tag (o, odr_bool,
569 &(*p)->increasing, ODR_CONTEXT, 2, 1, "increasing") &&
570 odr_sequence_end (o);
573 int z_TermListDetails (ODR o, Z_TermListDetails **p, int opt, const char *name)
575 if (!odr_sequence_begin (o, p, sizeof(**p), name))
576 return opt && odr_ok (o);
578 odr_implicit_tag (o, z_CommonInfo,
579 &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
580 odr_implicit_tag (o, z_InternationalString,
581 &(*p)->termListName, ODR_CONTEXT, 1, 0, "termListName") &&
582 odr_implicit_tag (o, z_HumanString,
583 &(*p)->description, ODR_CONTEXT, 2, 1, "description") &&
584 odr_implicit_tag (o, z_AttributeCombinations,
585 &(*p)->attributes, ODR_CONTEXT, 3, 1, "attributes") &&
586 odr_implicit_tag (o, z_EScanInfo,
587 &(*p)->scanInfo, ODR_CONTEXT, 4, 1, "scanInfo") &&
588 odr_implicit_tag (o, odr_integer,
589 &(*p)->estNumberTerms, ODR_CONTEXT, 5, 1, "estNumberTerms") &&
590 odr_implicit_settag (o, ODR_CONTEXT, 6) &&
591 (odr_sequence_of(o, (Odr_fun) z_Term, &(*p)->sampleTerms,
592 &(*p)->num_sampleTerms, "sampleTerms") || odr_ok(o)) &&
593 odr_sequence_end (o);
596 int z_ElementSetDetails (ODR o, Z_ElementSetDetails **p, int opt, const char *name)
598 if (!odr_sequence_begin (o, p, sizeof(**p), name))
599 return opt && odr_ok (o);
601 odr_implicit_tag (o, z_CommonInfo,
602 &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
603 odr_implicit_tag (o, z_DatabaseName,
604 &(*p)->databaseName, ODR_CONTEXT, 1, 0, "databaseName") &&
605 odr_implicit_tag (o, z_ElementSetName,
606 &(*p)->elementSetName, ODR_CONTEXT, 2, 0, "elementSetName") &&
607 odr_implicit_tag (o, odr_oid,
608 &(*p)->recordSyntax, ODR_CONTEXT, 3, 0, "recordSyntax") &&
609 odr_implicit_tag (o, odr_oid,
610 &(*p)->schema, ODR_CONTEXT, 4, 0, "schema") &&
611 odr_implicit_tag (o, z_HumanString,
612 &(*p)->description, ODR_CONTEXT, 5, 1, "description") &&
613 odr_implicit_settag (o, ODR_CONTEXT, 6) &&
614 (odr_sequence_of(o, (Odr_fun) z_PerElementDetails, &(*p)->detailsPerElement,
615 &(*p)->num_detailsPerElement, "detailsPerElement") || odr_ok(o)) &&
616 odr_sequence_end (o);
619 int z_RetrievalRecordDetails (ODR o, Z_RetrievalRecordDetails **p, int opt, const char *name)
621 if (!odr_sequence_begin (o, p, sizeof(**p), name))
622 return opt && odr_ok (o);
624 odr_implicit_tag (o, z_CommonInfo,
625 &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
626 odr_implicit_tag (o, z_DatabaseName,
627 &(*p)->databaseName, ODR_CONTEXT, 1, 0, "databaseName") &&
628 odr_implicit_tag (o, odr_oid,
629 &(*p)->schema, ODR_CONTEXT, 2, 0, "schema") &&
630 odr_implicit_tag (o, odr_oid,
631 &(*p)->recordSyntax, ODR_CONTEXT, 3, 0, "recordSyntax") &&
632 odr_implicit_tag (o, z_HumanString,
633 &(*p)->description, ODR_CONTEXT, 4, 1, "description") &&
634 odr_implicit_settag (o, ODR_CONTEXT, 5) &&
635 (odr_sequence_of(o, (Odr_fun) z_PerElementDetails, &(*p)->detailsPerElement,
636 &(*p)->num_detailsPerElement, "detailsPerElement") || odr_ok(o)) &&
637 odr_sequence_end (o);
640 int z_PerElementDetails (ODR o, Z_PerElementDetails **p, int opt, const char *name)
642 if (!odr_sequence_begin (o, p, sizeof(**p), name))
643 return opt && odr_ok (o);
645 odr_implicit_tag (o, z_InternationalString,
646 &(*p)->name, ODR_CONTEXT, 0, 1, "name") &&
647 odr_implicit_tag (o, z_RecordTag,
648 &(*p)->recordTag, ODR_CONTEXT, 1, 1, "recordTag") &&
649 odr_implicit_settag (o, ODR_CONTEXT, 2) &&
650 (odr_sequence_of(o, (Odr_fun) z_Path, &(*p)->schemaTags,
651 &(*p)->num_schemaTags, "schemaTags") || odr_ok(o)) &&
652 odr_implicit_tag (o, odr_integer,
653 &(*p)->maxSize, ODR_CONTEXT, 3, 1, "maxSize") &&
654 odr_implicit_tag (o, odr_integer,
655 &(*p)->minSize, ODR_CONTEXT, 4, 1, "minSize") &&
656 odr_implicit_tag (o, odr_integer,
657 &(*p)->avgSize, ODR_CONTEXT, 5, 1, "avgSize") &&
658 odr_implicit_tag (o, odr_integer,
659 &(*p)->fixedSize, ODR_CONTEXT, 6, 1, "fixedSize") &&
660 odr_implicit_tag (o, odr_bool,
661 &(*p)->repeatable, ODR_CONTEXT, 8, 0, "repeatable") &&
662 odr_implicit_tag (o, odr_bool,
663 &(*p)->required, ODR_CONTEXT, 9, 0, "required") &&
664 odr_implicit_tag (o, z_HumanString,
665 &(*p)->description, ODR_CONTEXT, 12, 1, "description") &&
666 odr_implicit_tag (o, z_HumanString,
667 &(*p)->contents, ODR_CONTEXT, 13, 1, "contents") &&
668 odr_implicit_tag (o, z_HumanString,
669 &(*p)->billingInfo, ODR_CONTEXT, 14, 1, "billingInfo") &&
670 odr_implicit_tag (o, z_HumanString,
671 &(*p)->restrictions, ODR_CONTEXT, 15, 1, "restrictions") &&
672 odr_implicit_settag (o, ODR_CONTEXT, 16) &&
673 (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->alternateNames,
674 &(*p)->num_alternateNames, "alternateNames") || odr_ok(o)) &&
675 odr_implicit_settag (o, ODR_CONTEXT, 17) &&
676 (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->genericNames,
677 &(*p)->num_genericNames, "genericNames") || odr_ok(o)) &&
678 odr_implicit_tag (o, z_AttributeCombinations,
679 &(*p)->searchAccess, ODR_CONTEXT, 18, 1, "searchAccess") &&
680 odr_sequence_end (o);
683 int z_RecordTag (ODR o, Z_RecordTag **p, int opt, const char *name)
685 if (!odr_sequence_begin (o, p, sizeof(**p), name))
686 return opt && odr_ok (o);
688 odr_explicit_tag (o, z_StringOrNumeric,
689 &(*p)->qualifier, ODR_CONTEXT, 0, 1, "qualifier") &&
690 odr_explicit_tag (o, z_StringOrNumeric,
691 &(*p)->tagValue, ODR_CONTEXT, 1, 0, "tagValue") &&
692 odr_sequence_end (o);
695 int z_SortDetails (ODR o, Z_SortDetails **p, int opt, const char *name)
697 if (!odr_sequence_begin (o, p, sizeof(**p), name))
698 return opt && odr_ok (o);
700 odr_implicit_tag (o, z_CommonInfo,
701 &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
702 odr_implicit_tag (o, z_DatabaseName,
703 &(*p)->databaseName, ODR_CONTEXT, 1, 0, "databaseName") &&
704 odr_implicit_settag (o, ODR_CONTEXT, 2) &&
705 (odr_sequence_of(o, (Odr_fun) z_SortKeyDetails, &(*p)->sortKeys,
706 &(*p)->num_sortKeys, "sortKeys") || odr_ok(o)) &&
707 odr_sequence_end (o);
710 int z_SortKeyDetails (ODR o, Z_SortKeyDetails **p, int opt, const char *name)
712 static Odr_arm arm[] = {
713 {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_SortKeyDetails_character,
714 (Odr_fun) odr_null, "character"},
715 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_SortKeyDetails_numeric,
716 (Odr_fun) odr_null, "numeric"},
717 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_SortKeyDetails_structured,
718 (Odr_fun) z_HumanString, "structured"},
719 {-1, -1, -1, -1, (Odr_fun) 0, 0}
721 if (!odr_sequence_begin (o, p, sizeof(**p), name))
722 return opt && odr_ok (o);
724 odr_implicit_tag (o, z_HumanString,
725 &(*p)->description, ODR_CONTEXT, 0, 1, "description") &&
726 odr_implicit_settag (o, ODR_CONTEXT, 1) &&
727 (odr_sequence_of(o, (Odr_fun) z_Specification, &(*p)->elementSpecifications,
728 &(*p)->num_elementSpecifications, "elementSpecifications") || odr_ok(o)) &&
729 odr_implicit_tag (o, z_AttributeCombinations,
730 &(*p)->attributeSpecifications, ODR_CONTEXT, 2, 1, "attributeSpecifications") &&
731 ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 3, "sortType") &&
732 odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) &&
733 odr_constructed_end (o)) || odr_ok(o)) &&
734 odr_implicit_tag (o, odr_integer,
735 &(*p)->caseSensitivity, ODR_CONTEXT, 4, 1, "caseSensitivity") &&
736 odr_sequence_end (o);
739 int z_ProcessingInformation (ODR o, Z_ProcessingInformation **p, int opt, const char *name)
741 if (!odr_sequence_begin (o, p, sizeof(**p), name))
742 return opt && odr_ok (o);
744 odr_implicit_tag (o, z_CommonInfo,
745 &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
746 odr_implicit_tag (o, z_DatabaseName,
747 &(*p)->databaseName, ODR_CONTEXT, 1, 0, "databaseName") &&
748 odr_implicit_tag (o, odr_integer,
749 &(*p)->processingContext, ODR_CONTEXT, 2, 0, "processingContext") &&
750 odr_implicit_tag (o, z_InternationalString,
751 &(*p)->name, ODR_CONTEXT, 3, 0, "name") &&
752 odr_implicit_tag (o, odr_oid,
753 &(*p)->oid, ODR_CONTEXT, 4, 0, "oid") &&
754 odr_implicit_tag (o, z_HumanString,
755 &(*p)->description, ODR_CONTEXT, 5, 1, "description") &&
756 odr_implicit_tag (o, z_External,
757 &(*p)->instructions, ODR_CONTEXT, 6, 1, "instructions") &&
758 odr_sequence_end (o);
761 int z_VariantSetInfo (ODR o, Z_VariantSetInfo **p, int opt, const char *name)
763 if (!odr_sequence_begin (o, p, sizeof(**p), name))
764 return opt && odr_ok (o);
766 odr_implicit_tag (o, z_CommonInfo,
767 &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
768 odr_implicit_tag (o, odr_oid,
769 &(*p)->variantSet, ODR_CONTEXT, 1, 0, "variantSet") &&
770 odr_implicit_tag (o, z_InternationalString,
771 &(*p)->name, ODR_CONTEXT, 2, 0, "name") &&
772 odr_implicit_settag (o, ODR_CONTEXT, 3) &&
773 (odr_sequence_of(o, (Odr_fun) z_VariantClass, &(*p)->variants,
774 &(*p)->num_variants, "variants") || odr_ok(o)) &&
775 odr_sequence_end (o);
778 int z_VariantClass (ODR o, Z_VariantClass **p, int opt, const char *name)
780 if (!odr_sequence_begin (o, p, sizeof(**p), name))
781 return opt && odr_ok (o);
783 odr_implicit_tag (o, z_InternationalString,
784 &(*p)->name, ODR_CONTEXT, 0, 1, "name") &&
785 odr_implicit_tag (o, z_HumanString,
786 &(*p)->description, ODR_CONTEXT, 1, 1, "description") &&
787 odr_implicit_tag (o, odr_integer,
788 &(*p)->variantClass, ODR_CONTEXT, 2, 0, "variantClass") &&
789 odr_implicit_settag (o, ODR_CONTEXT, 3) &&
790 odr_sequence_of(o, (Odr_fun) z_VariantType, &(*p)->variantTypes,
791 &(*p)->num_variantTypes, "variantTypes") &&
792 odr_sequence_end (o);
795 int z_VariantType (ODR o, Z_VariantType **p, int opt, const char *name)
797 if (!odr_sequence_begin (o, p, sizeof(**p), name))
798 return opt && odr_ok (o);
800 odr_implicit_tag (o, z_InternationalString,
801 &(*p)->name, ODR_CONTEXT, 0, 1, "name") &&
802 odr_implicit_tag (o, z_HumanString,
803 &(*p)->description, ODR_CONTEXT, 1, 1, "description") &&
804 odr_implicit_tag (o, odr_integer,
805 &(*p)->variantType, ODR_CONTEXT, 2, 0, "variantType") &&
806 odr_implicit_tag (o, z_VariantValue,
807 &(*p)->variantValue, ODR_CONTEXT, 3, 1, "variantValue") &&
808 odr_sequence_end (o);
811 int z_VariantValue (ODR o, Z_VariantValue **p, int opt, const char *name)
813 if (!odr_sequence_begin (o, p, sizeof(**p), name))
814 return opt && odr_ok (o);
816 odr_explicit_tag (o, z_PrimitiveDataType,
817 &(*p)->dataType, ODR_CONTEXT, 0, 0, "dataType") &&
818 odr_explicit_tag (o, z_ValueSet,
819 &(*p)->values, ODR_CONTEXT, 1, 1, "values") &&
820 odr_sequence_end (o);
823 int z_ValueSetEnumerated (ODR o, Z_ValueSetEnumerated **p, int opt, const char *name)
825 if (!odr_initmember (o, p, sizeof(**p)))
826 return opt && odr_ok(o);
827 if (odr_sequence_of (o, (Odr_fun) z_ValueDescription, &(*p)->elements,
831 return opt && odr_ok(o);
834 int z_ValueSet (ODR o, Z_ValueSet **p, int opt, const char *name)
836 static Odr_arm arm[] = {
837 {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_ValueSet_range,
838 (Odr_fun) z_ValueRange, "range"},
839 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ValueSet_enumerated,
840 (Odr_fun) z_ValueSetEnumerated, "enumerated"},
841 {-1, -1, -1, -1, (Odr_fun) 0, 0}
843 if (!odr_initmember(o, p, sizeof(**p)))
844 return opt && odr_ok(o);
845 if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
848 return opt && odr_ok(o);
851 int z_ValueRange (ODR o, Z_ValueRange **p, int opt, const char *name)
853 if (!odr_sequence_begin (o, p, sizeof(**p), name))
854 return opt && odr_ok (o);
856 odr_explicit_tag (o, z_ValueDescription,
857 &(*p)->lower, ODR_CONTEXT, 0, 1, "lower") &&
858 odr_explicit_tag (o, z_ValueDescription,
859 &(*p)->upper, ODR_CONTEXT, 1, 1, "upper") &&
860 odr_sequence_end (o);
863 int z_ValueDescription (ODR o, Z_ValueDescription **p, int opt, const char *name)
865 static Odr_arm arm[] = {
866 {-1, -1, -1, Z_ValueDescription_integer,
867 (Odr_fun) odr_integer, "integer"},
868 {-1, -1, -1, Z_ValueDescription_string,
869 (Odr_fun) z_InternationalString, "string"},
870 {-1, -1, -1, Z_ValueDescription_octets,
871 (Odr_fun) odr_octetstring, "octets"},
872 {-1, -1, -1, Z_ValueDescription_oid,
873 (Odr_fun) odr_oid, "oid"},
874 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ValueDescription_unit,
875 (Odr_fun) z_Unit, "unit"},
876 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ValueDescription_valueAndUnit,
877 (Odr_fun) z_IntUnit, "valueAndUnit"},
878 {-1, -1, -1, -1, (Odr_fun) 0, 0}
880 if (!odr_initmember(o, p, sizeof(**p)))
881 return opt && odr_ok(o);
882 if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
885 return opt && odr_ok(o);
888 int z_UnitInfo (ODR o, Z_UnitInfo **p, int opt, const char *name)
890 if (!odr_sequence_begin (o, p, sizeof(**p), name))
891 return opt && odr_ok (o);
893 odr_implicit_tag (o, z_CommonInfo,
894 &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
895 odr_implicit_tag (o, z_InternationalString,
896 &(*p)->unitSystem, ODR_CONTEXT, 1, 0, "unitSystem") &&
897 odr_implicit_tag (o, z_HumanString,
898 &(*p)->description, ODR_CONTEXT, 2, 1, "description") &&
899 odr_implicit_settag (o, ODR_CONTEXT, 3) &&
900 (odr_sequence_of(o, (Odr_fun) z_UnitType, &(*p)->units,
901 &(*p)->num_units, "units") || odr_ok(o)) &&
902 odr_sequence_end (o);
905 int z_UnitType (ODR o, Z_UnitType **p, int opt, const char *name)
907 if (!odr_sequence_begin (o, p, sizeof(**p), name))
908 return opt && odr_ok (o);
910 odr_implicit_tag (o, z_InternationalString,
911 &(*p)->name, ODR_CONTEXT, 0, 1, "name") &&
912 odr_implicit_tag (o, z_HumanString,
913 &(*p)->description, ODR_CONTEXT, 1, 1, "description") &&
914 odr_explicit_tag (o, z_StringOrNumeric,
915 &(*p)->unitType, ODR_CONTEXT, 2, 0, "unitType") &&
916 odr_implicit_settag (o, ODR_CONTEXT, 3) &&
917 odr_sequence_of(o, (Odr_fun) z_Units, &(*p)->units,
918 &(*p)->num_units, "units") &&
919 odr_sequence_end (o);
922 int z_Units (ODR o, Z_Units **p, int opt, const char *name)
924 if (!odr_sequence_begin (o, p, sizeof(**p), name))
925 return opt && odr_ok (o);
927 odr_implicit_tag (o, z_InternationalString,
928 &(*p)->name, ODR_CONTEXT, 0, 1, "name") &&
929 odr_implicit_tag (o, z_HumanString,
930 &(*p)->description, ODR_CONTEXT, 1, 1, "description") &&
931 odr_explicit_tag (o, z_StringOrNumeric,
932 &(*p)->unit, ODR_CONTEXT, 2, 0, "unit") &&
933 odr_sequence_end (o);
936 int z_CategoryList (ODR o, Z_CategoryList **p, int opt, const char *name)
938 if (!odr_sequence_begin (o, p, sizeof(**p), name))
939 return opt && odr_ok (o);
941 odr_implicit_tag (o, z_CommonInfo,
942 &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
943 odr_implicit_settag (o, ODR_CONTEXT, 1) &&
944 odr_sequence_of(o, (Odr_fun) z_CategoryInfo, &(*p)->categories,
945 &(*p)->num_categories, "categories") &&
946 odr_sequence_end (o);
949 int z_CategoryInfo (ODR o, Z_CategoryInfo **p, int opt, const char *name)
951 if (!odr_sequence_begin (o, p, sizeof(**p), name))
952 return opt && odr_ok (o);
954 odr_implicit_tag (o, z_InternationalString,
955 &(*p)->category, ODR_CONTEXT, 1, 0, "category") &&
956 odr_implicit_tag (o, z_InternationalString,
957 &(*p)->originalCategory, ODR_CONTEXT, 2, 1, "originalCategory") &&
958 odr_implicit_tag (o, z_HumanString,
959 &(*p)->description, ODR_CONTEXT, 3, 1, "description") &&
960 odr_implicit_tag (o, z_InternationalString,
961 &(*p)->asn1Module, ODR_CONTEXT, 4, 1, "asn1Module") &&
962 odr_sequence_end (o);
965 int z_CommonInfo (ODR o, Z_CommonInfo **p, int opt, const char *name)
967 if (!odr_sequence_begin (o, p, sizeof(**p), name))
968 return opt && odr_ok (o);
970 odr_implicit_tag (o, odr_generalizedtime,
971 &(*p)->dateAdded, ODR_CONTEXT, 0, 1, "dateAdded") &&
972 odr_implicit_tag (o, odr_generalizedtime,
973 &(*p)->dateChanged, ODR_CONTEXT, 1, 1, "dateChanged") &&
974 odr_implicit_tag (o, odr_generalizedtime,
975 &(*p)->expiry, ODR_CONTEXT, 2, 1, "expiry") &&
976 odr_implicit_tag (o, z_LanguageCode,
977 &(*p)->humanStringLanguage, ODR_CONTEXT, 3, 1, "humanStringLanguage") &&
978 z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") &&
979 odr_sequence_end (o);
982 int z_HumanStringUnit (ODR o, Z_HumanStringUnit **p, int opt, const char *name)
984 if (!odr_sequence_begin (o, p, sizeof(**p), name))
985 return opt && odr_ok (o);
987 odr_implicit_tag (o, z_LanguageCode,
988 &(*p)->language, ODR_CONTEXT, 0, 1, "language") &&
989 odr_implicit_tag (o, z_InternationalString,
990 &(*p)->text, ODR_CONTEXT, 1, 0, "text") &&
991 odr_sequence_end (o);
994 int z_HumanString (ODR o, Z_HumanString **p, int opt, const char *name)
996 if (!odr_initmember (o, p, sizeof(**p)))
997 return opt && odr_ok(o);
998 if (odr_sequence_of (o, (Odr_fun) z_HumanStringUnit, &(*p)->strings,
999 &(*p)->num_strings, name))
1002 return opt && odr_ok(o);
1005 int z_IconObjectUnit (ODR o, Z_IconObjectUnit **p, int opt, const char *name)
1007 static Odr_arm arm[] = {
1008 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IconObjectUnit_ianaType,
1009 (Odr_fun) z_InternationalString, "ianaType"},
1010 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IconObjectUnit_z3950type,
1011 (Odr_fun) z_InternationalString, "z3950type"},
1012 {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IconObjectUnit_otherType,
1013 (Odr_fun) z_InternationalString, "otherType"},
1014 {-1, -1, -1, -1, (Odr_fun) 0, 0}
1016 if (!odr_sequence_begin (o, p, sizeof(**p), name))
1017 return opt && odr_ok (o);
1019 odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "bodyType") &&
1020 odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) &&
1021 odr_constructed_end (o) &&
1022 odr_implicit_tag (o, odr_octetstring,
1023 &(*p)->content, ODR_CONTEXT, 2, 0, "content") &&
1024 odr_sequence_end (o);
1027 int z_IconObject (ODR o, Z_IconObject **p, int opt, const char *name)
1029 if (!odr_initmember (o, p, sizeof(**p)))
1030 return opt && odr_ok(o);
1031 if (odr_sequence_of (o, (Odr_fun) z_IconObjectUnit, &(*p)->elements,
1035 return opt && odr_ok(o);
1038 int z_LanguageCode (ODR o, Z_LanguageCode **p, int opt, const char *name)
1040 return z_InternationalString (o, p, opt, name);
1043 int z_ContactInfo (ODR o, Z_ContactInfo **p, int opt, const char *name)
1045 if (!odr_sequence_begin (o, p, sizeof(**p), name))
1046 return opt && odr_ok (o);
1048 odr_implicit_tag (o, z_InternationalString,
1049 &(*p)->name, ODR_CONTEXT, 0, 1, "name") &&
1050 odr_implicit_tag (o, z_HumanString,
1051 &(*p)->description, ODR_CONTEXT, 1, 1, "description") &&
1052 odr_implicit_tag (o, z_HumanString,
1053 &(*p)->address, ODR_CONTEXT, 2, 1, "address") &&
1054 odr_implicit_tag (o, z_InternationalString,
1055 &(*p)->email, ODR_CONTEXT, 3, 1, "email") &&
1056 odr_implicit_tag (o, z_InternationalString,
1057 &(*p)->phone, ODR_CONTEXT, 4, 1, "phone") &&
1058 odr_sequence_end (o);
1061 int z_NetworkAddressIA (ODR o, Z_NetworkAddressIA **p, int opt, const char *name)
1063 if (!odr_sequence_begin (o, p, sizeof(**p), name))
1064 return opt && odr_ok (o);
1066 odr_implicit_tag (o, z_InternationalString,
1067 &(*p)->hostAddress, ODR_CONTEXT, 0, 0, "hostAddress") &&
1068 odr_implicit_tag (o, odr_integer,
1069 &(*p)->port, ODR_CONTEXT, 1, 0, "port") &&
1070 odr_sequence_end (o);
1073 int z_NetworkAddressOPA (ODR o, Z_NetworkAddressOPA **p, int opt, const char *name)
1075 if (!odr_sequence_begin (o, p, sizeof(**p), name))
1076 return opt && odr_ok (o);
1078 odr_implicit_tag (o, z_InternationalString,
1079 &(*p)->pSel, ODR_CONTEXT, 0, 0, "pSel") &&
1080 odr_implicit_tag (o, z_InternationalString,
1081 &(*p)->sSel, ODR_CONTEXT, 1, 1, "sSel") &&
1082 odr_implicit_tag (o, z_InternationalString,
1083 &(*p)->tSel, ODR_CONTEXT, 2, 1, "tSel") &&
1084 odr_implicit_tag (o, z_InternationalString,
1085 &(*p)->nSap, ODR_CONTEXT, 3, 0, "nSap") &&
1086 odr_sequence_end (o);
1089 int z_NetworkAddressOther (ODR o, Z_NetworkAddressOther **p, int opt, const char *name)
1091 if (!odr_sequence_begin (o, p, sizeof(**p), name))
1092 return opt && odr_ok (o);
1094 odr_implicit_tag (o, z_InternationalString,
1095 &(*p)->type, ODR_CONTEXT, 0, 0, "type") &&
1096 odr_implicit_tag (o, z_InternationalString,
1097 &(*p)->address, ODR_CONTEXT, 1, 0, "address") &&
1098 odr_sequence_end (o);
1101 int z_NetworkAddress (ODR o, Z_NetworkAddress **p, int opt, const char *name)
1103 static Odr_arm arm[] = {
1104 {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_NetworkAddress_iA,
1105 (Odr_fun) z_NetworkAddressIA, "internetAddress"},
1106 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_NetworkAddress_oPA,
1107 (Odr_fun) z_NetworkAddressOPA, "osiPresentationAddress"},
1108 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_NetworkAddress_other,
1109 (Odr_fun) z_NetworkAddressOther, "other"},
1110 {-1, -1, -1, -1, (Odr_fun) 0, 0}
1112 if (!odr_initmember(o, p, sizeof(**p)))
1113 return opt && odr_ok(o);
1114 if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
1117 return opt && odr_ok(o);
1120 int z_AccessInfo (ODR o, Z_AccessInfo **p, int opt, const char *name)
1122 if (!odr_sequence_begin (o, p, sizeof(**p), name))
1123 return opt && odr_ok (o);
1125 odr_implicit_settag (o, ODR_CONTEXT, 0) &&
1126 (odr_sequence_of(o, (Odr_fun) z_QueryTypeDetails, &(*p)->queryTypesSupported,
1127 &(*p)->num_queryTypesSupported, "queryTypesSupported") || odr_ok(o)) &&
1128 odr_implicit_settag (o, ODR_CONTEXT, 1) &&
1129 (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->diagnosticsSets,
1130 &(*p)->num_diagnosticsSets, "diagnosticsSets") || odr_ok(o)) &&
1131 odr_implicit_settag (o, ODR_CONTEXT, 2) &&
1132 (odr_sequence_of(o, (Odr_fun) z_AttributeSetId, &(*p)->attributeSetIds,
1133 &(*p)->num_attributeSetIds, "attributeSetIds") || odr_ok(o)) &&
1134 odr_implicit_settag (o, ODR_CONTEXT, 3) &&
1135 (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->schemas,
1136 &(*p)->num_schemas, "schemas") || odr_ok(o)) &&
1137 odr_implicit_settag (o, ODR_CONTEXT, 4) &&
1138 (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->recordSyntaxes,
1139 &(*p)->num_recordSyntaxes, "recordSyntaxes") || odr_ok(o)) &&
1140 odr_implicit_settag (o, ODR_CONTEXT, 5) &&
1141 (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->resourceChallenges,
1142 &(*p)->num_resourceChallenges, "resourceChallenges") || odr_ok(o)) &&
1143 odr_implicit_tag (o, z_AccessRestrictions,
1144 &(*p)->restrictedAccess, ODR_CONTEXT, 6, 1, "restrictedAccess") &&
1145 odr_implicit_tag (o, z_Costs,
1146 &(*p)->costInfo, ODR_CONTEXT, 8, 1, "costInfo") &&
1147 odr_implicit_settag (o, ODR_CONTEXT, 9) &&
1148 (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->variantSets,
1149 &(*p)->num_variantSets, "variantSets") || odr_ok(o)) &&
1150 odr_implicit_settag (o, ODR_CONTEXT, 10) &&
1151 (odr_sequence_of(o, (Odr_fun) z_ElementSetName, &(*p)->elementSetNames,
1152 &(*p)->num_elementSetNames, "elementSetNames") || odr_ok(o)) &&
1153 odr_implicit_settag (o, ODR_CONTEXT, 11) &&
1154 odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->unitSystems,
1155 &(*p)->num_unitSystems, "unitSystems") &&
1156 odr_sequence_end (o);
1159 int z_QueryTypeDetails (ODR o, Z_QueryTypeDetails **p, int opt, const char *name)
1161 static Odr_arm arm[] = {
1162 {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_QueryTypeDetails_private,
1163 (Odr_fun) z_PrivateCapabilities, "zprivate"},
1164 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_QueryTypeDetails_rpn,
1165 (Odr_fun) z_RpnCapabilities, "rpn"},
1166 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_QueryTypeDetails_iso8777,
1167 (Odr_fun) z_Iso8777Capabilities, "iso8777"},
1168 {ODR_IMPLICIT, ODR_CONTEXT, 100, Z_QueryTypeDetails_z39_58,
1169 (Odr_fun) z_HumanString, "z39_58"},
1170 {ODR_IMPLICIT, ODR_CONTEXT, 101, Z_QueryTypeDetails_erpn,
1171 (Odr_fun) z_RpnCapabilities, "erpn"},
1172 {ODR_IMPLICIT, ODR_CONTEXT, 102, Z_QueryTypeDetails_rankedList,
1173 (Odr_fun) z_HumanString, "rankedList"},
1174 {-1, -1, -1, -1, (Odr_fun) 0, 0}
1176 if (!odr_initmember(o, p, sizeof(**p)))
1177 return opt && odr_ok(o);
1178 if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
1181 return opt && odr_ok(o);
1184 int z_PrivateCapOperator (ODR o, Z_PrivateCapOperator **p, int opt, const char *name)
1186 if (!odr_sequence_begin (o, p, sizeof(**p), name))
1187 return opt && odr_ok (o);
1189 odr_implicit_tag (o, z_InternationalString,
1190 &(*p)->roperator, ODR_CONTEXT, 0, 0, "roperator") &&
1191 odr_implicit_tag (o, z_HumanString,
1192 &(*p)->description, ODR_CONTEXT, 1, 1, "description") &&
1193 odr_sequence_end (o);
1196 int z_PrivateCapabilities (ODR o, Z_PrivateCapabilities **p, int opt, const char *name)
1198 if (!odr_sequence_begin (o, p, sizeof(**p), name))
1199 return opt && odr_ok (o);
1201 odr_implicit_settag (o, ODR_CONTEXT, 0) &&
1202 (odr_sequence_of(o, (Odr_fun) z_PrivateCapOperator, &(*p)->operators,
1203 &(*p)->num_operators, "operators") || odr_ok(o)) &&
1204 odr_implicit_settag (o, ODR_CONTEXT, 1) &&
1205 (odr_sequence_of(o, (Odr_fun) z_SearchKey, &(*p)->searchKeys,
1206 &(*p)->num_searchKeys, "searchKeys") || odr_ok(o)) &&
1207 odr_implicit_settag (o, ODR_CONTEXT, 2) &&
1208 (odr_sequence_of(o, (Odr_fun) z_HumanString, &(*p)->description,
1209 &(*p)->num_description, "description") || odr_ok(o)) &&
1210 odr_sequence_end (o);
1213 int z_RpnCapabilities (ODR o, Z_RpnCapabilities **p, int opt, const char *name)
1215 if (!odr_sequence_begin (o, p, sizeof(**p), name))
1216 return opt && odr_ok (o);
1218 odr_implicit_settag (o, ODR_CONTEXT, 0) &&
1219 (odr_sequence_of(o, (Odr_fun) odr_integer, &(*p)->operators,
1220 &(*p)->num_operators, "operators") || odr_ok(o)) &&
1221 odr_implicit_tag (o, odr_bool,
1222 &(*p)->resultSetAsOperandSupported, ODR_CONTEXT, 1, 0, "resultSetAsOperandSupported") &&
1223 odr_implicit_tag (o, odr_bool,
1224 &(*p)->restrictionOperandSupported, ODR_CONTEXT, 2, 0, "restrictionOperandSupported") &&
1225 odr_implicit_tag (o, z_ProximitySupport,
1226 &(*p)->proximity, ODR_CONTEXT, 3, 1, "proximity") &&
1227 odr_sequence_end (o);
1230 int z_Iso8777Capabilities (ODR o, Z_Iso8777Capabilities **p, int opt, const char *name)
1232 if (!odr_sequence_begin (o, p, sizeof(**p), name))
1233 return opt && odr_ok (o);
1235 odr_implicit_settag (o, ODR_CONTEXT, 0) &&
1236 odr_sequence_of(o, (Odr_fun) z_SearchKey, &(*p)->searchKeys,
1237 &(*p)->num_searchKeys, "searchKeys") &&
1238 odr_implicit_tag (o, z_HumanString,
1239 &(*p)->restrictions, ODR_CONTEXT, 1, 1, "restrictions") &&
1240 odr_sequence_end (o);
1243 int z_ProxSupportPrivate (ODR o, Z_ProxSupportPrivate **p, int opt, const char *name)
1245 if (!odr_sequence_begin (o, p, sizeof(**p), name))
1246 return opt && odr_ok (o);
1248 odr_implicit_tag (o, odr_integer,
1249 &(*p)->unit, ODR_CONTEXT, 0, 0, "unit") &&
1250 odr_explicit_tag (o, z_HumanString,
1251 &(*p)->description, ODR_CONTEXT, 1, 1, "description") &&
1252 odr_sequence_end (o);
1255 int z_ProxSupportUnit (ODR o, Z_ProxSupportUnit **p, int opt, const char *name)
1257 static Odr_arm arm[] = {
1258 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ProxSupportUnit_known,
1259 (Odr_fun) odr_integer, "known"},
1260 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ProxSupportUnit_private,
1261 (Odr_fun) z_ProxSupportPrivate, "zprivate"},
1262 {-1, -1, -1, -1, (Odr_fun) 0, 0}
1264 if (!odr_initmember(o, p, sizeof(**p)))
1265 return opt && odr_ok(o);
1266 if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
1269 return opt && odr_ok(o);
1272 int z_ProximitySupport (ODR o, Z_ProximitySupport **p, int opt, const char *name)
1274 if (!odr_sequence_begin (o, p, sizeof(**p), name))
1275 return opt && odr_ok (o);
1277 odr_implicit_tag (o, odr_bool,
1278 &(*p)->anySupport, ODR_CONTEXT, 0, 0, "anySupport") &&
1279 odr_implicit_settag (o, ODR_CONTEXT, 1) &&
1280 (odr_sequence_of(o, (Odr_fun) z_ProxSupportUnit, &(*p)->unitsSupported,
1281 &(*p)->num_unitsSupported, "unitsSupported") || odr_ok(o)) &&
1282 odr_sequence_end (o);
1285 int z_SearchKey (ODR o, Z_SearchKey **p, int opt, const char *name)
1287 if (!odr_sequence_begin (o, p, sizeof(**p), name))
1288 return opt && odr_ok (o);
1290 odr_implicit_tag (o, z_InternationalString,
1291 &(*p)->searchKey, ODR_CONTEXT, 0, 0, "searchKey") &&
1292 odr_implicit_tag (o, z_HumanString,
1293 &(*p)->description, ODR_CONTEXT, 1, 1, "description") &&
1294 odr_sequence_end (o);
1297 int z_AccessRestrictionsUnit (ODR o, Z_AccessRestrictionsUnit **p, int opt, const char *name)
1299 if (!odr_sequence_begin (o, p, sizeof(**p), name))
1300 return opt && odr_ok (o);
1302 odr_explicit_tag (o, odr_integer,
1303 &(*p)->accessType, ODR_CONTEXT, 0, 0, "accessType") &&
1304 odr_implicit_tag (o, z_HumanString,
1305 &(*p)->accessText, ODR_CONTEXT, 1, 1, "accessText") &&
1306 odr_implicit_settag (o, ODR_CONTEXT, 2) &&
1307 (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->accessChallenges,
1308 &(*p)->num_accessChallenges, "accessChallenges") || odr_ok(o)) &&
1309 odr_sequence_end (o);
1312 int z_AccessRestrictions (ODR o, Z_AccessRestrictions **p, int opt, const char *name)
1314 if (!odr_initmember (o, p, sizeof(**p)))
1315 return opt && odr_ok(o);
1316 if (odr_sequence_of (o, (Odr_fun) z_AccessRestrictionsUnit, &(*p)->elements,
1320 return opt && odr_ok(o);
1323 int z_CostsOtherCharge (ODR o, Z_CostsOtherCharge **p, int opt, const char *name)
1325 if (!odr_sequence_begin (o, p, sizeof(**p), name))
1326 return opt && odr_ok (o);
1328 odr_implicit_tag (o, z_HumanString,
1329 &(*p)->forWhat, ODR_CONTEXT, 1, 0, "forWhat") &&
1330 odr_implicit_tag (o, z_Charge,
1331 &(*p)->charge, ODR_CONTEXT, 2, 0, "charge") &&
1332 odr_sequence_end (o);
1335 int z_Costs (ODR o, Z_Costs **p, int opt, const char *name)
1337 if (!odr_sequence_begin (o, p, sizeof(**p), name))
1338 return opt && odr_ok (o);
1340 odr_implicit_tag (o, z_Charge,
1341 &(*p)->connectCharge, ODR_CONTEXT, 0, 1, "connectCharge") &&
1342 odr_implicit_tag (o, z_Charge,
1343 &(*p)->connectTime, ODR_CONTEXT, 1, 1, "connectTime") &&
1344 odr_implicit_tag (o, z_Charge,
1345 &(*p)->displayCharge, ODR_CONTEXT, 2, 1, "displayCharge") &&
1346 odr_implicit_tag (o, z_Charge,
1347 &(*p)->searchCharge, ODR_CONTEXT, 3, 1, "searchCharge") &&
1348 odr_implicit_tag (o, z_Charge,
1349 &(*p)->subscriptCharge, ODR_CONTEXT, 4, 1, "subscriptCharge") &&
1350 odr_implicit_settag (o, ODR_CONTEXT, 5) &&
1351 (odr_sequence_of(o, (Odr_fun) z_CostsOtherCharge, &(*p)->otherCharges,
1352 &(*p)->num_otherCharges, "otherCharges") || odr_ok(o)) &&
1353 odr_sequence_end (o);
1356 int z_Charge (ODR o, Z_Charge **p, int opt, const char *name)
1358 if (!odr_sequence_begin (o, p, sizeof(**p), name))
1359 return opt && odr_ok (o);
1361 odr_implicit_tag (o, z_IntUnit,
1362 &(*p)->cost, ODR_CONTEXT, 1, 0, "cost") &&
1363 odr_implicit_tag (o, z_Unit,
1364 &(*p)->perWhat, ODR_CONTEXT, 2, 1, "perWhat") &&
1365 odr_implicit_tag (o, z_HumanString,
1366 &(*p)->text, ODR_CONTEXT, 3, 1, "text") &&
1367 odr_sequence_end (o);
1370 int z_DatabaseList (ODR o, Z_DatabaseList **p, int opt, const char *name)
1372 if (!odr_initmember (o, p, sizeof(**p)))
1373 return opt && odr_ok(o);
1374 if (odr_sequence_of (o, (Odr_fun) z_DatabaseName, &(*p)->databases,
1375 &(*p)->num_databases, name))
1378 return opt && odr_ok(o);
1381 int z_AttributeCombinations (ODR o, Z_AttributeCombinations **p, int opt, const char *name)
1383 if (!odr_sequence_begin (o, p, sizeof(**p), name))
1384 return opt && odr_ok (o);
1386 odr_implicit_tag (o, z_AttributeSetId,
1387 &(*p)->defaultAttributeSet, ODR_CONTEXT, 0, 0, "defaultAttributeSet") &&
1388 odr_implicit_settag (o, ODR_CONTEXT, 1) &&
1389 odr_sequence_of(o, (Odr_fun) z_AttributeCombination, &(*p)->legalCombinations,
1390 &(*p)->num_legalCombinations, "legalCombinations") &&
1391 odr_sequence_end (o);
1394 int z_AttributeCombination (ODR o, Z_AttributeCombination **p, int opt, const char *name)
1396 if (!odr_initmember (o, p, sizeof(**p)))
1397 return opt && odr_ok(o);
1398 if (odr_sequence_of (o, (Odr_fun) z_AttributeOccurrence, &(*p)->occurrences,
1399 &(*p)->num_occurrences, name))
1402 return opt && odr_ok(o);
1405 int z_AttributeValueList (ODR o, Z_AttributeValueList **p, int opt, const char *name)
1407 if (!odr_initmember (o, p, sizeof(**p)))
1408 return opt && odr_ok(o);
1409 if (odr_sequence_of (o, (Odr_fun) z_StringOrNumeric, &(*p)->attributes,
1410 &(*p)->num_attributes, name))
1413 return opt && odr_ok(o);
1416 int z_AttributeOccurrence (ODR o, Z_AttributeOccurrence **p, int opt, const char *name)
1418 static Odr_arm arm[] = {
1419 {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_AttributeOcc_any_or_none,
1420 (Odr_fun) odr_null, "any_or_none"},
1421 {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_AttributeOcc_specific,
1422 (Odr_fun) z_AttributeValueList, "specific"},
1423 {-1, -1, -1, -1, (Odr_fun) 0, 0}
1425 if (!odr_sequence_begin (o, p, sizeof(**p), name))
1426 return opt && odr_ok (o);
1428 odr_implicit_tag (o, z_AttributeSetId,
1429 &(*p)->attributeSet, ODR_CONTEXT, 0, 1, "attributeSet") &&
1430 odr_implicit_tag (o, odr_integer,
1431 &(*p)->attributeType, ODR_CONTEXT, 1, 0, "attributeType") &&
1432 odr_implicit_tag (o, odr_null,
1433 &(*p)->mustBeSupplied, ODR_CONTEXT, 2, 1, "mustBeSupplied") &&
1434 odr_choice (o, arm, &(*p)->attributeValues, &(*p)->which, 0) &&
1435 odr_sequence_end (o);