构造数据类型指的是由简单数据类型或构造类型组成的。一个不包含构造类型的构造类型一定是由简单数据类型组成的。ASN.1中主要有下面的构造数据类型:列表(SEQUENCE)、列表结构(SEQUENCE OF)、集合(SET)、集合结构(SET OF)、类型选择(CHOICE)。在SNMP中使用SEQUENCE较多。下面对其进行简要的介绍。
SEQUENCE:表示各类型的有序组成,如定义姓名时,以先姓后名的顺序表示;传输时按定义的先后顺序一一传输。这可以类比于C语言中的struct类型。一般和SEQUENCE OF配合使用。
SEQUENCE OF:由SEQUENCE元素组成的列表类型。从SNMP实际应用情况来理解,它定义的是一个表格(多维),而表格中的一行是由SEQUENCE定义的,与SEQUENCE相同的是Universal Tag。
SET:与SEQUENCE类似,不过两者根本的区别是有序还是无序。SET表示各类型是无序组成的集合,在SNMP中没有使用。
SET OF:与SEQUENCE OF类似,不过是无序集合,在SNMP中没有使用。