2013年1月14日月曜日

データ型 - 任意型


任意型は、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

識別子により、任意型のなかに入れることができるデータ型を規定する手段を提供します。
上記の例では、任意型をとるparametersを宣言していて、ここでとりうる有効なデータ型が、alogrithmの値により、さらに詳細に規定されることを表しています。

値の記法
  任意値 ::= 型 値

値の例

  MessageContents ::= ANY
  myMessage MessageContents ::= PrintableString “Hello World”

0 件のコメント:

コメントを投稿