状況によってデータ型を切り替えたい場合、選択型を使うことができます。選択型は、1つ以上のデータ型の共有体として定義するデータ型です。選択型は共有体の構成要素のどれか一つが選択されるようなデータ型を表わします。
選択型のデータはいくつかの候補要素のなかから一つが選択されるため、選択されたものがどの候補要素であったのかを分かるようにしておく必要があります。このため、例えば同じデータ型の候補要素がある場合には、明示的なタグ付けにより識別可能にしておく必要があります。
また、選択型に対して、暗示的タグ付けをしてはいけません。
型の記法
選択型 ::= CHOICE { 代替型リスト }
代替型リスト ::= 名前付き型 | 代替型リスト , 名前付き型
名前付き型 ::= 識別子 型 | 型 | 参照選択型
型の例
CertificateChoices ::= CHOICE {
certificate Certificate, -- See X.509
extendedCertificate [0] IMPLICIT ExtendedCertificate, -- Obsolete
attrCert [1] IMPLICIT AttributeCertificate } -- See X.509 and X9.57
値の記法
名前付き値 ::= 識別子 : 値
値の例
FileIdentifier ::= CHOICE {
relativeName [0] IMPLICIT VisibleString,
absoluteName [1] IMPLICIT VisibileString,
serialNumber [2] IMPLICIT INTEGER }
myFile FileIdentifier ::= relativeName:”ASN1”
0 件のコメント:
コメントを投稿