ModuleClassSample { iso org(3) dod(6) internet(1) private(4) enterprise(1)
	spelio(9363) software(1) asn1c(5) test(1) 99 }
DEFINITIONS ::=
BEGIN

SAMPLE-CLASS ::= CLASS {
    &id	 RELATIVE-OID UNIQUE,
    &code	 ENUMERATED {
            request(0),        
            response(1),        
            status(2)
        } DEFAULT 0,
    &Type	 OPTIONAL
} WITH SYNTAX { [TYPE &Type] [WITH CODE &code] IDENTIFIED BY &id }

-- Information Object Set has 4 entries:
--    [             &id][           &code][           &Type]
-- [1] request-whatever        <no entry>        <no entry> 
-- [2]   response-stuff                 1        <no entry> 
-- [3]       request-id                 2        SampleType 
-- [4]     request-salt        <no entry>              Salt 


SampleClassObjectSet SAMPLE-CLASS ::= {{ IDENTIFIED BY request-whatever } | { WITH CODE 1 IDENTIFIED BY response-stuff } | { TYPE SampleType WITH CODE 2 IDENTIFIED BY request-id } | { TYPE Salt IDENTIFIED BY request-salt }}
-- Information Object Set has 4 entries:
--    [             &id][           &code][           &Type]
-- [1] request-whatever        <no entry>        <no entry> 
-- [2]   response-stuff                 1        <no entry> 
-- [3]       request-id                 2        SampleType 
-- [4]     request-salt        <no entry>              Salt 


request-Whatever SAMPLE-CLASS ::= { IDENTIFIED BY request-whatever }
-- Information Object Set has 1 entry:
--    [             &id][           &code][           &Type]
-- [1] request-whatever        <no entry>        <no entry> 


respond-Stuff SAMPLE-CLASS ::= { WITH CODE 1 IDENTIFIED BY response-stuff }
-- Information Object Set has 1 entry:
--    [           &id][         &code][         &Type]
-- [1] response-stuff               1      <no entry> 


request-Status SAMPLE-CLASS ::= { TYPE SampleType WITH CODE 2 IDENTIFIED BY request-id }
-- Information Object Set has 1 entry:
--    [       &id][     &code][     &Type]
-- [1] request-id           2  SampleType 


request-Salt SAMPLE-CLASS ::= { TYPE Salt IDENTIFIED BY request-salt }
-- Information Object Set has 1 entry:
--    [         &id][       &code][       &Type]
-- [1] request-salt    <no entry>          Salt 


request-id RELATIVE-OID ::= { 1 1 1 }

request-salt RELATIVE-OID ::= { 1 1 1 }

request-whatever RELATIVE-OID ::= { 1 1 5 }

response-stuff RELATIVE-OID ::= { 2 0 1 }

SampleType ::= SEQUENCE {
    ...
}

Salt ::= SET {
    ...
}

END
