general.asn
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:6k
- --
- -- ===========================================================================
- -- PRODUCTION $Log: general.asn,v $
- -- PRODUCTION Revision 1000.0 2003/10/29 21:15:01 gouriano
- -- PRODUCTION PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R6.4
- -- PRODUCTION
- -- ===========================================================================
- --
- --$Revision: 1000.0 $
- --**********************************************************************
- --
- -- NCBI General Data elements
- -- by James Ostell, 1990
- -- Version 3.0 - June 1994
- --
- --**********************************************************************
- NCBI-General DEFINITIONS ::=
- BEGIN
- EXPORTS Date, Person-id, Object-id, Dbtag, Int-fuzz, User-object;
- -- StringStore is really a VisibleString. It is used to define very
- -- long strings which may need to be stored by the receiving program
- -- in special structures, such as a ByteStore, but it's just a hint.
- -- AsnTool stores StringStores in ByteStore structures.
- -- OCTET STRINGs are also stored in ByteStores by AsnTool
- --
- -- typedef struct bsunit { /* for building multiline strings */
- -- Nlm_Handle str; /* the string piece */
- -- Nlm_Int2 len_avail,
- -- len;
- -- struct bsunit PNTR next; } /* the next one */
- -- Nlm_BSUnit, PNTR Nlm_BSUnitPtr;
- --
- -- typedef struct bytestore {
- -- Nlm_Int4 seekptr, /* current position */
- -- totlen, /* total stored data length in bytes */
- -- chain_offset; /* offset in ByteStore of first byte in curchain */
- -- Nlm_BSUnitPtr chain, /* chain of elements */
- -- curchain; /* the BSUnit containing seekptr */
- -- } Nlm_ByteStore, PNTR Nlm_ByteStorePtr;
- --
- -- AsnTool incorporates this as a primitive type, so the definition
- -- is here just for completeness
- --
- -- StringStore ::= [APPLICATION 1] IMPLICIT OCTET STRING
- --
- -- BigInt is really an INTEGER. It is used to warn the receiving code to expect
- -- a value bigger than Int4 (actually Int8). It will be stored in DataVal.bigintvalue
- --
- -- Like StringStore, AsnTool incorporates it as a primitive. The definition would be:
- -- BigInt ::= [APPLICATION 2] IMPLICIT INTEGER
- --
- -- Date is used to replace the (overly complex) UTCTtime, GeneralizedTime
- -- of ASN.1
- -- It stores only a date
- --
- Date ::= CHOICE {
- str VisibleString , -- for those unparsed dates
- std Date-std } -- use this if you can
- Date-std ::= SEQUENCE { -- NOTE: this is NOT a unix tm struct
- year INTEGER , -- full year (including 1900)
- month INTEGER OPTIONAL , -- month (1-12)
- day INTEGER OPTIONAL , -- day of month (1-31)
- season VisibleString OPTIONAL , -- for "spring", "may-june", etc
- hour INTEGER OPTIONAL , -- hour of day (0-23)
- minute INTEGER OPTIONAL , -- minute of hour (0-59)
- second INTEGER OPTIONAL } -- second of minute (0-59)
- -- Dbtag is generalized for tagging
- -- eg. { "Social Security", str "023-79-8841" }
- -- or { "member", id 8882224 }
- Dbtag ::= SEQUENCE {
- db VisibleString , -- name of database or system
- tag Object-id } -- appropriate tag
- -- Object-id can tag or name anything
- --
- Object-id ::= CHOICE {
- id INTEGER ,
- str VisibleString }
- -- Person-id is to define a std element for people
- --
- Person-id ::= CHOICE {
- dbtag Dbtag , -- any defined database tag
- name Name-std , -- structured name
- ml VisibleString , -- MEDLINE name (semi-structured)
- -- eg. "Jones RM"
- str VisibleString, -- unstructured name
- consortium VisibleString } -- consortium name
- Name-std ::= SEQUENCE { -- Structured names
- last VisibleString ,
- first VisibleString OPTIONAL ,
- middle VisibleString OPTIONAL ,
- full VisibleString OPTIONAL , -- full name eg. "J. John Smith, Esq"
- initials VisibleString OPTIONAL, -- first + middle initials
- suffix VisibleString OPTIONAL , -- Jr, Sr, III
- title VisibleString OPTIONAL } -- Dr., Sister, etc
- --**** Int-fuzz **********************************************
- --*
- --* uncertainties in integer values
- Int-fuzz ::= CHOICE {
- p-m INTEGER , -- plus or minus fixed amount
- range SEQUENCE { -- max to min
- max INTEGER ,
- min INTEGER } ,
- pct INTEGER , -- % plus or minus (x10) 0-1000
- lim ENUMERATED { -- some limit value
- unk (0) , -- unknown
- gt (1) , -- greater than
- lt (2) , -- less than
- tr (3) , -- space to right of position
- tl (4) , -- space to left of position
- circle (5) , -- artificial break at origin of circle
- other (255) } , -- something else
- alt SET OF INTEGER } -- set of alternatives for the integer
- --**** User-object **********************************************
- --*
- --* a general object for a user defined structured data item
- --* used by Seq-feat and Seq-descr
- User-object ::= SEQUENCE {
- class VisibleString OPTIONAL , -- endeavor which designed this object
- type Object-id , -- type of object within class
- data SEQUENCE OF User-field } -- the object itself
- User-field ::= SEQUENCE {
- label Object-id , -- field label
- num INTEGER OPTIONAL , -- required for strs, ints, reals, oss
- data CHOICE { -- field contents
- str VisibleString ,
- int INTEGER ,
- real REAL ,
- bool BOOLEAN ,
- os OCTET STRING ,
- object User-object , -- for using other definitions
- strs SEQUENCE OF VisibleString ,
- ints SEQUENCE OF INTEGER ,
- reals SEQUENCE OF REAL ,
- oss SEQUENCE OF OCTET STRING ,
- fields SEQUENCE OF User-field ,
- objects SEQUENCE OF User-object } }
- END