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 }

-- Class matrix 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 }}

request-Whatever SAMPLE-CLASS ::= { IDENTIFIED BY request-whatever }

respond-Stuff SAMPLE-CLASS ::= { WITH CODE 1 IDENTIFIED BY response-stuff }

request-Status SAMPLE-CLASS ::= { TYPE SampleType WITH CODE 2 IDENTIFIED BY request-id }

request-Salt SAMPLE-CLASS ::= { TYPE Salt IDENTIFIED BY request-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
