ASN.1 Complete

ASN.1-based application specifications consist mainly of type definitions as illustrated in Chapter 2, but these are normally (and are formally required to be) grouped into collections called modules.
This chapter
introduces the module structure,
describes the form of module headers,
shows how to identify modules, and
describes how to export and import type definitions between modules.
The chapter also discusses
some issues of publication format for a complete application specification, and
the importance of making machine-readable copy of the ASN.1 parts available.
Part of the definition of a module is the establishment of
a tagging environment, and
an extensibility environment
for the type-notations appearing in that specification. The meaning and importance of these terms is discussed in this chapter, with final details in Section II.
The example we gave in Figure 2.1 had one top-level type ("Order-for-stock"), and a number of supporting types, most of which we left incomplete. We will still leave the supporting types incomplete (and, indeed, will use three lines of four dots for the body of all the types to avoid repetition), but will now otherwise turn the example in Figure 2.1 into a complete ASN.1 specification that follows the rules of the language, and that could be fed into an ASN.1 compiler tool.
The complete specification is shown in Figure 3.1.
This example forms what is called an ASN.1 module