-- Module LegacyProtocol-ASN1-Module (X.692:07/2002)
-- See also ITU-T X.692 (03/2002)
-- See also the index of all ASN.1 assignments needed in this document

LegacyProtocol-ASN1-Module {joint-iso-itu-t(2) asn1(1) ecn(4) examples(5)
  asn1-module4(11)} DEFINITIONS AUTOMATIC TAGS ::=
BEGIN

LegacyProtocolMessages ::= SEQUENCE {
  message-id  ENUMERATED {message1, message2, message3},
  messages
    CHOICE {message1  Message1,
            message2  Message2,
            message3  Message3}
}

-- The CHOICE is constrained by the value of message-id. 
Message1 ::= SEQUENCE {
  a       A,
  b-flag  BOOLEAN,
  c-len   INTEGER(0..max-c-len),
  b       B OPTIONAL, -- determined by "b-flag"
  c       C, -- determined by "c-len"
  d       D OPTIONAL
} -- determined by end of PDU

A ::=
  INTEGER
    (0..7) -- Values 5..7 are reserved for future use.  Version 1 systems should treat 5 to 7 as 4.
    

B ::= SEQUENCE {b1  ENUMERATED {e0, e1, e2, e3},
                b2  BOOLEAN,
                b3  INTEGER(0..3)
}

C ::= SEQUENCE (SIZE (0..max-c-len)) OF C-elem

C-elem ::= SEQUENCE {c1  BIT STRING(SIZE (4)),
                     c2  INTEGER(0..1024)
}

D ::= SEQUENCE (SIZE (0..max-d-len)) OF D-elem

D-elem ::= SEQUENCE {
  d1  BOOLEAN,
  d2  ENUMERATED {f0, f1, f2, f3, f4, f5, f6, f7},
  d3  INTEGER(0..7)
}

max-c-len INTEGER ::= 7

max-d-len INTEGER ::= 20

Message2 ::= SEQUENCE {
                       -- something 1 
}

Message3 ::= SEQUENCE {
                       -- something 2 
}

END
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D