2 * Copyright (c) 1995, 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
33 #define multipleDbSearch multipleDBsearch
35 typedef struct Z_CommonInfo
37 char *dateAdded; /* OPTIONAL */
38 char *dateChanged; /* OPTIONAL */
39 char *expiry; /* OPTIONAL */
40 char *humanStringLanguage; /* OPTIONAL */
41 Z_OtherInformation *otherInfo; /* OPTIONAL */
44 typedef struct Z_HumanStringUnit
46 char *language; /* OPTIONAL */
50 typedef struct Z_HumanString
53 Z_HumanStringUnit **strings;
56 typedef struct Z_IconObjectUnit
60 Z_IconObject_ianaType,
61 Z_IconObject_z3950type,
62 Z_IconObject_otherType
68 typedef struct Z_IconObject
71 Z_IconObjectUnit **iconUnits;
74 typedef struct Z_ContactInfo
76 char *name; /* OPTIONAL */
77 Z_HumanString *description; /* OPTIONAL */
78 Z_HumanString *address; /* OPTIONAL */
79 char *email; /* OPTIONAL */
80 char *phone; /* OPTIONAL */
83 typedef struct Z_NetworkAddressIA
89 typedef struct Z_NetworkAddressOPA
92 char *sSel; /* OPTIONAL */
93 char *tSel; /* OPTIONAL */
95 } Z_NetworkAddressOPA;
97 typedef struct Z_NetworkAddressOther
101 } Z_NetworkAddressOther;
103 typedef struct Z_NetworkAddress
108 Z_NetworkAddress_oPA,
109 Z_NetworkAddress_other
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
151 Z_ProxSupportUnit_known,
152 Z_ProxSupportUnit_private
157 Z_ProxSupportPrivate *private;
161 typedef struct Z_ProximitySupport
164 int num_unitsSupported;
165 Z_ProxSupportUnit **unitsSupported; /* OPTIONAL */
166 } Z_ProximitySupport;
168 typedef struct Z_RpnCapabilities
171 int **operators; /* OPTIONAL */
172 bool_t *resultSetAsOperandSupported;
173 bool_t *restrictionOperandSupported;
174 Z_ProximitySupport *proximity; /* OPTIONAL */
177 typedef struct Z_Iso8777Capabilities
180 Z_SearchKey **searchKeys;
181 Z_HumanString *restrictions; /* OPTIONAL */
182 } Z_Iso8777Capabilities;
184 typedef struct Z_QueryTypeDetails
188 Z_QueryTypeDetails_private,
189 Z_QueryTypeDetails_rpn,
190 Z_QueryTypeDetails_iso8777,
191 Z_QueryTypeDetails_z3958,
192 Z_QueryTypeDetails_erpn,
193 Z_QueryTypeDetails_rankedList
197 Z_PrivateCapabilities *private;
198 Z_RpnCapabilities *rpn;
199 Z_Iso8777Capabilities *iso8777;
200 Z_HumanString *z3958;
201 Z_RpnCapabilities *erpn;
202 Z_HumanString *rankedList;
204 } Z_QueryTypeDetails;
206 typedef struct Z_AccessRestrictionsUnit
209 #define Z_AccessRestrictions_any 0
210 #define Z_AccessRestrictions_search 1
211 #define Z_AccessRestrictions_present 2
212 #define Z_AccessRestrictions_specific_elements 3
213 #define Z_AccessRestrictions_extended_services 4
214 #define Z_AccessRestrictions_by_database 5
215 Z_HumanString *accessText; /* OPTIONAL */
216 int num_accessChallenges;
217 Odr_oid **accessChallenges; /* OPTIONAL */
218 } Z_AccessRestrictionsUnit;
220 typedef struct Z_AccessRestrictions
222 int num_restrictions;
223 Z_AccessRestrictionsUnit **restrictions;
224 } Z_AccessRestrictions;
226 typedef struct Z_Charge
229 Z_Unit *perWhat; /* OPTIONAL */
230 Z_HumanString *text; /* OPTIONAL */
233 typedef struct Z_CostsOtherCharge
235 Z_HumanString *forWhat;
237 } Z_CostsOtherCharge;
239 typedef struct Z_Costs
241 Z_Charge *connectCharge; /* OPTIONAL */
242 Z_Charge *connectTime; /* OPTIONAL */
243 Z_Charge *displayCharge; /* OPTIONAL */
244 Z_Charge *searchCharge; /* OPTIONAL */
245 Z_Charge *subscriptCharge; /* OPTIONAL */
246 int num_otherCharges;
247 Z_CostsOtherCharge **otherCharges; /* OPTIONAL */
250 typedef struct Z_AccessInfo
252 int num_queryTypesSupported;
253 Z_QueryTypeDetails **queryTypesSupported; /* OPTIONAL */
254 int num_diagnosticsSets;
255 Odr_oid **diagnosticsSets; /* OPTIONAL */
256 int num_attributeSetIds;
257 Odr_oid **attributeSetIds; /* OPTIONAL */
259 Odr_oid **schemas; /* OPTIONAL */
260 int num_recordSyntaxes;
261 Odr_oid **recordSyntaxes; /* OPTIONAL */
262 int num_resourceChallenges;
263 Odr_oid **resourceChallenges; /* OPTIONAL */
264 Z_AccessRestrictions *restrictedAccess; /* OPTIONAL */
265 Z_Costs *costInfo; /* OPTIONAL */
267 Odr_oid **variantSets; /* OPTIONAL */
268 int num_elementSetNames;
269 char **elementSetNames; /* OPTIONAL */
274 typedef struct Z_DatabaseList
277 Z_DatabaseName **databases;
280 typedef struct Z_AttributeValueList
283 Z_StringOrNumeric **attributes;
284 } Z_AttributeValueList;
286 typedef struct Z_AttributeOccurrence
288 Odr_oid *attributeSet; /* OPTIONAL */
290 Odr_null *mustBeSupplied; /* OPTIONAL */
293 Z_AttributeOcc_anyOrNone,
294 Z_AttributeOcc_specific
299 Z_AttributeValueList *specific;
301 } Z_AttributeOccurrence;
303 typedef struct Z_AttributeCombination
306 Z_AttributeOccurrence **occurrences;
307 } Z_AttributeCombination;
309 typedef struct Z_AttributeCombinations
311 Odr_oid *defaultAttributeSet;
312 int num_legalCombinations;
313 Z_AttributeCombination **legalCombinations;
314 } Z_AttributeCombinations;
316 typedef struct Z_AttributeValue
318 Z_StringOrNumeric *value;
319 Z_HumanString *description; /* OPTIONAL */
320 int num_subAttributes;
321 Z_StringOrNumeric **subAttributes; /* OPTIONAL */
322 int num_superAttributes;
323 Z_StringOrNumeric **superAttributes; /* OPTIONAL */
324 Odr_null *partialSupport; /* OPTIONAL */
327 typedef struct Z_TargetInfo
329 Z_CommonInfo *commonInfo; /* OPTIONAL */
335 * non-key brief elements
337 Z_HumanString *recentNews; /* OPTIONAL */
338 Z_IconObject *icon; /* OPTIONAL */
339 bool_t *namedResultSets;
340 bool_t *multipleDbSearch;
341 int *maxResultSets; /* OPTIONAL */
342 int *maxResultSize; /* OPTIONAL */
343 int *maxTerms; /* OPTIONAL */
344 Z_IntUnit *timeoutInterval; /* OPTIONAL */
345 Z_HumanString *welcomeMessage; /* OPTIONAL */
349 Z_ContactInfo *contactInfo; /* OPTIONAL */
350 Z_HumanString *description; /* OPTIONAL */
353 Z_HumanString *usageRest; /* OPTIONAL */
354 Z_HumanString *paymentAddr; /* OPTIONAL */
355 Z_HumanString *hours; /* OPTIONAL */
356 int num_dbCombinations;
357 Z_DatabaseList **dbCombinations; /* OPTIONAL */
359 Z_NetworkAddress **addresses; /* OPTIONAL */
360 Z_AccessInfo *commonAccessInfo; /* OPTIONAL */
363 typedef struct Z_DatabaseInfo
365 Z_CommonInfo *commonInfo; /* OPTIONAL */
369 Z_DatabaseName *name;
373 Odr_null *explainDatabase; /* OPTIONAL */
375 Z_DatabaseName **nicknames; /* OPTIONAL */
376 Z_IconObject *icon; /* OPTIONAL */
379 Z_HumanString *titleString; /* OPTIONAL */
381 * Non-brief elements.
384 Z_HumanString **keywords; /* OPTIONAL */
385 Z_HumanString *description; /* OPTIONAL */
386 Z_DatabaseList *associatedDbs; /* OPTIONAL */
387 Z_DatabaseList *subDbs; /* OPTIONAL */
388 Z_HumanString *disclaimers; /* OPTIONAL */
389 Z_HumanString *news; /* OPTIONAL */
392 Z_Exp_RecordCount_actualNumber,
393 Z_Exp_RecordCount_approxNumber
395 int *recordCount; /* OPTIONAL */
396 Z_HumanString *defaultOrder; /* OPTIONAL */
397 int *avRecordSize; /* OPTIONAL */
398 int *maxRecordSize; /* OPTIONAL */
399 Z_HumanString *hours; /* OPTIONAL */
400 Z_HumanString *bestTime; /* OPTIONAL */
401 char *lastUpdate; /* OPTIONAL */
402 Z_IntUnit *updateInterval; /* OPTIONAL */
403 Z_HumanString *coverage; /* OPTIONAL */
404 bool_t *proprietary; /* OPTIONAL */
405 Z_HumanString *copyrightText; /* OPTIONAL */
406 Z_HumanString *copyrightNotice; /* OPTIONAL */
407 Z_ContactInfo *producerContactInfo; /* OPTIONAL */
408 Z_ContactInfo *supplierContactInfo; /* OPTIONAL */
409 Z_ContactInfo *submissionContactInfo; /* OPTIONAL */
410 Z_AccessInfo *accessInfo; /* OPTIONAL */
413 typedef struct Z_TagTypeMapping
416 Odr_oid *tagSet; /* OPTIONAL */
417 Odr_null *defaultTagType; /* OPTIONAL */
420 typedef struct Z_PathUnit
423 Z_StringOrNumeric *tagValue;
426 typedef struct Z_Path
432 struct Z_ElementDataType;
433 typedef struct Z_ElementDataType Z_ElementDataType;
435 typedef struct Z_ElementInfo
438 Z_Path *elementTagPath;
439 Z_ElementDataType *dataType; /* OPTIONAL */
442 Z_HumanString *description; /* OPTIONAL */
445 typedef struct Z_ElementInfoList
448 Z_ElementInfo **list;
451 struct Z_ElementDataType
455 Z_ElementDataType_primitive,
456 Z_ElementDataType_structured
461 #define Z_PrimitiveElement_octetString 0
462 #define Z_PrimitiveElement_numeric 1
463 #define Z_PrimitiveElement_date 2
464 #define Z_PrimitiveElement_external 3
465 #define Z_PrimitiveElement_string 4
466 #define Z_PrimitiveElement_trueOrFalse 5
467 #define Z_PrimitiveElement_oid 6
468 #define Z_PrimitiveElement_intUnit 7
469 #define Z_PrimitiveElement_empty 8
470 #define Z_PrimitiveElement_noneOfTheAbove 100
471 Z_ElementInfoList *structured;
475 typedef struct Z_TagSetInfoElements
479 char **nicknames; /* OPTIONAL */
480 Z_StringOrNumeric *elementTag;
481 Z_HumanString *description; /* OPTIONAL */
482 int *dataType; /* OPTIONAL */
483 /* (value as in Z_PrimitiveElement) */
484 Z_OtherInformation *otherTagInfo; /* OPTIONAL */
485 } Z_TagSetInfoElements;
487 typedef struct Z_SchemaInfo
489 Z_CommonInfo *commonInfo; /* OPTIONAL */
501 Z_HumanString *description; /* OPTIONAL */
502 int num_tagTypeMapping;
503 Z_TagTypeMapping **tagTypeMapping; /* OPTIONAL */
504 int num_recordStructure;
505 Z_ElementInfo **recordStructure; /* OPTIONAL */
509 typedef struct Z_TagSetInfo
511 Z_CommonInfo *commonInfo; /* OPTIONAL */
523 Z_HumanString *description; /* OPTIONAL */
525 Z_TagSetInfoElements **elements; /* OPTIONAL */
528 typedef struct Z_RecordSyntaxInfo
530 Z_CommonInfo *commonInfo; /* OPTIONAL */
534 Odr_oid *recordSyntax;
542 int num_transferSyntaxes;
543 Odr_oid **transferSyntaxes; /* OPTIONAL */
544 Z_HumanString *description; /* OPTIONAL */
545 char *asn1Module; /* OPTIONAL */
546 int num_abstractStructure;
547 Z_ElementInfo **abstractStructure; /* OPTIONAL */
548 } Z_RecordSyntaxInfo;
550 typedef struct Z_AttributeDescription
552 char *name; /* OPTIONAL */
553 Z_HumanString *description; /* OPTIONAL */
554 Z_StringOrNumeric *attributeValue;
555 int num_equivalentAttributes;
556 Z_StringOrNumeric **equivalentAttributes; /* OPTIONAL */
557 } Z_AttributeDescription;
559 typedef struct Z_AttributeType
561 char *name; /* OPTIONAL */
562 Z_HumanString *description; /* OPTIONAL */
564 int num_attributeValues;
565 Z_AttributeDescription **attributeValues;
568 typedef struct Z_AttributeSetInfo
570 Z_CommonInfo *commonInfo; /* OPTIONAL */
574 Odr_oid *attributeSet;
583 Z_AttributeType **attributes; /* OPTIONAL */
584 Z_HumanString *description; /* OPTIONAL */
585 } Z_AttributeSetInfo;
587 typedef struct Z_TermListElement
590 Z_HumanString *title; /* OPTIONAL */
591 int *searchCost; /* OPTIONAL */
592 #define Z_TermListInfo_optimized 0
593 #define Z_TermListInfo_normal 1
594 #define Z_TermListInfo_expensive 2
595 #define Z_TermListInfo_filter 3
598 char **broader; /* OPTIONAL */
600 char **narrower; /* OPTIONAL */
603 typedef struct Z_TermListInfo
605 Z_CommonInfo *commonInfo; /* OPTIONAL */
609 Z_DatabaseName *databaseName;
614 Z_TermListElement **termLists;
617 typedef struct Z_ExtendedServicesInfo
619 Z_CommonInfo *commonInfo; /* OPTIONAL */
627 char *name; /* OPTIONAL */
629 bool_t *restrictionsApply;
632 bool_t *retentionSupported;
634 #define Z_ExtendedServicesInfo_waitSupported 1
635 #define Z_ExtendedServicesInfo_waitAlways 2
636 #define Z_ExtendedServicesInfo_waitNotSupported 3
637 #define Z_ExtendedServicesInfo_depends 4
638 #define Z_ExtendedServicesInfo_notSaying 5
642 Z_HumanString *description; /* OPTIONAL */
643 Z_External *specificExplain; /* OPTIONAL */
644 char *esASN; /* OPTIONAL */
645 } Z_ExtendedServicesInfo;
647 typedef struct Z_OmittedAttributeInterpretation
649 Z_StringOrNumeric *defaultValue; /* OPTIONAL */
650 Z_HumanString *defaultDescription; /* OPTIONAL */
651 } Z_OmittedAttributeInterpretation;
653 typedef struct Z_AttributeTypeDetails
656 Z_OmittedAttributeInterpretation *optionalType; /* OPTIONAL */
657 int num_attributeValues;
658 Z_AttributeValue **attributeValues; /* OPTIONAL */
659 } Z_AttributeTypeDetails;
661 typedef struct Z_AttributeSetDetails
663 Odr_oid *attributeSet;
664 int num_attributesByType;
665 Z_AttributeTypeDetails **attributesByType;
666 } Z_AttributeSetDetails;
668 typedef struct Z_AttributeDetails
670 Z_CommonInfo *commonInfo; /* OPTIONAL */
674 Z_DatabaseName *databaseName;
678 int num_attributesBySet;
679 Z_AttributeSetDetails **attributesBySet; /* OPTIONAL */
680 Z_AttributeCombinations *attributeCombinations; /* OPTIONAL */
681 } Z_AttributeDetails;
683 typedef struct Z_EScanInfo
685 int *maxStepSize; /* OPTIONAL */
686 Z_HumanString *collatingSequence; /* OPTIONAL */
687 bool_t *increasing; /* OPTIONAL */
690 typedef struct Z_TermListDetails
692 Z_CommonInfo *commonInfo; /* OPTIONAL */
700 Z_HumanString *description; /* OPTIONAL */
701 Z_AttributeCombinations *attributes; /* OPTIONAL */
702 Z_EScanInfo *scanInfo; /* OPTIONAL */
703 int *estNumberTerms; /* OPTIONAL */
705 Z_Term **sampleTerms; /* OPTIONAL */
708 typedef struct Z_RecordTag
710 Z_StringOrNumeric *qualifier; /* OPTIONAL */
711 Z_StringOrNumeric *tagValue;
714 typedef struct Z_PerElementDetails
716 char *name; /* OPTIONAL */
717 Z_RecordTag *recordTag; /* OPTIONAL */
719 Z_Path **schemaTags; /* OPTIONAL */
720 int *maxSize; /* OPTIONAL */
721 int *minSize; /* OPTIONAL */
722 int *avgSize; /* OPTIONAL */
723 int *fixedSize; /* OPTIONAL */
726 Z_HumanString *description; /* OPTIONAL */
727 Z_HumanString *contents; /* OPTIONAL */
728 Z_HumanString *billingInfo; /* OPTIONAL */
729 Z_HumanString *restrictions; /* OPTIONAL */
730 int num_alternateNames;
731 char **alternateNames; /* OPTIONAL */
732 int num_genericNames;
733 char **genericNames; /* OPTIONAL */
734 Z_AttributeCombinations *searchAccess; /* OPTIONAL */
735 } Z_PerElementDetails;
737 typedef struct Z_ElementSetDetails
739 Z_CommonInfo *commonInfo; /* OPTIONAL */
743 Z_DatabaseName *databaseName;
744 char *elementSetName;
745 Odr_oid *recordSyntax;
753 Z_HumanString *description; /* OPTIONAL */
754 int num_detailsPerElement;
755 Z_PerElementDetails **detailsPerElement; /* OPTIONAL */
756 } Z_ElementSetDetails;
758 typedef struct Z_RetrievalRecordDetails
760 Z_CommonInfo *commonInfo; /* OPTIONAL */
764 Z_DatabaseName *databaseName;
766 Odr_oid *recordSyntax;
770 Z_HumanString *description; /* OPTIONAL */
771 int num_detailsPerElement;
772 Z_PerElementDetails **detailsPerElement; /* OPTIONAL */
773 } Z_RetrievalRecordDetails;
775 typedef struct Z_SortKeyDetailsSortType
779 Z_SortKeyDetailsSortType_character,
780 Z_SortKeyDetailsSortType_numeric,
781 Z_SortKeyDetailsSortType_structured
787 Z_HumanString *structured;
789 } Z_SortKeyDetailsSortType;
791 typedef struct Z_SortKeyDetails
793 Z_HumanString *description; /* OPTIONAL */
794 int num_elementSpecifications;
795 Z_Specification **elementSpecifications; /* OPTIONAL */
796 Z_AttributeCombinations *attributeSpecifications; /* OPTIONAL */
797 Z_SortKeyDetailsSortType *sortType; /* OPTIONAL */
798 int *caseSensitivity; /* OPTIONAL */
799 #define Z_SortKeyDetails_always 0
800 #define Z_SortKeyDetails_never 1
801 #define Z_SortKeyDetails_defaultYes 2
802 #define Z_SortKeyDetails_defaultNo 3
805 typedef struct Z_SortDetails
807 Z_CommonInfo *commonInfo; /* OPTIONAL */
811 Z_DatabaseName *databaseName;
816 Z_SortKeyDetails **sortKeys; /* OPTIONAL */
819 typedef struct Z_ProcessingInformation
821 Z_CommonInfo *commonInfo; /* OPTIONAL */
825 Z_DatabaseName *databaseName;
826 int *processingContext;
827 #define Z_ProcessingInformation_access 0
828 #define Z_ProcessingInformation_search 1
829 #define Z_ProcessingInformation_retrieval 2
830 #define Z_ProcessingInformation_recordPresentation 3
831 #define Z_ProcessingInformation_recordHandling 4
837 Z_HumanString *description; /* OPTIONAL */
838 Z_External *instructions; /* OPTIONAL */
839 } Z_ProcessingInformation;
841 typedef struct Z_ValueDescription
845 Z_ValueDescription_integer,
846 Z_ValueDescription_string,
847 Z_ValueDescription_octets,
848 Z_ValueDescription_oid,
849 Z_ValueDescription_unit,
850 Z_ValueDescription_valueAndUnit
859 Z_IntUnit *valueAndUnit;
861 } Z_ValueDescription;
863 typedef struct Z_ValueRange
865 Z_ValueDescription *lower; /* OPTIONAL */
866 Z_ValueDescription *upper; /* OPTIONAL */
869 typedef struct Z_ValueSetEnumerated
872 Z_ValueDescription **enumerated;
873 } Z_ValueSetEnumerated;
875 typedef struct Z_ValueSet
880 Z_ValueSet_enumerated
885 Z_ValueSetEnumerated *enumerated;
889 typedef struct Z_VariantValue
892 Z_ValueSet *values; /* OPTIONAL */
895 typedef struct Z_VariantType
897 char *name; /* OPTIONAL */
898 Z_HumanString *description; /* OPTIONAL */
900 Z_VariantValue *variantValue; /* OPTIONAL */
903 typedef struct Z_VariantClass
905 char *name; /* OPTIONAL */
906 Z_HumanString *description; /* OPTIONAL */
908 int num_variantTypes;
909 Z_VariantType **variantTypes;
912 typedef struct Z_VariantSetInfo
914 Z_CommonInfo *commonInfo; /* OPTIONAL */
927 Z_VariantClass **variants; /* OPTIONAL */
930 typedef struct Z_Units
932 char *name; /* OPTIONAL */
933 Z_HumanString *description; /* OPTIONAL */
934 Z_StringOrNumeric *unit;
937 typedef struct Z_UnitType
939 char *name; /* OPTIONAL */
940 Z_HumanString *description; /* OPTIONAL */
941 Z_StringOrNumeric *unitType;
946 typedef struct Z_UnitInfo
948 Z_CommonInfo *commonInfo; /* OPTIONAL */
956 Z_HumanString *description; /* OPTIONAL */
958 Z_UnitType **units; /* OPTIONAL */
961 typedef struct Z_CategoryInfo
964 char *originalCategory; /* OPTIONAL */
965 Z_HumanString *description; /* OPTIONAL */
966 char *asn1Module; /* OPTIONAL */
969 typedef struct Z_CategoryList
971 Z_CommonInfo *commonInfo; /* OPTIONAL */
973 Z_CategoryInfo **categories;
976 typedef struct Z_ExplainRecord
980 Z_Explain_targetInfo,
981 Z_Explain_databaseInfo,
982 Z_Explain_schemaInfo,
983 Z_Explain_tagSetInfo,
984 Z_Explain_recordSyntaxInfo,
985 Z_Explain_attributeSetInfo,
986 Z_Explain_termListInfo,
987 Z_Explain_extendedServicesInfo,
988 Z_Explain_attributeDetails,
989 Z_Explain_termListDetails,
990 Z_Explain_elementSetDetails,
991 Z_Explain_retrievalRecordDetails,
992 Z_Explain_sortDetails,
993 Z_Explain_processing,
996 Z_Explain_categoryList
1000 Z_TargetInfo *targetInfo;
1001 Z_DatabaseInfo *databaseInfo;
1002 Z_SchemaInfo *schemaInfo;
1003 Z_TagSetInfo *tagSetInfo;
1004 Z_RecordSyntaxInfo *recordSyntaxInfo;
1005 Z_AttributeSetInfo *attributeSetInfo;
1006 Z_TermListInfo *termListInfo;
1007 Z_ExtendedServicesInfo *extendedServicesInfo;
1008 Z_AttributeDetails *attributeDetails;
1009 Z_TermListDetails *termListDetails;
1010 Z_ElementSetDetails *elementSetDetails;
1011 Z_RetrievalRecordDetails *retrievalRecordDetails;
1012 Z_SortDetails *sortDetails;
1013 Z_ProcessingInformation *processing;
1014 Z_VariantSetInfo *variants;
1016 Z_CategoryList *categoryList;
1020 int z_ExplainRecord(ODR o, Z_ExplainRecord **p, int opt);