任意型は、ASN.1で定義可能なすべてのデータ型の共用体として定義されるデータ型です。
任意型に対して、暗示的タグ付けをしてはいけません。そうした場合、想定されるデータ型のなかでどれに対応するものなのか、識別できなくなってしまうからです。
型の記法
任意型 ::= ANY | ANY DEFINED BY 識別子
型の例
AttributeValue ::= ANY
ANYを使用する場合は、仕様を捕捉しないかぎり、その仕様は不完全なものになります。
AlgorithmIdentifier ::= SEQUENCE {
algorithm OBJECT IDENTIFIER,
parameters ANY DEFIND BY algorithm OPTIONAL}
http://www.ietf.org/rfc/rfc3280.txt
http://www.ietf.org/rfc/rfc3280.txt
識別子により、任意型のなかに入れることができるデータ型を規定する手段を提供します。
上記の例では、任意型をとるparametersを宣言していて、ここでとりうる有効なデータ型が、alogrithmの値により、さらに詳細に規定されることを表しています。
値の記法
任意値 ::= 型 値
値の例
MessageContents ::= ANY
myMessage MessageContents ::= PrintableString “Hello World”
値の記法
任意値 ::= 型 値
値の例
MessageContents ::= ANY
myMessage MessageContents ::= PrintableString “Hello World”
0 件のコメント:
コメントを投稿