2 * Copyright (c) 1995-1997, Index Data.
4 * Permission to use, copy, modify, distribute, and sell this software and
5 * its documentation, in whole or in part, for any purpose, is hereby granted,
8 * 1. This copyright and permission notice appear in all copies of the
9 * software and its documentation. Notices of copyright or attribution
10 * which appear at the beginning of any file must remain unchanged.
12 * 2. The names of Index Data or the individual authors may not be used to
13 * endorse or promote products derived from this software without specific
14 * prior written permission.
16 * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND,
17 * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
18 * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
19 * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
20 * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES
21 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR
22 * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
23 * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
37 #define multipleDbSearch multipleDBsearch
39 typedef struct Z_CommonInfo
41 char *dateAdded; /* OPTIONAL */
42 char *dateChanged; /* OPTIONAL */
43 char *expiry; /* OPTIONAL */
44 char *humanStringLanguage; /* OPTIONAL */
45 Z_OtherInformation *otherInfo; /* OPTIONAL */
48 typedef struct Z_HumanStringUnit
50 char *language; /* OPTIONAL */
54 typedef struct Z_HumanString
57 Z_HumanStringUnit **strings;
60 typedef struct Z_IconObjectUnit
63 #define Z_IconObject_ianaType 0
64 #define Z_IconObject_z3950type 1
65 #define Z_IconObject_otherType 2
70 typedef struct Z_IconObject
73 Z_IconObjectUnit **iconUnits;
76 typedef struct Z_ContactInfo
78 char *name; /* OPTIONAL */
79 Z_HumanString *description; /* OPTIONAL */
80 Z_HumanString *address; /* OPTIONAL */
81 char *email; /* OPTIONAL */
82 char *phone; /* OPTIONAL */
85 typedef struct Z_NetworkAddressIA
91 typedef struct Z_NetworkAddressOPA
94 char *sSel; /* OPTIONAL */
95 char *tSel; /* OPTIONAL */
97 } Z_NetworkAddressOPA;
99 typedef struct Z_NetworkAddressOther
103 } Z_NetworkAddressOther;
105 typedef struct Z_NetworkAddress
108 #define Z_NetworkAddress_iA 0
109 #define Z_NetworkAddress_oPA 1
110 #define Z_NetworkAddress_other 2
113 Z_NetworkAddressIA *internetAddress;
114 Z_NetworkAddressOPA *osiPresentationAddress;
115 Z_NetworkAddressOther *other;
119 typedef struct Z_PrivateCapOperator
122 Z_HumanString *description; /* OPTIONAL */
123 } Z_PrivateCapOperator;
125 typedef struct Z_SearchKey
128 Z_HumanString *description; /* OPTIONAL */
131 typedef struct Z_PrivateCapabilities
134 Z_PrivateCapOperator **operators; /* OPTIONAL */
136 Z_SearchKey **searchKeys; /* OPTIONAL */
138 Z_HumanString **description; /* OPTIONAL */
139 } Z_PrivateCapabilities;
141 typedef struct Z_ProxSupportPrivate
144 Z_HumanString *description; /* OPTIONAL */
145 } Z_ProxSupportPrivate;
147 typedef struct Z_ProxSupportUnit
150 #define Z_ProxSupportUnit_known 0
151 #define Z_ProxSupportUnit_private 1
155 Z_ProxSupportPrivate *zprivate;
159 typedef struct Z_ProximitySupport
162 int num_unitsSupported;
163 Z_ProxSupportUnit **unitsSupported; /* OPTIONAL */
164 } Z_ProximitySupport;
166 typedef struct Z_RpnCapabilities
169 int **operators; /* OPTIONAL */
170 bool_t *resultSetAsOperandSupported;
171 bool_t *restrictionOperandSupported;
172 Z_ProximitySupport *proximity; /* OPTIONAL */
175 typedef struct Z_Iso8777Capabilities
178 Z_SearchKey **searchKeys;
179 Z_HumanString *restrictions; /* OPTIONAL */
180 } Z_Iso8777Capabilities;
182 typedef struct Z_QueryTypeDetails
185 #define Z_QueryTypeDetails_private 0
186 #define Z_QueryTypeDetails_rpn 1
187 #define Z_QueryTypeDetails_iso8777 2
188 #define Z_QueryTypeDetails_z3958 3
189 #define Z_QueryTypeDetails_erpn 4
190 #define Z_QueryTypeDetails_rankedList 5
193 Z_PrivateCapabilities *zprivate;
194 Z_RpnCapabilities *rpn;
195 Z_Iso8777Capabilities *iso8777;
196 Z_HumanString *z3958;
197 Z_RpnCapabilities *erpn;
198 Z_HumanString *rankedList;
200 } Z_QueryTypeDetails;
202 typedef struct Z_AccessRestrictionsUnit
205 #define Z_AccessRestrictions_any 0
206 #define Z_AccessRestrictions_search 1
207 #define Z_AccessRestrictions_present 2
208 #define Z_AccessRestrictions_specific_elements 3
209 #define Z_AccessRestrictions_extended_services 4
210 #define Z_AccessRestrictions_by_database 5
211 Z_HumanString *accessText; /* OPTIONAL */
212 int num_accessChallenges;
213 Odr_oid **accessChallenges; /* OPTIONAL */
214 } Z_AccessRestrictionsUnit;
216 typedef struct Z_AccessRestrictions
218 int num_restrictions;
219 Z_AccessRestrictionsUnit **restrictions;
220 } Z_AccessRestrictions;
222 typedef struct Z_Charge
225 Z_Unit *perWhat; /* OPTIONAL */
226 Z_HumanString *text; /* OPTIONAL */
229 typedef struct Z_CostsOtherCharge
231 Z_HumanString *forWhat;
233 } Z_CostsOtherCharge;
235 typedef struct Z_Costs
237 Z_Charge *connectCharge; /* OPTIONAL */
238 Z_Charge *connectTime; /* OPTIONAL */
239 Z_Charge *displayCharge; /* OPTIONAL */
240 Z_Charge *searchCharge; /* OPTIONAL */
241 Z_Charge *subscriptCharge; /* OPTIONAL */
242 int num_otherCharges;
243 Z_CostsOtherCharge **otherCharges; /* OPTIONAL */
246 typedef struct Z_AccessInfo
248 int num_queryTypesSupported;
249 Z_QueryTypeDetails **queryTypesSupported; /* OPTIONAL */
250 int num_diagnosticsSets;
251 Odr_oid **diagnosticsSets; /* OPTIONAL */
252 int num_attributeSetIds;
253 Odr_oid **attributeSetIds; /* OPTIONAL */
255 Odr_oid **schemas; /* OPTIONAL */
256 int num_recordSyntaxes;
257 Odr_oid **recordSyntaxes; /* OPTIONAL */
258 int num_resourceChallenges;
259 Odr_oid **resourceChallenges; /* OPTIONAL */
260 Z_AccessRestrictions *restrictedAccess; /* OPTIONAL */
261 Z_Costs *costInfo; /* OPTIONAL */
263 Odr_oid **variantSets; /* OPTIONAL */
264 int num_elementSetNames;
265 char **elementSetNames; /* OPTIONAL */
267 char **unitSystems; /* OPTIONAL */
270 typedef struct Z_DatabaseList
273 Z_DatabaseName **databases;
276 typedef struct Z_AttributeValueList
279 Z_StringOrNumeric **attributes;
280 } Z_AttributeValueList;
282 typedef struct Z_AttributeOccurrence
284 Odr_oid *attributeSet; /* OPTIONAL */
286 Odr_null *mustBeSupplied; /* OPTIONAL */
288 #define Z_AttributeOcc_anyOrNone 0
289 #define Z_AttributeOcc_specific 1
293 Z_AttributeValueList *specific;
295 } Z_AttributeOccurrence;
297 typedef struct Z_AttributeCombination
300 Z_AttributeOccurrence **occurrences;
301 } Z_AttributeCombination;
303 typedef struct Z_AttributeCombinations
305 Odr_oid *defaultAttributeSet;
306 int num_legalCombinations;
307 Z_AttributeCombination **legalCombinations;
308 } Z_AttributeCombinations;
310 typedef struct Z_AttributeValue
312 Z_StringOrNumeric *value;
313 Z_HumanString *description; /* OPTIONAL */
314 int num_subAttributes;
315 Z_StringOrNumeric **subAttributes; /* OPTIONAL */
316 int num_superAttributes;
317 Z_StringOrNumeric **superAttributes; /* OPTIONAL */
318 Odr_null *partialSupport; /* OPTIONAL */
321 typedef struct Z_TargetInfo
323 Z_CommonInfo *commonInfo; /* OPTIONAL */
329 * non-key brief elements
331 Z_HumanString *recentNews; /* OPTIONAL */
332 Z_IconObject *icon; /* OPTIONAL */
333 bool_t *namedResultSets;
334 bool_t *multipleDbSearch;
335 int *maxResultSets; /* OPTIONAL */
336 int *maxResultSize; /* OPTIONAL */
337 int *maxTerms; /* OPTIONAL */
338 Z_IntUnit *timeoutInterval; /* OPTIONAL */
339 Z_HumanString *welcomeMessage; /* OPTIONAL */
343 Z_ContactInfo *contactInfo; /* OPTIONAL */
344 Z_HumanString *description; /* OPTIONAL */
347 Z_HumanString *usageRest; /* OPTIONAL */
348 Z_HumanString *paymentAddr; /* OPTIONAL */
349 Z_HumanString *hours; /* OPTIONAL */
350 int num_dbCombinations;
351 Z_DatabaseList **dbCombinations; /* OPTIONAL */
353 Z_NetworkAddress **addresses; /* OPTIONAL */
354 Z_AccessInfo *commonAccessInfo; /* OPTIONAL */
357 typedef struct Z_DatabaseInfo
359 Z_CommonInfo *commonInfo; /* OPTIONAL */
363 Z_DatabaseName *name;
367 Odr_null *explainDatabase; /* OPTIONAL */
369 Z_DatabaseName **nicknames; /* OPTIONAL */
370 Z_IconObject *icon; /* OPTIONAL */
373 Z_HumanString *titleString; /* OPTIONAL */
375 * Non-brief elements.
378 Z_HumanString **keywords; /* OPTIONAL */
379 Z_HumanString *description; /* OPTIONAL */
380 Z_DatabaseList *associatedDbs; /* OPTIONAL */
381 Z_DatabaseList *subDbs; /* OPTIONAL */
382 Z_HumanString *disclaimers; /* OPTIONAL */
383 Z_HumanString *news; /* OPTIONAL */
384 int recordCount_which;
385 #define Z_Exp_RecordCount_actualNumber 0
386 #define Z_Exp_RecordCount_approxNumber 1
387 int *recordCount; /* OPTIONAL */
388 Z_HumanString *defaultOrder; /* OPTIONAL */
389 int *avRecordSize; /* OPTIONAL */
390 int *maxRecordSize; /* OPTIONAL */
391 Z_HumanString *hours; /* OPTIONAL */
392 Z_HumanString *bestTime; /* OPTIONAL */
393 char *lastUpdate; /* OPTIONAL */
394 Z_IntUnit *updateInterval; /* OPTIONAL */
395 Z_HumanString *coverage; /* OPTIONAL */
396 bool_t *proprietary; /* OPTIONAL */
397 Z_HumanString *copyrightText; /* OPTIONAL */
398 Z_HumanString *copyrightNotice; /* OPTIONAL */
399 Z_ContactInfo *producerContactInfo; /* OPTIONAL */
400 Z_ContactInfo *supplierContactInfo; /* OPTIONAL */
401 Z_ContactInfo *submissionContactInfo; /* OPTIONAL */
402 Z_AccessInfo *accessInfo; /* OPTIONAL */
405 typedef struct Z_TagTypeMapping
408 Odr_oid *tagSet; /* OPTIONAL */
409 Odr_null *defaultTagType; /* OPTIONAL */
412 typedef struct Z_PathUnit
415 Z_StringOrNumeric *tagValue;
418 typedef struct Z_Path
424 struct Z_ElementDataType;
425 typedef struct Z_ElementDataType Z_ElementDataType;
427 typedef struct Z_ElementInfo
430 Z_Path *elementTagPath;
431 Z_ElementDataType *dataType; /* OPTIONAL */
434 Z_HumanString *description; /* OPTIONAL */
437 typedef struct Z_ElementInfoList
440 Z_ElementInfo **list;
443 struct Z_ElementDataType
446 #define Z_ElementDataType_primitive 0
447 #define Z_ElementDataType_structured 1
451 #define Z_PrimitiveElement_octetString 0
452 #define Z_PrimitiveElement_numeric 1
453 #define Z_PrimitiveElement_date 2
454 #define Z_PrimitiveElement_external 3
455 #define Z_PrimitiveElement_string 4
456 #define Z_PrimitiveElement_trueOrFalse 5
457 #define Z_PrimitiveElement_oid 6
458 #define Z_PrimitiveElement_intUnit 7
459 #define Z_PrimitiveElement_empty 8
460 #define Z_PrimitiveElement_noneOfTheAbove 100
461 Z_ElementInfoList *structured;
465 typedef struct Z_TagSetInfoElements
469 char **nicknames; /* OPTIONAL */
470 Z_StringOrNumeric *elementTag;
471 Z_HumanString *description; /* OPTIONAL */
472 int *dataType; /* OPTIONAL */
473 /* (value as in Z_PrimitiveElement) */
474 Z_OtherInformation *otherTagInfo; /* OPTIONAL */
475 } Z_TagSetInfoElements;
477 typedef struct Z_SchemaInfo
479 Z_CommonInfo *commonInfo; /* OPTIONAL */
491 Z_HumanString *description; /* OPTIONAL */
492 int num_tagTypeMapping;
493 Z_TagTypeMapping **tagTypeMapping; /* OPTIONAL */
494 int num_recordStructure;
495 Z_ElementInfo **recordStructure; /* OPTIONAL */
499 typedef struct Z_TagSetInfo
501 Z_CommonInfo *commonInfo; /* OPTIONAL */
513 Z_HumanString *description; /* OPTIONAL */
515 Z_TagSetInfoElements **elements; /* OPTIONAL */
518 typedef struct Z_RecordSyntaxInfo
520 Z_CommonInfo *commonInfo; /* OPTIONAL */
524 Odr_oid *recordSyntax;
532 int num_transferSyntaxes;
533 Odr_oid **transferSyntaxes; /* OPTIONAL */
534 Z_HumanString *description; /* OPTIONAL */
535 char *asn1Module; /* OPTIONAL */
536 int num_abstractStructure;
537 Z_ElementInfo **abstractStructure; /* OPTIONAL */
538 } Z_RecordSyntaxInfo;
540 typedef struct Z_AttributeDescription
542 char *name; /* OPTIONAL */
543 Z_HumanString *description; /* OPTIONAL */
544 Z_StringOrNumeric *attributeValue;
545 int num_equivalentAttributes;
546 Z_StringOrNumeric **equivalentAttributes; /* OPTIONAL */
547 } Z_AttributeDescription;
549 typedef struct Z_AttributeType
551 char *name; /* OPTIONAL */
552 Z_HumanString *description; /* OPTIONAL */
554 int num_attributeValues;
555 Z_AttributeDescription **attributeValues;
558 typedef struct Z_AttributeSetInfo
560 Z_CommonInfo *commonInfo; /* OPTIONAL */
564 Odr_oid *attributeSet;
573 Z_AttributeType **attributes; /* OPTIONAL */
574 Z_HumanString *description; /* OPTIONAL */
575 } Z_AttributeSetInfo;
577 typedef struct Z_TermListElement
580 Z_HumanString *title; /* OPTIONAL */
581 int *searchCost; /* OPTIONAL */
582 #define Z_TermListInfo_optimized 0
583 #define Z_TermListInfo_normal 1
584 #define Z_TermListInfo_expensive 2
585 #define Z_TermListInfo_filter 3
588 char **broader; /* OPTIONAL */
590 char **narrower; /* OPTIONAL */
593 typedef struct Z_TermListInfo
595 Z_CommonInfo *commonInfo; /* OPTIONAL */
599 Z_DatabaseName *databaseName;
604 Z_TermListElement **termLists;
607 typedef struct Z_ExtendedServicesInfo
609 Z_CommonInfo *commonInfo; /* OPTIONAL */
617 char *name; /* OPTIONAL */
619 bool_t *restrictionsApply;
622 bool_t *retentionSupported;
624 #define Z_ExtendedServicesInfo_waitSupported 1
625 #define Z_ExtendedServicesInfo_waitAlways 2
626 #define Z_ExtendedServicesInfo_waitNotSupported 3
627 #define Z_ExtendedServicesInfo_depends 4
628 #define Z_ExtendedServicesInfo_notSaying 5
632 Z_HumanString *description; /* OPTIONAL */
633 Z_External *specificExplain; /* OPTIONAL */
634 char *esASN; /* OPTIONAL */
635 } Z_ExtendedServicesInfo;
637 typedef struct Z_OmittedAttributeInterpretation
639 Z_StringOrNumeric *defaultValue; /* OPTIONAL */
640 Z_HumanString *defaultDescription; /* OPTIONAL */
641 } Z_OmittedAttributeInterpretation;
643 typedef struct Z_AttributeTypeDetails
646 Z_OmittedAttributeInterpretation *optionalType; /* OPTIONAL */
647 int num_attributeValues;
648 Z_AttributeValue **attributeValues; /* OPTIONAL */
649 } Z_AttributeTypeDetails;
651 typedef struct Z_AttributeSetDetails
653 Odr_oid *attributeSet;
654 int num_attributesByType;
655 Z_AttributeTypeDetails **attributesByType;
656 } Z_AttributeSetDetails;
658 typedef struct Z_AttributeDetails
660 Z_CommonInfo *commonInfo; /* OPTIONAL */
664 Z_DatabaseName *databaseName;
668 int num_attributesBySet;
669 Z_AttributeSetDetails **attributesBySet; /* OPTIONAL */
670 Z_AttributeCombinations *attributeCombinations; /* OPTIONAL */
671 } Z_AttributeDetails;
673 typedef struct Z_EScanInfo
675 int *maxStepSize; /* OPTIONAL */
676 Z_HumanString *collatingSequence; /* OPTIONAL */
677 bool_t *increasing; /* OPTIONAL */
680 typedef struct Z_TermListDetails
682 Z_CommonInfo *commonInfo; /* OPTIONAL */
690 Z_HumanString *description; /* OPTIONAL */
691 Z_AttributeCombinations *attributes; /* OPTIONAL */
692 Z_EScanInfo *scanInfo; /* OPTIONAL */
693 int *estNumberTerms; /* OPTIONAL */
695 Z_Term **sampleTerms; /* OPTIONAL */
698 typedef struct Z_RecordTag
700 Z_StringOrNumeric *qualifier; /* OPTIONAL */
701 Z_StringOrNumeric *tagValue;
704 typedef struct Z_PerElementDetails
706 char *name; /* OPTIONAL */
707 Z_RecordTag *recordTag; /* OPTIONAL */
709 Z_Path **schemaTags; /* OPTIONAL */
710 int *maxSize; /* OPTIONAL */
711 int *minSize; /* OPTIONAL */
712 int *avgSize; /* OPTIONAL */
713 int *fixedSize; /* OPTIONAL */
716 Z_HumanString *description; /* OPTIONAL */
717 Z_HumanString *contents; /* OPTIONAL */
718 Z_HumanString *billingInfo; /* OPTIONAL */
719 Z_HumanString *restrictions; /* OPTIONAL */
720 int num_alternateNames;
721 char **alternateNames; /* OPTIONAL */
722 int num_genericNames;
723 char **genericNames; /* OPTIONAL */
724 Z_AttributeCombinations *searchAccess; /* OPTIONAL */
725 } Z_PerElementDetails;
727 typedef struct Z_ElementSetDetails
729 Z_CommonInfo *commonInfo; /* OPTIONAL */
733 Z_DatabaseName *databaseName;
734 char *elementSetName;
735 Odr_oid *recordSyntax;
743 Z_HumanString *description; /* OPTIONAL */
744 int num_detailsPerElement;
745 Z_PerElementDetails **detailsPerElement; /* OPTIONAL */
746 } Z_ElementSetDetails;
748 typedef struct Z_RetrievalRecordDetails
750 Z_CommonInfo *commonInfo; /* OPTIONAL */
754 Z_DatabaseName *databaseName;
756 Odr_oid *recordSyntax;
760 Z_HumanString *description; /* OPTIONAL */
761 int num_detailsPerElement;
762 Z_PerElementDetails **detailsPerElement; /* OPTIONAL */
763 } Z_RetrievalRecordDetails;
765 typedef struct Z_SortKeyDetailsSortType
768 #define Z_SortKeyDetailsSortType_character 0
769 #define Z_SortKeyDetailsSortType_numeric 1
770 #define Z_SortKeyDetailsSortType_structured 2
775 Z_HumanString *structured;
777 } Z_SortKeyDetailsSortType;
779 typedef struct Z_SortKeyDetails
781 Z_HumanString *description; /* OPTIONAL */
782 int num_elementSpecifications;
783 Z_Specification **elementSpecifications; /* OPTIONAL */
784 Z_AttributeCombinations *attributeSpecifications; /* OPTIONAL */
785 Z_SortKeyDetailsSortType *sortType; /* OPTIONAL */
786 int *caseSensitivity; /* OPTIONAL */
787 #define Z_SortKeyDetails_always 0
788 #define Z_SortKeyDetails_never 1
789 #define Z_SortKeyDetails_defaultYes 2
790 #define Z_SortKeyDetails_defaultNo 3
793 typedef struct Z_SortDetails
795 Z_CommonInfo *commonInfo; /* OPTIONAL */
799 Z_DatabaseName *databaseName;
804 Z_SortKeyDetails **sortKeys; /* OPTIONAL */
807 typedef struct Z_ProcessingInformation
809 Z_CommonInfo *commonInfo; /* OPTIONAL */
813 Z_DatabaseName *databaseName;
814 int *processingContext;
815 #define Z_ProcessingInformation_access 0
816 #define Z_ProcessingInformation_search 1
817 #define Z_ProcessingInformation_retrieval 2
818 #define Z_ProcessingInformation_recordPresentation 3
819 #define Z_ProcessingInformation_recordHandling 4
825 Z_HumanString *description; /* OPTIONAL */
826 Z_External *instructions; /* OPTIONAL */
827 } Z_ProcessingInformation;
829 typedef struct Z_ValueDescription
832 #define Z_ValueDescription_integer 0
833 #define Z_ValueDescription_string 1
834 #define Z_ValueDescription_octets 2
835 #define Z_ValueDescription_oid 3
836 #define Z_ValueDescription_unit 4
837 #define Z_ValueDescription_valueAndUnit 5
845 Z_IntUnit *valueAndUnit;
847 } Z_ValueDescription;
849 typedef struct Z_ValueRange
851 Z_ValueDescription *lower; /* OPTIONAL */
852 Z_ValueDescription *upper; /* OPTIONAL */
855 typedef struct Z_ValueSetEnumerated
858 Z_ValueDescription **enumerated;
859 } Z_ValueSetEnumerated;
861 typedef struct Z_ValueSet
864 #define Z_ValueSet_range 0
865 #define Z_ValueSet_enumerated 1
869 Z_ValueSetEnumerated *enumerated;
873 typedef struct Z_VariantValue
876 Z_ValueSet *values; /* OPTIONAL */
879 typedef struct Z_VariantType
881 char *name; /* OPTIONAL */
882 Z_HumanString *description; /* OPTIONAL */
884 Z_VariantValue *variantValue; /* OPTIONAL */
887 typedef struct Z_VariantClass
889 char *name; /* OPTIONAL */
890 Z_HumanString *description; /* OPTIONAL */
892 int num_variantTypes;
893 Z_VariantType **variantTypes;
896 typedef struct Z_VariantSetInfo
898 Z_CommonInfo *commonInfo; /* OPTIONAL */
911 Z_VariantClass **variants; /* OPTIONAL */
914 typedef struct Z_Units
916 char *name; /* OPTIONAL */
917 Z_HumanString *description; /* OPTIONAL */
918 Z_StringOrNumeric *unit;
921 typedef struct Z_UnitType
923 char *name; /* OPTIONAL */
924 Z_HumanString *description; /* OPTIONAL */
925 Z_StringOrNumeric *unitType;
930 typedef struct Z_UnitInfo
932 Z_CommonInfo *commonInfo; /* OPTIONAL */
940 Z_HumanString *description; /* OPTIONAL */
942 Z_UnitType **units; /* OPTIONAL */
945 typedef struct Z_CategoryInfo
948 char *originalCategory; /* OPTIONAL */
949 Z_HumanString *description; /* OPTIONAL */
950 char *asn1Module; /* OPTIONAL */
953 typedef struct Z_CategoryList
955 Z_CommonInfo *commonInfo; /* OPTIONAL */
957 Z_CategoryInfo **categories;
960 typedef struct Z_ExplainRecord
963 #define Z_Explain_targetInfo 0
964 #define Z_Explain_databaseInfo 1
965 #define Z_Explain_schemaInfo 2
966 #define Z_Explain_tagSetInfo 3
967 #define Z_Explain_recordSyntaxInfo 4
968 #define Z_Explain_attributeSetInfo 5
969 #define Z_Explain_termListInfo 6
970 #define Z_Explain_extendedServicesInfo 7
971 #define Z_Explain_attributeDetails 8
972 #define Z_Explain_termListDetails 9
973 #define Z_Explain_elementSetDetails 10
974 #define Z_Explain_retrievalRecordDetails 11
975 #define Z_Explain_sortDetails 12
976 #define Z_Explain_processing 13
977 #define Z_Explain_variants 14
978 #define Z_Explain_units 15
979 #define Z_Explain_categoryList 16
982 Z_TargetInfo *targetInfo;
983 Z_DatabaseInfo *databaseInfo;
984 Z_SchemaInfo *schemaInfo;
985 Z_TagSetInfo *tagSetInfo;
986 Z_RecordSyntaxInfo *recordSyntaxInfo;
987 Z_AttributeSetInfo *attributeSetInfo;
988 Z_TermListInfo *termListInfo;
989 Z_ExtendedServicesInfo *extendedServicesInfo;
990 Z_AttributeDetails *attributeDetails;
991 Z_TermListDetails *termListDetails;
992 Z_ElementSetDetails *elementSetDetails;
993 Z_RetrievalRecordDetails *retrievalRecordDetails;
994 Z_SortDetails *sortDetails;
995 Z_ProcessingInformation *processing;
996 Z_VariantSetInfo *variants;
998 Z_CategoryList *categoryList;
1002 int z_ExplainRecord(ODR o, Z_ExplainRecord **p, int opt);