0
在ASN.1中,值赋值语法需要一个标识符,一个类型引用和一个值。如:值赋值中的ASN.1类型引用
age INTEGER ::= 45
或
name UTF8String ::= "bob"
通常,用户定义的类型将是一个更复杂的类型,例如一个序列或与约束的类型。假设我们有序列类型是这样的:
MySequence ::= SEQUENCE {
age INTEGER,
name UTF8String
}
然后我可以创建这样一个值分配:
seq MySequence ::= { 50, "bob" }
但假如从来没有定义MySequence
。在创建价值分配时动态定义类型是否合法?例如,我可以说:
seq SEQUENCE { age INTEGER, name UTF8String } ::= { 50, "bob" }
我意识到这句法是丑陋的,但我只是问,如果这由ASN.1标准允许的。
或者如何在价值分配中即时创建子类型?是否有效的ASN.1语法说:
int INTEGER (0..10) ::= 5