其他使用场景
ASN1其它使用场景 |
是否支持 |
示例 |
备注 |
---|---|---|---|
赋值操作 |
支持 |
MyType ::= INTEGER MyValue MyType ::= 10 |
- |
别名 |
支持 |
MyInt1 ::= INTEGER(0..128) MyInt2 ::= MyInt1 MyInt3 ::= MyInt2 |
- |
IMPORTS |
支持 |
-- 定义一个模块A A DEFINITIONS::=BEGIN MyType ::= INTEGER END -- 定义一个模块B,引入了模块A的MyType B DEFINITIONS ::= BEGIN IMPORTS MyType FROM A; MyOtherType ::= MyType END |
不支持EXPORTS,默认导出所有类型。 |
递归定义 |
不支持 |
RecursiveSeq ::= SEQUENCE {data INTEGER(0..128), next RecursiveSeq} |
- |
环形引用 |
不支持 |
CircularSequence1 ::= SEQUENCE {name OCTET STRING, cs2 CircularSequence2 OPTIONAL} CircularSequence2 ::= SEQUENCE {cs 1 CircularSequence1} |
- |
内部类型约束 |
支持 |
InnerTypeCstrType ::= SEQUENCE {a OCTET STRING(SIZE(1..3)),b INTEGER(10..20),c BOOLEAN OPTIONAL}InnerTypeCstrSeqType ::= InnerTypeCstrType (WITH COMPONENTS {a ABSENT,b (15..20) PRESENT,c OPTIONAL}) |
带有内部类型约束的类型将被当作引用类型使用,约束不生效 |
内容约束 |
支持 |
ContentCstrType ::= SEQUENCE { data OCTET STRING (CONTAINING ContentCstrSeqType) }ContentCstrBoolType ::= BOOLEAN |
带有内容约束的成员,其在编解码过程中,内容不会被校验 |