📄 oid.c
字号:
/* * Copyright (c) 1995-2003, Index Data * See the file LICENSE for details. * * $Id: oid.c,v 1.67 2003/09/02 12:12:13 adam Exp $ *//* * More or less protocol-transparent OID database. * We could (and should?) extend this so that the user app can add new * entries to the list at initialization. */#if HAVE_CONFIG_H#include <config.h>#endif#include <stdlib.h>#include <string.h>#include <ctype.h>#include <yaz/oid.h>#include <yaz/yaz-util.h>static int z3950_prefix[] = { 1, 2, 840, 10003, -1 };static int sr_prefix[] = { 1, 0, 10163, -1 };struct oident_list { struct oident oident; struct oident_list *next;};static struct oident_list *oident_table = NULL;static int oid_value_dynamic = VAL_DYNAMIC;static int oid_init_flag = 0;static NMEM_MUTEX oid_mutex = 0;static NMEM oid_nmem = 0;/* * OID database */static oident standard_oids[] ={ /* General definitions */ {PROTO_GENERAL, CLASS_TRANSYN, VAL_BER, {2,1,1,-1}, "BER" }, {PROTO_GENERAL, CLASS_TRANSYN, VAL_ISO2709, {1,0,2709,1,1,-1}, "ISO2709"}, {PROTO_GENERAL, CLASS_GENERAL, VAL_ISO_ILL_1, {1,0,10161,2,1,-1}, "ISOILL-1"}, /* Z39.50v3 definitions */ {PROTO_Z3950, CLASS_ABSYN, VAL_APDU, {2,1,-1}, "Z-APDU"}, {PROTO_Z3950, CLASS_APPCTX, VAL_BASIC_CTX, {1,1,-1}, "Z-BASIC"}, {PROTO_Z3950, CLASS_ATTSET, VAL_BIB1, {3,1,-1}, "Bib-1"}, {PROTO_Z3950, CLASS_ATTSET, VAL_EXP1, {3,2,-1}, "Exp-1"}, {PROTO_Z3950, CLASS_ATTSET, VAL_EXT1, {3,3,-1}, "Ext-1"}, {PROTO_Z3950, CLASS_ATTSET, VAL_CCL1, {3,4,-1}, "CCL-1"}, {PROTO_Z3950, CLASS_ATTSET, VAL_GILS, {3,5,-1}, "GILS-attset"}, {PROTO_Z3950, CLASS_ATTSET, VAL_GILS, {3,5,-1}, "GILS"}, {PROTO_Z3950, CLASS_ATTSET, VAL_STAS, {3,6,-1}, "STAS-attset"}, {PROTO_Z3950, CLASS_ATTSET, VAL_COLLECT1, {3,7,-1}, "Collections-attset"}, {PROTO_Z3950, CLASS_ATTSET, VAL_CIMI1, {3,8,-1}, "CIMI-attset"}, {PROTO_Z3950, CLASS_ATTSET, VAL_GEO, {3,9,-1}, "Geo-attset"}, {PROTO_Z3950, CLASS_ATTSET, VAL_ZBIG, {3,10,-1}, "ZBIG"}, {PROTO_Z3950, CLASS_ATTSET, VAL_UTIL, {3,11,-1}, "Util"}, {PROTO_Z3950, CLASS_ATTSET, VAL_XD1, {3,12,-1}, "XD-1"}, {PROTO_Z3950, CLASS_ATTSET, VAL_ZTHES, {3,13,-1}, "Zthes"}, {PROTO_Z3950, CLASS_ATTSET, VAL_FIN1, {3,14,-1}, "Fin-1"}, {PROTO_Z3950, CLASS_ATTSET, VAL_DAN1, {3,15,-1}, "Dan-1"}, {PROTO_Z3950, CLASS_ATTSET, VAL_HOLDINGS, {3,16,-1}, "Holdings"}, {PROTO_Z3950, CLASS_ATTSET, VAL_USMARC, {3,17,-1}, "MARC"}, {PROTO_Z3950, CLASS_ATTSET, VAL_BIB2, {3,18,-1}, "Bib-2"}, {PROTO_Z3950, CLASS_ATTSET, VAL_ZEEREX, {3,19,-1}, "ZeeRex"},#if 0 /* This is the spawn of Satan. Use Zthes-1 instead */ {PROTO_Z3950, CLASS_ATTSET, VAL_THESAURUS, {3,1000,81,1,-1}, "Thesaurus-attset"},#endif /*0*/ {PROTO_Z3950, CLASS_ATTSET, VAL_IDXPATH, {3,1000,81,2,-1}, "IDXPATH"}, {PROTO_Z3950, CLASS_DIAGSET, VAL_BIB1, {4,1,-1}, "Bib-1"}, {PROTO_Z3950, CLASS_DIAGSET, VAL_DIAG1, {4,2,-1}, "Diag-1"}, {PROTO_Z3950, CLASS_DIAGSET, VAL_DIAG_ES, {4,3,-1}, "Diag-ES"}, {PROTO_Z3950, CLASS_DIAGSET, VAL_DIAG_GENERAL, {4,3,-1}, "Diag-General"}, {PROTO_Z3950, CLASS_RECSYN, VAL_UNIMARC, {5,1,-1}, "Unimarc"}, {PROTO_Z3950, CLASS_RECSYN, VAL_INTERMARC, {5,2,-1}, "Intermarc"}, {PROTO_Z3950, CLASS_RECSYN, VAL_CCF, {5,3,-1}, "CCF"}, {PROTO_Z3950, CLASS_RECSYN, VAL_USMARC, {5,10,-1}, "USmarc"}, {PROTO_Z3950, CLASS_RECSYN, VAL_UKMARC, {5,11,-1}, "UKmarc"}, {PROTO_Z3950, CLASS_RECSYN, VAL_NORMARC, {5,12,-1}, "Normarc"}, {PROTO_Z3950, CLASS_RECSYN, VAL_LIBRISMARC, {5,13,-1}, "Librismarc"}, {PROTO_Z3950, CLASS_RECSYN, VAL_DANMARC, {5,14,-1}, "Danmarc"}, {PROTO_Z3950, CLASS_RECSYN, VAL_FINMARC, {5,15,-1}, "Finmarc"}, {PROTO_Z3950, CLASS_RECSYN, VAL_MAB, {5,16,-1}, "MAB"}, {PROTO_Z3950, CLASS_RECSYN, VAL_CANMARC, {5,17,-1}, "Canmarc"}, {PROTO_Z3950, CLASS_RECSYN, VAL_SBN, {5,18,-1}, "SBN"}, {PROTO_Z3950, CLASS_RECSYN, VAL_PICAMARC, {5,19,-1}, "Picamarc"}, {PROTO_Z3950, CLASS_RECSYN, VAL_AUSMARC, {5,20,-1}, "Ausmarc"}, {PROTO_Z3950, CLASS_RECSYN, VAL_IBERMARC, {5,21,-1}, "Ibermarc"}, {PROTO_Z3950, CLASS_RECSYN, VAL_CATMARC, {5,22,-1}, "Carmarc"}, {PROTO_Z3950, CLASS_RECSYN, VAL_MALMARC, {5,23,-1}, "Malmarc"}, {PROTO_Z3950, CLASS_RECSYN, VAL_JPMARC, {5,24,-1}, "JPmarc"}, {PROTO_Z3950, CLASS_RECSYN, VAL_SWEMARC, {5,25,-1}, "SWEmarc"}, {PROTO_Z3950, CLASS_RECSYN, VAL_SIGLEMARC, {5,26,-1}, "SIGLEmarc"}, {PROTO_Z3950, CLASS_RECSYN, VAL_ISDSMARC, {5,27,-1}, "ISDSmarc"}, {PROTO_Z3950, CLASS_RECSYN, VAL_RUSMARC, {5,28,-1}, "RUSmarc"}, {PROTO_Z3950, CLASS_RECSYN, VAL_HUNMARC, {5,29,-1}, "Hunmarc"}, {PROTO_Z3950, CLASS_RECSYN, VAL_EXPLAIN, {5,100,-1}, "Explain"}, {PROTO_Z3950, CLASS_RECSYN, VAL_SUTRS, {5,101,-1}, "SUTRS"}, {PROTO_Z3950, CLASS_RECSYN, VAL_OPAC, {5,102,-1}, "OPAC"}, {PROTO_Z3950, CLASS_RECSYN, VAL_SUMMARY, {5,103,-1}, "Summary"}, {PROTO_Z3950, CLASS_RECSYN, VAL_GRS0, {5,104,-1}, "GRS-0"}, {PROTO_Z3950, CLASS_RECSYN, VAL_GRS1, {5,105,-1}, "GRS-1"}, {PROTO_Z3950, CLASS_RECSYN, VAL_EXTENDED, {5,106,-1}, "Extended"}, {PROTO_Z3950, CLASS_RECSYN, VAL_FRAGMENT, {5,107,-1}, "Fragment"}, {PROTO_Z3950, CLASS_RECSYN, VAL_PDF, {5,109,1,-1}, "pdf"}, {PROTO_Z3950, CLASS_RECSYN, VAL_POSTSCRIPT, {5,109,2,-1}, "postscript"}, {PROTO_Z3950, CLASS_RECSYN, VAL_HTML, {5,109,3,-1}, "html"}, {PROTO_Z3950, CLASS_RECSYN, VAL_TIFF, {5,109,4,-1}, "tiff"}, {PROTO_Z3950, CLASS_RECSYN, VAL_GIF, {5,109,5,-1}, "gif"}, {PROTO_Z3950, CLASS_RECSYN, VAL_JPEG, {5,109,6,-1}, "jpeg"}, {PROTO_Z3950, CLASS_RECSYN, VAL_PNG, {5,109,7,-1}, "png"}, {PROTO_Z3950, CLASS_RECSYN, VAL_MPEG, {5,109,8,-1}, "mpeg"}, {PROTO_Z3950, CLASS_RECSYN, VAL_SGML, {5,109,9,-1}, "sgml"}, {PROTO_Z3950, CLASS_RECSYN, VAL_TIFFB, {5,110,1,-1}, "tiff-b"}, {PROTO_Z3950, CLASS_RECSYN, VAL_WAV, {5,110,2,-1}, "wav"}, {PROTO_Z3950, CLASS_RECSYN, VAL_SQLRS, {5,111,-1}, "SQL-RS"}, {PROTO_Z3950, CLASS_RECSYN, VAL_SOIF, {5,1000,81,2,-1}, "SOIF" }, {PROTO_Z3950, CLASS_RECSYN, VAL_TEXT_XML, {5,109,10,-1}, "text-XML" }, {PROTO_Z3950, CLASS_RECSYN, VAL_TEXT_XML, {5,109,10,-1}, "XML" }, {PROTO_Z3950, CLASS_RECSYN, VAL_APPLICATION_XML, {5,109,11,-1}, "application-XML" }, {PROTO_Z3950, CLASS_RESFORM, VAL_RESOURCE1, {7,1,-1}, "Resource-1"}, {PROTO_Z3950, CLASS_RESFORM, VAL_RESOURCE2, {7,2,-1}, "Resource-2"}, {PROTO_Z3950, CLASS_RESFORM, VAL_UNIVERSE_REPORT, {7,1000,81,1,-1}, "UNIverse-Resource-Report"}, {PROTO_Z3950, CLASS_ACCFORM, VAL_PROMPT1, {8,1,-1}, "Prompt-1"}, {PROTO_Z3950, CLASS_ACCFORM, VAL_DES1, {8,2,-1}, "Des-1"}, {PROTO_Z3950, CLASS_ACCFORM, VAL_KRB1, {8,3,-1}, "Krb-1"}, {PROTO_Z3950, CLASS_EXTSERV, VAL_PRESSET, {9,1,-1}, "Pers. set"}, {PROTO_Z3950, CLASS_EXTSERV, VAL_PQUERY, {9,2,-1}, "Pers. query"}, {PROTO_Z3950, CLASS_EXTSERV, VAL_PCQUERY, {9,3,-1}, "Per'd query"}, {PROTO_Z3950, CLASS_EXTSERV, VAL_ITEMORDER, {9,4,-1}, "Item order"}, {PROTO_Z3950, CLASS_EXTSERV, VAL_DBUPDATE0, {9,5,-1}, "DB. Update (first version)"}, {PROTO_Z3950, CLASS_EXTSERV, VAL_DBUPDATE1, {9,5,1,-1}, "DB. Update (second version)"}, {PROTO_Z3950, CLASS_EXTSERV, VAL_DBUPDATE, {9,5,1,1,-1}, "DB. Update"}, {PROTO_Z3950, CLASS_EXTSERV, VAL_EXPORTSPEC, {9,6,-1}, "exp. spec."}, {PROTO_Z3950, CLASS_EXTSERV, VAL_EXPORTINV, {9,7,-1}, "exp. inv."}, {PROTO_Z3950, CLASS_EXTSERV, VAL_ADMINSERVICE, {9,1000,81,1,-1}, "Admin"}, {PROTO_Z3950, CLASS_USERINFO,VAL_SEARCHRES1, {10,1,-1}, "searchResult-1"}, {PROTO_Z3950, CLASS_USERINFO,VAL_CHARLANG, {10,2,-1}, "CharSetandLanguageNegotiation"}, {PROTO_Z3950, CLASS_USERINFO,VAL_USERINFO1, {10,3,-1}, "UserInfo-1"}, {PROTO_Z3950, CLASS_USERINFO,VAL_MULTISRCH1, {10,4,-1}, "MultipleSearchTerms-1"}, {PROTO_Z3950, CLASS_USERINFO,VAL_MULTISRCH2, {10,5,-1}, "MultipleSearchTerms-2"}, {PROTO_Z3950, CLASS_USERINFO,VAL_DATETIME, {10,6,-1}, "DateTime"}, {PROTO_Z3950, CLASS_USERINFO,VAL_PROXY, {10,1000,81,1,-1}, "Proxy" }, {PROTO_Z3950, CLASS_USERINFO,VAL_COOKIE, {10,1000,81,2,-1}, "Cookie" }, {PROTO_Z3950, CLASS_USERINFO,VAL_CLIENT_IP, {10,1000,81,3,-1}, "Client-IP" }, {PROTO_Z3950, CLASS_ELEMSPEC,VAL_ESPEC1, {11,1,-1}, "Espec-1"}, {PROTO_Z3950, CLASS_VARSET, VAL_VAR1, {12,1,-1}, "Variant-1"}, {PROTO_Z3950, CLASS_SCHEMA, VAL_WAIS, {13,1,-1}, "WAIS-schema"}, {PROTO_Z3950, CLASS_SCHEMA, VAL_GILS, {13,2,-1}, "GILS-schema"}, {PROTO_Z3950, CLASS_SCHEMA, VAL_COLLECT1, {13,3,-1}, "Collections-schema"}, {PROTO_Z3950, CLASS_SCHEMA, VAL_GEO, {13,4,-1}, "Geo-schema"}, {PROTO_Z3950, CLASS_SCHEMA, VAL_CIMI1, {13,5,-1}, "CIMI-schema"}, {PROTO_Z3950, CLASS_SCHEMA, VAL_UPDATEES, {13,6,-1}, "Update ES"}, {PROTO_Z3950, CLASS_SCHEMA, VAL_HOLDINGS, {13,7,-1}, "Holdings"}, {PROTO_Z3950, CLASS_SCHEMA, VAL_ZTHES, {13,8,-1}, "Zthes"}, {PROTO_Z3950, CLASS_SCHEMA, VAL_THESAURUS, {13,1000,81,1,-1}, "thesaurus-schema"}, {PROTO_Z3950, CLASS_SCHEMA, VAL_EXPLAIN, {13,1000,81,2,-1}, "Explain-schema"}, {PROTO_Z3950, CLASS_TAGSET, VAL_SETM, {14,1,-1}, "TagsetM"}, {PROTO_Z3950, CLASS_TAGSET, VAL_SETG, {14,2,-1}, "TagsetG"}, {PROTO_Z3950, CLASS_TAGSET, VAL_STAS, {14,3,-1}, "STAS-tagset"}, {PROTO_Z3950, CLASS_TAGSET, VAL_GILS, {14,4,-1}, "GILS-tagset"}, {PROTO_Z3950, CLASS_TAGSET, VAL_COLLECT1, {14,5,-1}, "Collections-tagset"}, {PROTO_Z3950, CLASS_TAGSET, VAL_CIMI1, {14,6,-1}, "CIMI-tagset"}, {PROTO_Z3950, CLASS_TAGSET, VAL_THESAURUS, {14,1000,81,1,-1}, "thesaurus-tagset"}, /* What is this Satan-spawn doing here? */ {PROTO_Z3950, CLASS_TAGSET, VAL_EXPLAIN, {14,1000,81,2,-1}, "Explain-tagset"}, {PROTO_Z3950, CLASS_TAGSET, VAL_ZTHES, {14,8,-1}, "Zthes-tagset"}, {PROTO_Z3950, CLASS_NEGOT, VAL_CHARNEG3, {15,3,-1}, "CharSetandLanguageNegotiation-3"}, {PROTO_Z3950, CLASS_NEGOT, VAL_ID_CHARSET, {15,1000,81,1,-1}, "ID-Charset" }, {PROTO_Z3950, CLASS_USERINFO,VAL_CQL, {16, 2, -1}, "CQL"}, {PROTO_GENERAL, CLASS_GENERAL, VAL_UCS2, {1,0,10646,1,0,2,-1}, "UCS-2"}, {PROTO_GENERAL, CLASS_GENERAL, VAL_UCS4, {1,0,10646,1,0,4,-1}, "UCS-4"},
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -