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