I prefer to think of a message specification as the start of the type definitions in a computer program.
If a message set was to be defined in say Pascal or C one would start from "the leaves" , then one would specify the "minor twigs", then "major twigs", then "the branches" and finally "the stem".
In order to understand what is going on when first reading a message specification it is very convenient that ASN.1 starts "bottom up" with defining the stem, then the branches and so on.
Many tricks can be thought of to ease the understanding of the whole tree structure. "Hypertext-style" comes to my mind:
Message-set ::= CHOICE { mess1 Mess1, mess2 Mess2 ... }
so you click on mess1 and you are brought to its definition.
When the whole tree is described as a series of definitions the reader has to jump around in order to find his own meaning. I guess an ideal case for intro- duction of a "hypertext" solution.
Such a hypertext solution is provided by the ASN.1 pretty-printer available at http://asn1.elibel.tm.fr/asnp/ (check the "-hypertext" option).
This tool is used to pretty-print all the ASN.1 modules freely available in the module database of the ITU-T ASN.1 Project at:
http://www.itu.int/itu-t/asn1/database/
--
Olivier DUBUISSON
france telecom R&D
DTL/TAL - 22307 Lannion Cedex - France t: +33 2 96 05 38 50 - f: +33 2 96 05 39 45 - http://asn1.elibel.tm.fr/
