在ASN.1中,值分配语法需要标识符,类型引用和值。如:
age INTEGER ::= 45
或
name UTF8String ::= "bob"
通常,用户定义的类型是更复杂的类型,例如SEQUENCE或具有约束的类型。假设我们有这样的SEQUENCE类型:
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
答案 0 :(得分:1)
是的,这是有效的ASN.1,但在传递给ASN.1工具时有用性有限。请随意在http://asn1-playground.oss.com的免费在线编译器中尝试此操作。