2013-09-29 34 views
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 

回答

1

是的,这是有效的ASN.1,但传递到ASN.1工具时有用性有限。请随时在免费的在线编译器http://asn1-playground.oss.com上试用。