ASN.1描述信息时使用的方法是分别定义信息所属的类型和值。通过对该信息类型和值的限制,最终实现信息的完整描述。在对新类型定义时,使用下面的BNF格式:
<new-type> ::= <old-type>
如,
MYINT ::= INTEGER
对某类型变量赋值的BNF格式为如下所述,实际是将该类型实例化了。
实例化是本书常出现的概念。实例化实际就是“赋值”,可以是类型的实例化也可以是值的实例化,完成对类型的定义和值的赋值。对于值的实例,获取该实例就是获取具体的值。
<variable-name> <Type> ::= <value>
如:
how-many-books MYINT::= 5
将整数5赋值给变量how-many-books,完成类型和值的赋值。这与C语言的语法基本类似,只是类型和变量名的位置相反而已。
按照BNF的定义,使用MYINT定义某类型同INTEGER定义的效果是一致的。这与C语言中typedef的功能相似,仅为类型定义了一个别名而已。
本章下面的内容主要讲解ASN.1中提供了哪些类型,以及如何使用它们来描述我们需要表示的对象。