>サイトトップへ >このカテゴリの一覧へ

X5603-1990

1 

目次

ページ

0.

  序  文

1

1.

  適用範囲

3

2.

  引用規格

3

3.

  用語の定義

4

4.

  略語

7

5.

  この規格で使用する記法

7

6.

  ASN.1 記法の使用

9

第 1 章  ASN.1 記法の仕様 10

7.

  ASN.1 文字集合 10

8.

  ASN.1 の項目  11

9.

  モジュール定義 15

10.

  型定義及び値定義の参照 16

11.

  型及び値の割当て 16

12.

  型及び値の定義 16

13.

  論理型の記法 18

14.

  整数型の記法 19

15.

  ビット列型の記法 19

16.

  オクテット列型の記法 20

17.

  ヌル型の記法 21

18.

  順序列型の記法 21

19.

  単一型順序列型の記法 22

20.

  集合型の記法 22

21.

  単一型集合型の記法 23

22.

  選択型の記法 23

23.

  参照選択型の記法 25

24.

  タグ付き型の記法 25

25.

  任意型の記法 26

26.

  オブジェクト識別子型の記法 26

27.

  文字列型の記法 28

28.

  第 3 章で定義する型の記法 28

第 2 章  文字列型 28

29.

  文字列型の定義 28

第 3 章  有用な定義 31

30.

  一般化時刻 31

31.

  UTC 時刻

32


X5603-1990

目次

2 

ページ

32.

  外部型

33

33.

  オブジェクト記述子型

35

附属書 A(規定)  マクロ記法

36

附属書 B(規定)  オブジェクト識別子構成要素値の ISO による割当て

42

附属書 C(規定)  オブジェクト識別子構成要素値の CCITT  による割当て

44

附属書 D(規定)  オブジェクト識別

46

附属書 E(参考)  基本記法及び日本語拡張記法の例

47

附属書 F(参考)  ASN.1 記法の要約

69

用語索引

76

参考  ASN.1 の拡張

80


日本工業規格

JIS

 X5603

-1990

開放型システム間相互接続の

抽象構文記法 1 (ASN.1)  仕様

Open Systems Interconnection

−  Specification of Abstract Syntax Notation One (ASN.1)

日本工業規格としてのまえがき 

この規格は,1987 年第 1 版として発行された ISO 8824 [Information processing systems−Open Systems

Interconnection

−Specification of Abstract Syntax Notation One (ASN.1)]  を翻訳し,原国際規格の様式によって

作成した日本工業規格であるが,規定内容の一部を我が国の実状に即して変更した。

この規格は,ASN.1 記法中に日本語文字を使用可能とするために,国際規格に対し上位互換性のある拡張

を行っている。拡張を行った部分については,本体中において,基本記法(国際規格準拠部分)と日本語

拡張(国際規格拡張部分)を併記する形で分離可能としている。本体中特に基本記法,日本語拡張記法を

区別していない部分については,両記法について共通の規定とする。

なお,この規格で下線(点線)を施してある箇所は,原国際規格の規定内容を変更した事項又は原国際規

格にはない事項である。

0.

序  文  開放型システム間相互接続の基本参照モデル(JIS X 5003 参照)の下位層では,サービスプ

リミティブの利用者データパラメタを,一連のオクテットの 2 進数値として示している。

プレゼンテーション層では,利用者データパラメタの性質が下位層とは異なる。応用層の規格は,各種

の文字集合からの文字列を含む非常に複雑な型の値を取り扱うような,プレゼンテーションサービス利用

者データを必要とする(ISO 8822 参照)

。転送するこれらの値を規定するため,応用層の規格は,値の表

現に依存しない明確な記法を必要とする。この記法は,応用層の値を転送するセション層オクテットの値

転送構文という。)を決定する符号化規則という一つ以上のアルゴリズムの仕様によって補完される。

プレゼンテーション層プロトコル(ISO 8823 参照)は,どの転送構文を使用するかについて折衝を行うこ

とができる。

値を規定することの目的は,ある値と他の値を区別することにある。値を他の値から区別する集合を型

といい,一つの特定のインスタンスをその型の値という。一般的に,値又は型は,幾つかの単純な値又は

型から構成され,値又は型の間には関係があると考えられる。

データ型という用語は,型の同義語とする。

値の表現(紙上では記号で表現し,通信回線上ではビットで表現する。

)を正しく解釈するには,表現さ

れている値の型を(通常はコンテキストから)知る必要がある。したがって,型の識別は,この規格の重

要な部分となる。

複雑な型の定義には,一般的に,単純な型の可能な値を全部定義して少数の

単純型を定義し,更に,こ

れらの単純型を各種の方法で組み合わせる技法をとる。新しい型を定義する方法を次に示す。


2

X5603-1990

(a)

既存の型の(順序付き)リストが与えられた場合,既存の各型から一つの値をとり,値の(順序付

き)列として値を作ることができる。このようにして得られたすべての可能な値の集まりが新しい

型となる(リスト内の既存の方がすべて異なっている場合には,この機構を拡張して,幾つかの値

をリストから省略することができる。

(b)

(異なる)既存の値のリストが与えられた場合,既存の各型から一つの値をとり,値の(順序付け

のない)集合として値を作ることができる。このようにして得られたすべての可能な値の集まりが

新しい型となる(ここでも機構を拡張して,幾つかの値を省略することができる。

(c)

単一の既存の型が与えられた場合,既存の型の値の 0 個以上の(順序付き)列又は(順序付けのな

い)集合として値を作ることができる。このようにして得られたすべての可能な値の(無限の)集

まりが,新しい型となる。

(d)

(異なる)型のリストが与えられた場合,これらの型から値を選択することができる。このように

して得られたすべての可能な値の集合が新しい型となる。

(e)

型が与えられた場合,値の構造又は順序関係を使用して,その型の部分集合として新しい型を作る

ことができる。

このようにして定義した型を

構造型という。

タグは,この規格で規定する記法を使用して定義する各型に割り当てる。タグは,この規格又は記法の

利用者が定義する。

通常,同じタグを幾つかの異なる型に割り当て,タグが使用されるコンテキストによって特定の型を識

別する。

記法の利用者は,単一の型が二つの場所に出現するときに別のタグを割り当て,異なる二つの型を作っ

てもよい。これは,(d)のような状況において,どの選択を行ったかを区別する必要がある場合に行う。

この記法では,四つのタグのクラスを規定する。

第 1 のタグのクラスは,

はん(汎)用クラスとする。はん用クラスのタグの使用方法はこの規格で規定

し,各タグは次のいずれかとする。

(a)

単一の型に割り当てる。

(b)

構造機構に割り当てる。

第 2 のタグのクラスは,

応用クラスとする。応用クラスのタグは,他の規格によって型に割り当てる。

一つの規格では,一つの応用クラスのタグを一つの型だけに割り当てる。

第 3 のクラスのタグは,

私用クラスとする。私用クラスのタグについては規定しない。このタグの使用

は,利用者特有のものとする。

最後のクラスのタグは,

コンテキスト特定クラスとする。コンテキスト特定クラスのタグは,自由に割

り当て,タグを使用するコンテキストに従って解釈する。

タグは,主に機械が使用する。幾つかの型を別のものとする必要がある場合には,型に別のタグを割り

当てて表現する。したがって,タグの割当ては,この記法の使用上,重要な部分となる。

備考1.  この規格の記法で定義するすべての型は,タグをもつ。各型について,記法の使用者は,別

のタグをもつ新しい型を定義することができる。

2.

符号化規則は,明示的又は暗黙的に,型の値の表現とともに型のタグを常に定めている。タ

グが実際の型をはっきりと判別できるように使用しなければならない。

この規格は,複雑な型の定義を可能にするとともにこれらの型の値を指定するための記法を規定する。

この規定は,転送の際にこの型のインスタンスをオクテットの順序列によって表現する方法は定めない。


3

X5603-1990

この機能を備えた記法を,

抽象構文定義の記法という。

この規格の目的は,

抽象構文記法 1 (ASN.1)  という抽象構文定義のための記法を規定することにある。

抽象構文記法 1 は,プロトコルを定義するための準形式的な道具として使用される。この記法を使用し

ても,必ずしも仕様が明確になるとは限らない。仕様が不明確でないことを保証することは,この記法を

使用する利用者の責任とする。

この規格は,

符号化規則を規定する他の規格と共に使用する。ASN.1 で定義する型の値に符号化規則を

適用すると,転送中のその型の値の表現の完全な仕様(転送構文)が得られる。

この規格は,日本語拡張記法の部分を除き,CCITT

勧告 X.409 (1984)  と技術的に整合している。

この規格の 7.

28.では,ASN.1 で使用する単純型を定義し,単純型を参照して,構造型を定義するため

に使用する記法を規定する。7.

28.では,ASN.1 を使用して定義する型の値を指定するための記法も規定

する。

この規格の 29.では,

文字集合についての符号化規則を適用してオクテット列型と等しくすることができ

る型(文字列型)を定義する。

この規格の 30.

33.では,追加の符号化規則を必要としない幾つかの有用な構造型を定義する。

附属書 A(規定)は,基本の ASN.1 記法を拡張する記法を規定する。これをマクロ機能という。

附属書 B(規定)は,ISO 関連オブジェクト識別子木を定義する。

附属書 C(規定)は,CCITT 関連オブジェクト識別子木を定義する。

附属書 D(規定)は,ISO 及び CCITT の共通使用のためのオブジェクト識別子木を定義する。

附属書 E(参考)は,ASN.1 記法使用上の例を示す。

附属書 F(参考)は,5.の記法を使用した ASN.1 の要約を示す。

主な用語の索引を,この規格の末尾に示す。

日本語拡張記法の部分を除き,この規格の本体及び

附属書 Bは,ISO と CCITT の合意に基づいてい

る。

1.

適用範囲  この規格は,抽象構文記法 1(以下,ASN1 という。)という抽象構文定義の記法を規定す

る。

この規格は,幾つかの単純型及びそのタグを定義し,これらの型を参照する記法及びこれらの型の値を

指定する記法を規定する。

この規格は,基本的な型から新しい型を作る機構を定義する。これらの構造型を定義する記法,型にタ

グを割り当てる記法及びこれらの型の値を指定する記法を規定する。

この規格は,ASN.1 において使用する文字集合を他の規格を参照して定義する。この規格の

第 章では,

ASN.1

の利用者が参照できる幾つかの有用型を ASN.1 を使用して定義する。

ASN.1

記法は,情報の抽象構文を定義する必要がある場合に,適用することができる。この記法は,主

として応用プロトコル規格に適用するが,他の規格への適用を妨げるものではない。

また,ASN.1 記法は,ASN.1 の単純型,構造型,文字列型及び有用型の符号化規則を定義する他のプレ

ゼンテーション層規格からも参照される。

2.

引用規格  この規格の引用規格は,次のとおりとする。

JIS X 0208

  情報交換用漢字符号系

ISO 2014

  Writing of calendar dates in all-numeric form


4

X5603-1990

ISO 2375

  Data processing−Procedure for registration of escape sequences

ISO 3166

  Codes for the representation of names of countries

備考  JIS X 0304(国名コード)−1988 が,この国際規格と技術的に一致している。

ISO 3307

  Information interchange−Representations of time of day

備考  JIS X 0301[日付の表示(コード)]−1977 が,この国際規格と技術的に一致している。

ISO 4031

  Information interchange−Representation of local time differentials

備考  JIS X 0302[時刻の表示(コード)]−1977 が,この国際規格と技術的に一致している。

ISO 6523

  Data interchange−Structures for the identification of organizations

ISO 7498

  Information processing systems−Open Systems Interconnection−Basic Reference Model

備考  JIS X 5003(開放型システム間相互接続の基本参照モデル)−1987 が,この国際規格と技術

的に一致している。

ISO 8822

  Information processing systems − Open Systems Interconnection − Connection oriented

presentation service definition

ISO 8823

  Information processing systems − Open Systems Interconnection − Connection oriented

presentation protocol specification

ISO 8825

  Information processing systems−Open Systems Interconnection−Specification of Basic Encoding

Rules for Abstract Syntax Notation ONE (ASN.1)

備考  JIS X 5604[開放型システム間相互接続の抽象構文記法 1 (ASN.1)  の基本符号化規則仕様]

−1990 が,この国際規格と技術的に一致している。

CCITT X.409 (1984)

  Message handling systems : presentation transfer syntax and notation

3.

用語の定義  この規格で用いる主な用語は,JIS X 5003 によるほか,次のとおりとする。

3.1

  (value)    値集合の個別要素。

3.2

  (type)    値の名前付き集合。

3.3

単純型  (simple type)    その値の集合を直接指定して定義する型。

3.4

構造型  (structured type)    他の型を一つ以上参照することによって定義する型。

3.5

構成要素型  (component type)    構造型を定義する場合,参照する型の一つ。

3.6

タグ  (tag)    ASN.1 のすべての型に伴う型表示。

3.7

タグ付け  (tagging)    型の既存のタグを指定のタグと置き換えること。

3.8

ASN.1

文字集合  (ASN.1 character set)    ASN.1 記法で使用する文字の集合(7.参照)。

3.9

項目  (items)    ASN.1 文字集合の文字からなる名前付き順序列(8.参照)。ASN.1 記法を作るために

使用する。

3.10

型(又は値)参照名  [type (or value) reference name]    あるコンテキストにおいて,型(又は値)と

一意に関連した名前。

備考  型に割り当てた参照名のうち,この規格で定義したものははん用的に使用できる。他の規格で

定義した参照名は,その規格の定義が適用されるコンテキストでだけ使用できる。

3.11  ASN.1

符号化規則  (ASN.1 encoding rules)    転送中における ASN.1 の型の値の表現を規定する規則。

ASN.1

符号化規則によって,受信者は転送される情報を ASN.1 の型の特定の値として識別することがで

きる。

3.12

文字列型  (character string type)    定義した文字集合の文字の列を値としてもつ型。


5

X5603-1990

3.13

論理型 (boolean type)    二つの別の値をもつ単純型。

3.14

真 (true)    論理型の値の一つ。

3.15

  (false)    論理型の真でないもう一つの値。

3.16

整数型  (integer type)    0 を含む正及び負の完全数(整数)を値としてもつ単純型。

備考  特定の符号化規則は,整数の範囲を限定するが,この場合,ASN.1 の利用者に影響しないよう

に選択する。しかし,ASN.1 の利用者は,注釈によって更に限定した範囲を指定してもよい。

3.17

ビット列型  (bitstring type)    0 個以上のビットの順序列を値としてもつ単純型。

備考 ASN.1 符号化規則は,ビット列におけるビット数を限定しない。しかし,ASN.1 の利用者は,

注釈によって更にビット数の最小又は最大を指定してもよい。

3.18

オクテット列型  (octetstring type)    0 個以上のオクテットの順序列を値としてもつ単純型。各オクテ

ットは,8 ビットの順序列とする。

備考 ASN.1 符号化規則は,オクテット列におけるオクテット数を限定しない。しかし,ASN.1 の利

用者は,注釈によって更にオクテットの数の最小又は最大を指定してもよい。

3.19

ヌル型  (null type)    ヌルという単一の値からなる単純型。

備考  幾つかの代替値が可能であるが,そのどれもが適用されない場合,通常,ヌル値を使用する。

3.20

順序列型  (sequence type)    要素が固定した順序付きの型のリストを参照して定義する構造型。ある

要素を任意選択として宣言してもよい。新しい型の値は,各構成要素型から一つの値をとった値の順序付

きリストとする。

備考  構成要素型を任意選択として宣言した場合には,新しい型の値は,その構成要素型の値を含ん

でいなくてもよい。

3.21

単一型順序列型  (sequence-of type)    単一の既存の型を参照して定義する構造型。新しい型の値は,

既存の型の値の 0 個以上の順序付きリストとする。

備考 ASN.1 符号化規則は,単一型順序列値における値の個数を限定しない。しかし,ASN.1 の利用

者は,注釈によって更に値の個数の最小又は最大を指定してもよい。

3.22

集合型  (set type)    要素が固定した順序付けのない型のリストを参照して定義する構造型。ある要素

を任意選択として宣言してもよい。新しい型の値は,各構成要素型から一つの値をとった,異なった型の

値の順序付けのないリストとする。

備考  構成要素型を任意選択として宣言した場合には,新しい型は,その構成要素型の値を含んでい

なくてもよい。

3.23

単一型集合型  (set-of type)    単一の既存の型を参照して定義する構造型。新しい型の値は,既存の

型の値の 0 個以上の順序付けのないリストとする。

備考 ASN.1 符号化規則は,単一型集合値における値の個数を限定しない。しかし,ASN.1 の利用者

は,注釈によって更に値の個数の最小又は最大を指定してもよいし,それぞれの値が異なるこ

とを要求してもよい。

3.24

タグ付き型  (tagged type)    単一の既存の型及びタグを参照して定義する型。新しい型は,既存の型

と同じ構造及び性質をもつが,既存の型とは区別する。

3.25

選択型  (choice type)    固定した順序付けのない異なる型のリストを参照して定義する構造型。新し

い型の値は,一つの構成要素型の値とする。

3.26

参照選択型  (selection type)    選択型の構成要素型を参照して定義する型。


6

X5603-1990

3.27

任意型  (any type)    構成要素型を指定しないが,ASN.1 を使用して定義できる型の集合に限定され

る選択型。

3.28

外部型  (extemal type)    外部型の特質からは値を予測できないが,符号化された値から予測が可能と

なる型。その値は,ASN.1 を用いて記述しなくてもよい。その符号化は,ASN.1 符号化規則に従っていな

くてもよい。

3.29

情報オブジェクト (information object)    通信インスタンスでその使用を識別するために名前を必要

とする定義,情報中の明確に定義された部分又は仕様。

3.30

オブジェクト識別子  (object identifier)    情報オブジェクトに関連付けられた値(他のこのような値

のすべてと区別できるもの)

3.31

オブジェクト識別子型  (object identifier type)    値がこの規格の規則に従って割り当てられたすべて

のオブジェクト識別子の集合である型。

備考  この規格の規則では,種々の機関が独立してオブジェクト識別子を情報オブジェクトに関連付

けることを認めている。

3.32

オブジェクト記述子型  (object descriptor type)    その値として,可読文字列形式で情報オブジェクト

の簡潔な記述を提供する型。

備考  オブジェクト記述子の値は.通常は,単一の情報オブジェクトに関連する。オブジェクト識別

子の値だけが,情報オブジェクトを明確に識別する。

3.33

再帰的定義  (recursive definitions)    構造を定義する前に,その構造で使用するすべての型を定義す

るように順序付けることができない ASN.1 定義の集合。

備考 ASN.1 においては再帰的定義を行ってもよい。再帰的定義の結果としての型の値を有限の表現

とすることは,記法の利用者の責任とする。

3.34

モジュール  (module)    型及び値定義のために ASN.1 記法を使用している一つ以上のインスタンス

であって,ASN.1 のモジュール記法(9.参照)を使用してまとめたもの。

3.35

生成規則  (production)    ASN.1 を規定するために使用する形式記述の一部であって,許容される項

目の順序列に名前を割り当てられたもの。

その名前は,

許容される新しい順序列の集合を定義する場合に,

その名前付けられた順序列を参照するために使用できる。

3.36

協定世界時  [Coordinated Universal Time (UTC)]    標準周波数及び時報の協定普及の基礎となる,国

際時報局が維持している時間尺度。UTC 時ともいう。

3.37

ASN.1 の)利用者  [user (of ASN.1)]    ASN.1 を用いて特定の情報の抽象構文を定義する個人又は

組織。

備考  この定義は,国際無線諮問委員会 (CCIR) の勧告 460-2 による。CCIR は,協定世界時の頭文字

を UTC と定義している。

この規格は,ISO 8822 で定義された次の用語を使用する。

(a)

プレゼンテーションデータ値

(b)

抽象構文

(c)

抽象構文名

(d)

転送構文名

この規格は,ISO 6523 で定義された次の用語も使用する。

(a)

発行機関

(b)

組織コード


7

X5603-1990

(c)

データコード国際標示子

4.

略語  この規格では,次の略語を使用する。

(1)  ASN.1

  抽象構文記法 1 (Abstract Syntax Notation One)

(2)  UTC

時  協定世界時 (Coordinated Universal Time)

(3)  ICD

  データコード国際標示子  (International Code Designator)

5.

この規格で使用する記法  ASN.1 記法は,7.で規定する ASN.1 文字集合の文字順序列で構成する。

ASN.1

記法は,項目に分類した ASN.1 文字集合に含まれる文字を使用する。8.で ASN.1 項目を作るすべ

ての文字順序列を規定し,各項目を命名する。

9.

以降では,有効な ASN.1 記法のインスタンスを作る項目の順序列の集まり及び各順序列の意味を規定

することによって,ASN.1 記法を規定する。これらの集まりを規定するため,この規格は,5.1

5.8 で定

義する形式記法を使用する。

5.1

生成規則  生成規則は,次による。

(1) ASN.1

順序列の新しい集まりは,生成規則によって定義する。これは,この規格で定義する順序列の

集まりの名前を使用し,次のいずれかによって,新しい順序列の集まりを作る。

(a)

新しい順序列の集まりを,元の集まりに含まれる任意の順序列から構成する。

(b)

新しい順序列の集まりを,元の集まりのそれぞれから順序列を一つずつ取り出し,それらの順序列

を規定した順序に並べたものから構成する。

(2)

生成規則は,次の三つの部分を順番に並べて構成する。これらは,複数行にまたがって記述してもよ

い。

(a)

新しい順序列の集まりの名前。

(b)

文字

::=

(c)

次の文字で区切った 5.2 で定義する一つ以上の順序列の代替集まり。

(3)

順序列が一つ以上の代替集まりにある場合,その順序列は新しい集まりにも含まれる。新しい集まり

は,(2)(a)の名前によって参照される。

備考  同じ順序列が二つ以上の代替集まりにあることによって生じる意味上のあいまいさは、ASN.1

順序列全体の中の他の部分によって解決される。

5.2

代替集まり  5.1(2)(c)の“一つ以上の代替集まり”における順序列の各々の代替集まりは,名前のリ

ストによって指定する。各名前は,項目の名前又はこの規格の生成規則によって定義する順序列の集まり

の名前のいずれかとする。

代替集まりによって定義する順序列の集まりは,最初の名前と結び付いた順序列(又は項目)のうちの

一つを取り,次に二番目の名前と結び付いた順序列(又は項目)のうちの一つを取って一番目のものと組

み合わせ(一番目のものの後に続ける。

,更に三番目の名前と結び付いた順序列(又は項目)のうちの一

つを取って一番目及び二番目のものと組み合わせ(一番目及び二番目のものの後に続ける。

,このように

して代替集まりの最後の名前(又は項目)までを含めて得られたすべての順序列から構成する。

5.3

生成規則の例  生成規則の例を次に示す。

_ビット列値::=2 進列|16 進列|{_識別子リスト}


8

X5603-1990

これは,名前“_ビット列値”を次の順序列に関連付ける生成規則とする。

備考  アンダラインは,基本記法でいう大文字として扱う(7.1 参照)。

(a)

任意の 2 進列(一つの項目)

(b)

任意の 16 進列(一つの項目)

(c) “{”

及び “}” でくくった“_識別子リスト”に結び付いた任意の順序列。

備考 “{” 及び “}” は単一の文字“{”  及び “}” からなる項目名である(8.参照)。

この例の“_識別子リスト”は,

“_ビット列値”を定義する生成規則の前又は後で,他の生成規則によ

って定義されているものとする。

5.4

配置  この規格では,見やすさを考慮し,生成規則内で空行を使用しない。

5.5

再帰  この規格の生成規則は,多くの場合,再帰的とする。この場合,生成規則は,新しい順序列

が生成できなくなるまで,連続して適用される。

備考  多くの場合,こうした再適用のため,許容される順序列の無限の集まりが作られる。順序列の

なかには,それ自体,無限のものがあっても,これを誤りとしない。

5.6

順序列の集まりの参照  この規格では,生成規則の最初の名前(::=の前)によって順序列の集

まりを参照する。名前が生成規則の一部として現れる場合を除き,名前は左右のダブル引用符  (“  ”)  で

くくり,区別する。

5.7

項目の参照  この規格は,項目の名前によって項目を参照する。名前が生成規則の一部として現れ

る場合を除き,名前は左右のダブル引用符  (“  ”)  でくくり,区別する。

5.8

タグ  タグは,そのクラス及びクラス内の番号によって指定する。クラスは,次のいずれかとする。

はん用 (universal)

応用 (application)

私用 (private)

コンテキスト特定 (context-specific)

番号は,負でない 10 進の整数とする。

ASN.1

の利用者が割り当てるタグに対する制約については,24.に規定する。

はん用クラスのタグは,構造型では最上位レベルの構造をタグから導き出すことができるように,単純

型では型をタグから導き出すことができるように割り当てる。

表 に,この規格で規定するはん用クラス

のタグ割当てを示す。

備考  将来の追加割当てのため,はん用クラスのタグの幾つかを保留している。


9

X5603-1990

表 1  はん用クラスのタグの割当て

UNIVERSAL 1

論理型

UNIVERSAL 2

整数型

UNIVERSAL 3

ビット列型

UNIVERSAL 4

オクテット列型

UNIVERSAL 5

ヌル型

UNIVERSAL 6

オブジェクト識別子型

UNIVERSAL 7

オブジェクト記述子型

UNIVERSAL 8

外部型

UNIVERSAL 9

∼15

将来の追加割当てのため保留

UNIVERSAL 16

順序列型及び単一型順序列型

UNIVERSAL 17

集合型及び単一型集合型

UNIVERSAL 18

∼22, 25∼27

文字列型

UNIVERSAL 23

∼24

時刻型

UNIVERSAL 28

将来の追加割当てのため保留

6.

ASN.1

記法の使用

6.1

型定義のための ASN.1 記法は,

“_型”とする(12.1 参照)

6.2

型の値のための ASN.1 記法は,

“_値”とする(12.6 参照)

備考  一般に,未知の型の値記法を解釈することは不可能である。

6.3

型を型参照名に割り当てるための ASN.1 記法は,

“_型割当て”とする(11.1 参照)

6.4

値を値参照名に割り当てるための ASN.1 記法は,

“_値割当て”とする(11.2 参照)

6.5

記法“_型割当て”及び記法“_値割当て”は,記法“_モジュール定義”だけで使用する(9.1 

照)


10

X5603-1990

第 章  ASN.1 記法の仕様 

7.

ASN.1

文字集合

7.1 

基本記法)

ASN.1

の項目は,7.2 及び 7.3 に規定するものを除き,

表 に示す文字の順序列から構成する。

表 2  ASN.1 文字

A

から Z

a

から Z

0

から 9

:.=  ,  {  }  <  .

(  )  [  ]  −  ’  ”

備考1.  マクロ記法では,このほかに文字>及び|を使用する(附

属書 参照)。

2.  ISO

では,各国標準化機関が ASN.1 国際規格と等価な規

格を制定する場合,次の項目を表現するために,文字種を
追加してよいと定めている。

型参照  (8.2.1)

識別子  (8.3) 
値参照  (8.4) 
モジュール参照  (8.5)

マクロ参照

(附属書 A  A.3.1

生成規則参照

(附属書 A  A.3.2

局所型参照

(附属書 A  A.3.3

局所値参照

(附属書 A  A.3.4

任意列

(附属書 A  A.3.7

大文字と小文字の区別のない言語に適用するために文

字種を追加する場合,ASN.1 項目の先頭文字を大文字又は
小文字にすることによって行う構文的区別は,他の方法に
よって行うと規定している。

日本語拡張記法)

ASN.1

の項目は,

基本記法)で規定する文字,及び JIS X 0208 で規定する図形文字のうち,次の種類

の文字の順序列から構成する。

(1)

平仮名

(2)

片仮名

(3)

漢字(第 1 水準及び第 2 水準)

(4)

長音記号

(5)

アンダライン

備考1.  JIS X 0208に規定する文字のうち(1)∼(5)以外の文字は,使用しない。

2.

(1)

∼(4)の文字は,基本記法でいう小文字として扱う。(5)の文字は,基本記法でいう大文字と

して扱う。

7.2

文字列型の値を規定する場合には,29.で定義する文字集合のすべての文字を引用符  (”)  でくくっ

て使用することができる(8.11 参照)

7.3

このほかの文字は,

“注釈”項目で使用することができる(8.6 参照)

7.4

字体,大きさ,色,輝度などの表示特性が異なっても同一の文字とする。


11

X5603-1990

7.5

大文字と小文字は,区別する。

8.

ASN.1

の項目

8.1

総  則

8.1.1

8.2

8.14 は,項目の名前及びその項目を構成する文字順序列の定義を規定する。

備考  附属書 に,マクロ記法で使用する補助項目を規定する。

8.1.2

8.2

8.14 で規定する項目は,途中に改行又は間隔を含まないものとする。ただし,

“注釈”項目は,

間隔を含んでもよい。

8.1.3

行の長さに制限はない。

8.1.4

この規格(ASN.1 記法)によって規定する順序列中の項目は,それぞれの項目を一つ以上の間隔又

は空行で区切ることもでき,複数行に書くこともできる。

8.1.5

後続の項目の最初の文字が,前の項目の終わりに使用することを許された文字である場合には,項

目は後続の項目と間隔で区切るか又は別の行に書く。

8.2

型参照  これの項目名は,次のとおりとする。

型参照

8.2.1 

基本記法)

“型参照”は,一つ以上の英字,数字及びハイフンで構成する。最初の文字は,英字の大文字とする。

ハイフンを最後の文字としてはならない。ハイフンの直後にもう一つのハイフンを置くことはできない。

日本語拡張記法)

“型参照”は,一つ以上の英字,数字,平仮名,片仮名,漢字(第 1 水準及び第 2 水準)

,長音記号,ア

ンダライン及びハイフンで構成する。最初の文字は,英字の大文字又はアンダラインとする。ハイフンを

最後の文字としてはならない。ハイフンの直後にもう一つのハイフンを置くことはできない。

備考  ハイフンに関する規則は,後続する注釈との混同を避けるために設定した。

8.2.2

“型参照”では,

表 に示すキーワードを使用できない。

備考  附属書 の A.2.9 に,マクロ定義における付加キーワードを規定する。


12

X5603-1990

表 3  キーワード

BOOLEAN

INTEGER

BIT

STRING

OCTET

NULL

SEQUENCE

OF

SET

IMPLICIT

CHOICE

ANY

EXTERNAL

OBJECT

IDENTIFIER

OPTIONAL

DEFAULT

COMPONENTS

TRUE

FALSE

BEGIN

END

8.3

識別子  これの項目名は,次のとおりとする。

識別子

基本記法)

“識別子”は,一つ以上の英字,数字及びハイフンで構成する。最初の文字は,英字の小文字とする。

ハイフンを最後の文字としてはならない。ハイフンの直後にもう一つのハイフンを置くことはできない。

日本語拡張記法)

“識別子”は,一つ以上の英字,数字,平仮名,片仮名,漢字(第 1 水準及び第 2 水準),長音記号,ア

ンダライン及びハイフンで構成する。最初の文字は,英字の小文字,平仮名,片仮名又は漢字(第 1 水準

及び第 2 水準)のいずれかとする。ハイフンを最後の文字としてはならない。ハイフンの直後にもう一つ

のハイフンを置くことはできない。

備考  ハイフンに関する規則は,後続する注釈との混同を避けるために設定した。

8.4

値参照  これの項目名は,次のとおりとする。

値参照

“値参照”は,8.3 で“識別子”について規定した文字の順序列で構成する。この記法を使用したインス

タンスを解析する際に,

“値参照”は,そのコンテキストによって“識別子”と区別する。

8.5

モジュール参照  これの項目名は,次のとおりとする。

モジュール参照

“モジュール参照”は,8.2 で“型参照”について規定した文字の順序列で構成する。この記法を使用し

たインスタンスを解析する際に,

“モジュール参照”は,そのコンテキストによって“型参照”と区別する。

8.6

注  釈  これの項目名は,次のとおりとする。

注  釈


13

X5603-1990

8.6.1

“注釈”は,ASN.1 記法の定義では参照しない。注釈は,ASN.1 の項目の間に入れることができる

が,ASN.1 としては意味をもたない。

8.6.2

“注釈”は,最初の二つのハイフンの組から始まり,行内のその次の二つのハイフンの組又は行末

のいずれかによって終わる。注釈は,先頭の二つのハイフンの組及び,最後の二つのハイフンの組以外に

二つの連続したハイフンを含むことはできない。注釈では,この規格で定義した文字集合に含まれない文

字を使用してもよい(7.3 参照)

8.7

    目  これの項目名は,次のとおりとする。

“空”は,文字を含まない。この項目は 5.の記法において,順序列の代替集まりを規定している場合,

代替集まりが存在しなくてもよいことを示すために使用する。

8.8

数字項目  これの項目名は,次のとおりとする。

数  字

“数字”は,一つ以上の数字で構成する。

”数字”が一つの場合を除き,最初の数字が 0 であってはなら

ない。

8.9

2

進列項目  これの項目名は,次のとおりとする。

2

進列

“2 進列”は,0 個以上の 0 又は 1 の並びをアポストロフィー(')でくくり,その後に B を付けて構成す

る。

例  '01101100' B

8.10  16

進列項目  これの項目名は,次のとおりとする。

16

進列

8.10.1

“16 進列”は,0 個以上の次の文字の並びをアポストロフィー(')でくくり,その後に H を付けて構

成する。

A

  B  C  D  E  F  0  1  2  3  4  5  6  7  8  9

例 'A  B  0  1  9  6  ' H

8.10.2

各文字は,16 進表現を使用して,半オクテット(4 ビット)の値を表すために使用する。

8.11

文字列項目  これの項目名は,次のとおりとする。

文字列

“文字列”は,文字列型によって参照する文字集合中の 0 個以上の文字を引用符  (”)  でくくって構成

する。文字集合が引用符  (”)  を含んでいる場合には,この文字は“文字列”中では二つの引用符  (”)  に

よって表す。ここでいう文字集合は,

表 に示した文字集合に限定されず,

“文字列”を値とする型によっ

てその文字集合が決まる(7.2 参照)

例  文字集合が引用符  ()  を含んでいる場合:“抽象構文記法” “ASN.1” ” ”

8.12

割当て記号項目  これの項目名は,次のとおりとする。

“::=”

この項目は,次の文字順序列から構成する。

::=:

備考  この順序列には,間隔文字を含まない(8.1.2 参照)。


14

X5603-1990

8.13

単一文字項目  単一文字項目の項目名は,次のとおりとする。

−(ハイフン)

これらの名前をもつ項目は,その名前と同じ単一文字から構成する。

8.14

キーワード項目  キーワード項目の項目名は,次のとおりとする。

BOOLEAN

INTEGER

BIT

STRING

OCTET

NULL

SEQUENCE

OF

SET

IMPLICIT

CHOICE

ANY

EXTERNAL

OBJECT

IDENTIFIER

OPTIONAL

DEFAULT

COMPONENTS

UNIVERSAL

APPLICATION

PRIVATE

TRUE

FALSE

BEGIN

END

DEFINITIONS

これらの名前をもつ各項目は,その名前のつづりと同一の文字の順序列から構成する。


15

X5603-1990

備考1.  これらの順序列の中には,間隔を含まない。

2.

これらの順序列で,8.2.2 にキーワードとして示されていないものについては,それが使用さ

れているコンテキストによって同じ文字を含む他の項目と区別する。

9.

モジュール定義

9.1

“_モジュール定義”は,次の生成規則によって定義する。

_モジュール定義::=モジュール参照

 DEFINITIONS

“::=”

 BEGIN

_モジュール本体

 END

_モジュール本体

::=

_割当てリスト  |  空

_割当てリスト

::=

_割当て  |_割当てリスト  _割当て

_割当て

::=

_型割当て  |  _値割当て

備考1.  附属書 は,“_マクロ定義”順序列を規定する。“_マクロ定義”は,“_割当てリスト”

中にも使用できる。マクロ定義によって定義する記法は,同じモジュール内ではマクロ定義

の前にも使用できる。

2.

例外として,はん用クラスタグをもつ型の定義及び例の説明で,

“_モジュール本体”を“_

モジュール定義”の中ではなく別の箇所で使用している。

3.

“_型割当て”及び“_値割当て”生成規則は,11.で規定する。

4. ASN.1

データ型を定義することが,プレゼンテーションコンテキストを定義するために,名

前付き抽象構文中にプレゼンテーションデータ値を形成することを決定するとは限らない。

9.2

“_モジュール定義”生成規則に現れる“モジュール参照”を,モジュール名という。モジュール

名は,このモジュール名をもつ“_モジュール定義”順序列の“_モジュール本体”内に現れるすべての

“_割当て”順序列の一貫性及び完全性を保つように選択する。

“_割当て”順序列の集合は,その集合内

に現れる“型参照”又は“値参照”について,次の条件を満たす場合に一貫性及び完全性を保つ。すなわ

ち,その“型参照”又は“値参照”ごとに,型又は値にそれぞれ名前を結び付ける“_型割当て”又は“_

値割当て”がそれそれ一つある場合。

9.3

モジュール名は,モジュール定義の対象範囲内においては,1 回だけ使用する(9.4 で規定する場合

を除く。

備考  ISO では,国際規格で定義するモジュールは,次の形式のモジュール名をもつことが望ましい

と定めている。

ISOxxxx

−yyyy

ここで,xxxx は国際規格の番号,yyyy は国際規格の頭文字(例えば,JTM,FTAM 又は CCR)

とする。他の規格にも,同様の規約を適用することができる。

9.4

“型参照”又は“値参照”は,次の生成規則によって定義する“_外部型参照”又は“_外部値参

照”を使用して定義したモジュールとは別のモジュールから参照することができる。

_外部型参照

::=

モジュール参照


16

X5603-1990

型参照

_外部値参照

::=

モジュール参照

値参照

参考  ここでは,ピリオド (.) が意味をもつので注意すること。

10.

型定義及び値定義の参照

10.1

次の生成規則は,型定義及び値定義の参照に使用する順序列を定義する。

_定義型

::=

_外部型参照  |  型参照

_定義値

::=

_外部値参照  |  値参照

10.2

選択肢のうちの“型参照”及び“値参照”は,型又は値を型参照又は値参照に割り当てている(11.1

及び 11.2 参照)モジュール内でだけ使用する。

10.3

“_外部型参照”及び“_外部値参照”は,対応する“モジュール参照”において,対応する“型

参照”又は“値参照”が,それぞれ型又は値を割り当てられている(11.1 及び 11.2 参照)場合にだけ使用

する。

11.

型及び値の割当て

11.1

“型参照”には,次の“_型割当て”生成規則で規定する記法によって,型を割り当てる。

_型割当て

::=

型参照

“::=”

_型

“型参照”は,29.で定義する文字列型の参照に使用する名前及び 30.

33.で定義する型の参照に使用す

る名前であってはならない。

11.2

“値参照”には,次の“_値割当て”生成規則で規定する記法によって,値を割り当てる。

_値割当て

::=

値参照

_型

“::=”

_値

“値参照”に割り当てる“_値”は,

“_型”によって定義した型の値についての有効な記法(12.6 参照)

とする。

12.

型及び値の定義

12.1

型は,次の“_型”順序列の一つによって参照する。

_型

::=

_組込み型  |  _定義型

10.1 参照)

_組込み型

::=

_論理型

_整数型

_ビット列型

_オクテット列型

_ヌル型


17

X5603-1990

_順序列型

_単一型順序列型

_集合型

_単一型集合型

_選択型

_参照選択型

_タグ付き型

_任意型

_オブジェクト識別子型

_文字列型

_有用型

備考1.  マクロで定義する型記法も,“_型”についての順序列として使用することができる(附属書

A

参照)

2.

この規格に対する将来の追加によって,更に組込み型を定義することがある。

12.2

“_組込み型”の記法は,13.以降で規定する。

12.3

参照する型は,

“_組込み型”によって定義した型又は“_定義型”に割り当てた型とする。

12.4

型を参照する記法では,型に名前を付けてもよい。この場合,次の記法“_名前付き型”を使用す

る。

_名前付き型

::=

識別子  _型  |

_型  |

_参照選択型

記法“_参照選択型”及びこれに対応する値の記法については,23.で規定する。

備考  “_参照選択型”を“_名前付き型”として使用する場合,記法“_参照選択型”には,値記

法の一部となる“識別子”を含む(23.1 参照)

12.5

“識別子”は,型の一部ではなく,型には何の影響も与えない。

“_名前付き型”順序列によって参

照する型は,それに含まれる“_型”順序列によって参照する型とする。

12.6

型の値は,次の“_値”順序列の一つによって規定する。

_値

::=

_組込み値  |  定義値

_組込み値

::=

_論理値

_整数値

_ビット列値

_オクテット列値

_ヌル値

_順序列値

_単一型順序列値

_集合値

_単一型集合値

_選択値

_参照選択値

_タグ付き値


18

X5603-1990

_任意値

_オブジェクト識別子値

_文字列値

備考  マクロで定義する値記法も,“_値”についての順序列として使用することができる(附属書 A

参照)

12.7

型を次の左側に示す記法の一つを使用して定義した場合には,値はその右側に示す記法を使用して

規定する。

型記法

値記法

_論理型

_論理値

_整数型

_整数値

_ビット列型

_ビット列値

_オクテット列型

_オクテット列値

_ヌル型

_ヌル値

_順序列型

_順序列値

_単一型順序列型

_単一型順序列値

_集合型

_集  合  値

_単一型集合型

_単一型集合値

_選択型

_選択値

_タグ付き型

_タグ付き値

_任意型

_任意値

_オブジェクト識別子型

_オブジェクト識別子値

_文字列型

_文字列値

備考

この規格に対する将来の追加によって,更に値記法を定

義することがある。

型が“_定義型”である場合,値記法は“_定義型”を生成している中で使われている型に対する記法

でなければならない。

12.8

“_有用型”記法によって定義する型の値記法については,30.

33.で規定する。

12.9

“_組込み値”の記法については,13.以降で規定する。

12.10

“_名前付き型”記法を使用して参照する型の値は,次の記法“_名前付き値”によって定義する。

_名前付き値  ::=  識別子  _値|_値

ここで“識別子”は,

“_名前付き型”で使用したものと同じとする。23.2 に”_名前付き型”

“_参照

選択型”である場合の“_名前付き値”に対する制約を規定する。

備考  “識別子”は,記法の一部であるが.値そのものの一部ではない。

12.11

“識別子”は,それ“_名前付き型”に存在する場合にだけ,

“_名前付き値”の中で指定する。

備考  “識別子”は,“_参照選択型”の場合には,必ず指定する。

13.

論理型の記法

13.1

論理型(3.13 参照)は,次の記法“_論理型”によって参照する。

_論理型  ::=  BOOLEAN

13.2

この記法によって定義する型のタグは,はん用クラスの番号 1 とする。

13.3

論理型の値(3.14 及び 3.15 参照)は,次の記法“_論理値”によって定義する。

論理値  ::=  TRUE  |  FALSE


19

X5603-1990

14.

整数型の記法

14.1

整数型(3.16 参照)は,次の記法“整数型”によって参照する。

_整数型

::= INTEGER  |

 INTEGER

{  名前付き数字リスト}

_名前付き数字リスト

::=

_名前付き数字|

_名前付き数字リスト,_名前付き数字

_名前付き数字

::=

識別子(_符号付き数字)|

識別子(_定義値)

_符号付き数字

::=

数字|−数字

14.2

“_符号付き数字”の第 2 の選択肢は,

“数字”が 0 である場合には,使用してはならない。

14.3

“_名前付き数字リスト”は,型の定義では意味をもたない“_名前付き数字リスト”は,14.9 

指定する値記法だけで使用する。

14.4

“_定義値”は,整数型又はタグ付けによって整数から派生した型の値を参照する。

14.5

“_名前付き数字リスト”の“_符号付き数字”又は“_定義値”の値は,それぞれ異なるものと

し,整数型の別の値を表す。

14.6

“_名前付き数字リスト”の“識別子”は,それぞれ異なるものとする。

14.7

“_名前付き数字リスト”

”_名前付き数字”の順序は,意味をもたない。

14.8

この記法によって定義する型のタグは,はん用クラスの番号 2 とする。

14.9

整数型の値は,次の記法“_整数値”によって定義する。

_整数値  ::=  _符号付き数字|識別子

14.10

“_整数値”で使用する“識別子”は,その値に関連する“_整数型”順序列で使用している“識

別子”と同じものとする。その“識別子”は,関連する“_整数型”順序列で定義した数を表現する。

備考  “識別子”が既に定義されている整数値を定義する場合には,その“_整数値”の“識別子”

の形式を使用することが望ましい。

15.

ビット列型の記法

15.1

ビット列型(3.17 参照)は,次の記法“_ビット列型”によって参照する。

_ビット列型

::= BIT

STRING

BIT

STRING

{_名前付きビットリスト}

_名前付きビットリスト

::=

_名前付きビット|

_名前付きビットリスト,_名前付きビット

_名前付きビット

::=

識別子(数字)|

識別子(_定義値)

15.2

“_名前付きビットリスト”は,型の定義では意味をもたない。

“_名前付きビットリスト”は,15.8

で規定する値記法だけで使用する。

15.3

ビット列の最初のビットを

先頭ビットといい,番号は 0 とする。ビット列の最後のビットを後尾ビ

ットという。

備考  この用語は,値記法及び符号化規則を規定する場合に使用する。

15.4

“_定義値”は,整数型又はタグ付けによって整数から派生した型の負ではない値の参照とする。


20

X5603-1990

15.5

“_名前付きビットリスト”の“数字”又は“_定義値”の値は,それぞれ異なるものとし,ビッ

ト列値の別のビットの番号とする。

15.6

“_名前付きビットリスト”の“識別子”は,それぞれ異なるものとする。

備考  “_名前付きビットリスト”の“_名前付きビット”の順序は,意味をもたない。

15.7

この型のタグは,はん用クラスの番号 3 とする。

15.8

ビット列型の値は,記法“_ビット列値”によって定義する。

_ビット列値

::=

  2

進列  |

16

進列  |

{_識別子リスト}|  {  }

_識別子リスト

::=

識別子  |_識別子リスト,識別子

15.9

“_ビット列値”の各“識別子”は,値が関連付けられている“_ビット列型”順序列の“識別子”

と同じものとする。

15.10

記法の利用者は,後ろに付く複数の 0 のビットの有無が重要であるか否かを決定し,注釈によって

その旨を指示することができる。

備考  符号化規則は,任意のパターン,任意の長さのビット列の転送を可能にする。

15.11

“_ビット列値”の“

{_識別子リスト}

”及び“{  }”記法は,後ろに付く複数の 0 のビットの有

無が重要である場合には,使用してはならない。この記法は,

“識別子”順序列に対応する番号によって指

定したビット位置が 1 であり,他のビットは全部 0 であるビット列値を示す。

備考    “{  }”順序列は,1 のビットを一つも含まないビット列値を示すために使用する。

15.12

ビット列についての符号化規則を規定する場合,ビットは,先頭ビット及び後尾ビットによって参

照する。

15.13

“2 進列”記法を使用する場合,先頭ビットは左,後尾ビットは右とする。

1

1

0

1

0

このような 5 ビットの情報を転送する場合,

“2 進列”記法では次のように表す。

‘11010’ B

この場合 1 番左側のビットを先頭ビットとし,1 番右側のビットを後尾ビットとする。

15.14

“16 進列”記法を使用する場合,各 16 進数字の最高位ビットは,ビット列の最初(左端)のビット

とする。

備考  この記法は,符号化規則が転送のためビット列をオクテットにする方法を制限するものではな

い。

15.15

“16 進列”記法は,次のいずれかの場合を除き,使用してはならない。

(a)

ビット列が 4 ビットの倍数から構成される。

(b)

後ろに付く複数の 0 のビットの有無は,意味をもたない。

例 ‘A98A’

H

及び‘1010100110001010’ B は,同じビット列値についての代替記法である。

16.

オクテット列型の記法

16.1

オクテット列型(3.18 参照)は,次の記法“_オクテット列型”によって参照する。

_オクテット列型

::=

OCTET STRING


21

X5603-1990

16.2

この型のタグは,はん用クラスの番号 4 とする。

16.3

オクテット列型の値は,次の記法“_オクテット列値”によって定義する。

_オクテット列値

::=

2

進列

16

進列

16.4

オクテット列に対する ASN.1 符号化規則では,列内の最初及び最後のオクテットは,それぞれ

先頭

オクテット及び後尾オクテットといい,オクテット内の最初及び最後のビットは,それぞれ最高位ビット

及び

最低位ビットという。

16.5

“2 進列”記法を使用する場合,左端のビットは,先頭オクテットの最高位ビットとする。

“2 進列”

が 8 ビットの倍数でない場合には,

“2 進列”が 8 ビットの倍数とするために,その 2 進数の後尾の部分に

0

のビットが該当数あるものと解釈する。

例えば,オクテット列型で‘11010’ B と記述されていた場合,それは‘11010000’ B と解釈される。すなわ

ち,未使用ビットは 0 と解釈される。

16.6

“16 進列”記法を使用する場合,左端の 16 進数字は,先頭オクテットの高位 4 ビットとする。

“16

進列”が偶数個の 16 進数字でない場合には,その 16 進列の後尾に 16 進数字の 0 が 1 個あるものと解釈す

る。

17.

ヌル型の記法

17.1

ヌル型(3.19 参照)は,次の記法“_ヌル型”によって参照する。

_ヌル型

::= NULL

17.2

この型のタグは,はん用クラスの番号 5 とする。

17.3

ヌル型の値は,記法“_ヌル値”によって参照する。

_ヌル型

::= NULL

18.

順序列型の記法

18.1

他の型から順序列型(3.20 参照)を定義する記法は,次の“_順序列型”とする。

_順序列型

::= SEQUENCE{_要素型リスト}  |  SEQUENCE {  }

_要素型リスト

::=

_要素型  |  _要素型リスト,_要素型

_要素型

::=

_名前付き型

_名前付き型  OPTIONAL

_名前付き型  DEFAULT_値

COMPONENT OF

_型

18.2

“要素型”の選択肢“COMPONENTS OF  _型”中の“型”は,順序列型とする。

“COMPONENTS OF

_型”記法は,

“CONPONENT OF”で参照する“_型”に含まれているすべての“_要素型”を,新しい

順序列型の“_要素型リスト”の中に取り込むために使用する。

備考  この変換は,論理的には 18.318.6 の条件を満たす前に完了する。

18.3 “OPTIONAL”

及び“DEFAULT”は,

“_要素型リスト”の型のタグがすべて異なる場合を除き,使用し

てはならない(24.参照)

18.4 “OPTIONAL”

又は“DEFAULT”がある場合,それに対応する値は,新しい型の値の中及び符号化規則

によって転送する情報の中になくてもよい。

備考1.  この場合“識別子”順序列が各“_名前付き型”にある場合を除き,値記法があいまいにな


22

X5603-1990

ることがある。

2.

符号化規則は,“DEFAULT”  又は “OPTIONAL”要素の値を省略した順序列値の符号化が,型

定義において対応する要素を省略している型の順序列値の符号化と同じとなることを保証す

る。この機能は,サブセットを定義する際に有用とする。

18.5

“DEFAULT”を使用する場合,その型の値を省略することは,“_値”によって定義された値が指

定されたことと同等となる。

“_値”によって定義する値には,

“_名前付き型”順序列の“_型”によっ

て定義される型について有効な値を指定する。

18.6

“_要素型リスト”のすべての“_名前付き型”順序列に付けられる“識別子”は,それぞれ異な

るものとする。

18.7

すべての順序列型のタグは,はん用クラスの番号 16 とする。

備考  単一型順序列型のタグも同じとする(19.3 参照)。

18.8

順序列型の値を定義する記法は,次の“_順序列値”とする。

_順序列値  ::  =  {要素値リスト}  |  {  }

_要素値リスト  ::=  _名前付き値  |  _要素値リスト,_名前付き値

18.9

“{  }”記法は,次のいずれかの場合にだけ使用する。

(a)

“_順序列型”のすべての“_要素型”順序列が“DEFAULT”又は“OPTIONAL”と指定され,す

べての値を省略した場合。

(b)

型記法が“SEQUENCE {  }”である場合。

18.10

“OPTIONAL”又は“DEFAULT”が指定されていない“_順序列型”中の“_名前付き型”はそれ

ぞれ一つの”_名前付き値”をもち,それらの値は対応する“_名前付き型”順序列と同じ順序とする。

備考  識別子のない“_名前付き型”順序列の使用は,禁止しないが,

“OPTIONAL”又は“DEFAULT”

を使用した場合,値記法があいまいになることがある。

19.

単一型順序列型の記法

19.1

他の型から単一型順序列型(3.21 参照)を定義する記法は,次の“_単一型順序列型”とする。

_単一型順序列型  ::=  SEQUENCE OF  _型  |  SEQUENCE

19.2

記法“SEQUENCE”は,記法“SEQUENCE OF ANY”と同義とする(25.参照)

19.3

すべての単一型順序列型のタグは,はん用クラスの番号 16 とする。

備考  順序列型のタグも同じとする(18.7 参照)。

19.4

単一型順序列型の値を定義する記法は,次の“_単一型順序列値”とする。

_単一型順序列値  ::=  {_値リスト}  |    {  }

_値リスト  ::=  _値  |  _値リスト,_値

“  {  }  ”記法は,単一型順序列値に構成要素値がない場合に使用する。

19.5

“_値リスト”の各“_値”順序列は,

“_単一型順序列型”で規定した“_型”の値についての記

法とする(19.1 参照)

備考  これらの値の順序に意味を与えることができる。

20.

集合型の記法

20.1

他の型から集合型(3.22 参照)を定義する記法は,次の“_集合型”とする。

_集合型  ::=  SET  {_要素型リスト}  |  SET  {  }


23

X5603-1990

“_要素型リスト”は,18.1 で規定する。

20.2

“_要素型“(18.1 参照)の選択肢“COMPONENTSOF 型”中の“_型”は,集合型とする。

“COMPONENTS OF  _型”記法は,  “CONPONENT OF”で参照する“_型”に含まれているすべての

“_要素型”を,新しい集合型の“_要素型リスト”の中に取り込むために使用する。

備考  この変換は,論理的には 20.320.4 の条件を満たす前に完了する。

20.3

集合型における“要素型”のタグは,それぞれ異なったものとする(24.参照)

20.4  18.418.5

及び 18.6 も,集合型に適用する。

20.5

すべての集合型のタグは,はん用クラスの番号 17 とする。

備考  単一型集合型のタグも同じとする(21.3 参照)。

20.6

集合型における値の順序は,意味をもたない。

20.7

集合型の値を定義する記法は,次の“_集合値”とする。

_集合値  ::=  {_要素値リスト}  |    {  }

“_要素値リスト”は,18.8 で規定する。

20.8

“_集合値”は,次のいずれかの場合には,

{  }

”とする。

(a)

“_集合型”のすべての“_要素型”順序列が  “DEFAULT”又は“OPTIONAL”と指定され,す

べての値を省略した場合。

(b)

型記法が“SET{  }

”である場合。

20.9

“OPTIONAL”又は“DEFAULT”の指定がない“_集合型”中の“_名前付き型”は,それぞれ一

つの“_名前付き値”をもつ。

備考1.  これらの“_名前付き値”は,どのような順序であってもよい。

2.

識別子のない“_名前付き型”の使用は,禁止しないが,値記法があいまいになることがあ

る。

21.

単一型集合型の記法

21.1

他の型から単型集合型(3.23 参照)を定義する記法は,次の“_単一型集合型”とする。

_単一型集合型  ::=  SET OF  _型  |  SET

21.2

記法“SET”は,記法“SET OF ANY”と同義とする(25.参照)

21.3

すべての単一型集合型のタグは,はん用クラスの番号 17 とする。

備考  集合型のタグも同じとする(20.5 参照)。

21.4

単一型集合型の値を定義する記法は,次の“_単一型集合値”とする。

_単一型集合値  ::=  {_値リスト}  |  {  }

“_値リスト”は,19.4 で規定する。

“{  }”記法は,単一型集合値に構成要素値がない場合に使用する。

21.5

“_値リスト”における各“_値”順序列は,

“_単一型集合型”で規定する“_型”の値について

の記法とする。

備考1.  これらの値の順序は,意味をもたない。

2.

符号化規則は,これらの値の順序を維持することを要求されない。

22.

選択型の記法

22.1

他の型から選択型(3.25 参照)を定義する記法は,次の“_選択型”とする。


24

X5603-1990

_選択型  ::=  CHOICE{_代替型リスト}

_代替型リスト  ::=  _名前付き型  |  _代替型リスト,_名前付き型

備考1.  選択型の符号化規則は,代替型リストの中から選択した“_型”の符号化規則に等しい。

2.

符号化では次の二つの場合を区別できない。すなわち,

“_代替型リスト”中で単一の“_名

前付き型”で”_選択型”を指定した場合と“_名前付き型”で“_型”を直接使用した場

合。

22.2

“_代替型リスト”で定義する型は,すべて異なるタグをもつ(24.参照)

22.3

選択型のタグは,可変とする。値を選択するとき,そのタグは,その値を取り出した“_代替型リ

スト”中の“_名前付き型”の“_型”のタグに等しくなる。

22.4

この規格で,異なるタグをもつ型を使用する必要がある箇所(18.320.3 及び 22.2 参照)でこの型

を使用する場合には,

“_代替型リスト”で定義するすべての型のタグは,それぞれ異なったものとする(24.

参照)

この規定の例を次に示す。

例 及び例 に記法の正しい使用法を示す。型 d 及び型 f 並びに型 e 及び型

g

に対するタグが同じであるため誤った使用法となる例を

例 に示す。

例 1.

A

= CHOICE

 {

b

 B

,

  c

  NULL}

B

= CHOICE

 {

d

[ 0

  ]

NULL,

  e

 [ 1

  ]

NULL}

例 2.

A

= CHOICE

 {

b

 B,

  c  C}

B

= CHOICE

{

d

[

0]

NULL,

e

[

1]

NULL}

C

= CHOICE

 {

f  [ 2]

NULL,

  g [ 3]

NULL}

例 3.(誤り)

A

= CHOICE

 {

b

 B,

c

C}

B

= CHOICE

 {

d [ 0]

NULL,

e

[

1]

NULL}

C

= CHOICE

 {

f  [ 0]

NULL,


25

X5603-1990

  g [ 1]

NULL}

22.5

“_代替型リスト”の“_名前付き型”順序列では,

“識別子”は,それぞれ異なったものでなけれ

ばならない。

22.6

この規格で,異なる“識別子”をもつ“_名前付き型”を使用する必要がある箇所で,この型を使

用する場合には,

“_代替型リスト”のすべての“_名前付き型”の“識別子”は,それぞれ異なったもの

とする。

22.7

選択型の値を定義する記法は,次の“_選択値”とする。

_選択値  ::=  _名前付き値

22.8

“_名前付き値”に“識別子”が含まれている場合,

“_名前付き値”は“_代替型リスト”中の同

じ名前の付いた“識別子”の型の値についての記法とする。

“_名前付き値”が“識別子”を含んでいない

場合には,

“_名前付き値”は“_代替型リスト”中の“識別子”が付いていない型の一つの値についての

記法とする。

備考  “_名前付き型”で“識別子”を使用しないと,値記法があいまいになることがある。

23.

参照選択型の記法

23.1

“_選択型”の“_代替型リスト”にある“_名前付き型”は,次の記法“_参照選択型”によっ

て参照することができる。

_参照選択型  ::=  識別子  <  _型

“_型”は”_選択型”を参照する記法とし,

“識別子”は”_名前付き型”中の“識別子”とする。

備考  “_参照選択型”は,

“識別子”を値記法に使用する“_名前付き型”又はその“識別子”を使

用しない“_名前付き型”内の“_型”のいずれかとして使用することができる。

23.2

参照選択型の値についての記法は,次の“_参照選択値”とする。

_参照選択型  ::=  _名前付き値

ここで,

“_名前付き値”は,

“_参照選択型”を“_名前付き型”として使用している場合には対応す

る“_参照選択型”にある識別子を含むが,その他の場合には識別子を含まない。

24.

タグ付き型の記法  タグ付き型(3.24 参照)は,既存の型と同じ構造及び性質をもつが,別のタグを

もつ新しい型とする。すべての符号化方式において,新しい型の値は,既存の型の値と区別することがで

きる。タグ付き型は,この規格で異なるタグをもつ型の使用を定めている箇所(18.320.322.222.4 及び

25.2

参照)に主に使用する。

備考  プロトコルが幾つかのデータ型の値を同時に転送することを定めている場合,受信側がその値

を正しく復号するため,別のタグが必要になることがある。

24.1

タグ付き型の記法は,次の“_タグ付き型”とする。

_タグ付き型

::=

_タグ  _型  |

_タグ  IMPLICIT  _型

_タグ

::=

[_クラス  _クラス番号]

_クラス番号

::=

数字  |  _定義値}

_クラス

::= UNIVERSAL  |  APPLICATION  |  PRIVATE  |  空

24.2

“_定義値”は,整数型又はタグ付けによって整数型から派生した型の負ではない値とする。


26

X5603-1990

24.3

新しい型は,既存の型と同じ構造及び性質をもつが,

“_クラス”というクラス及び“_クラス番号”

という番号のタグをもつ。タグがコンテキスト特定クラスである場合に限り “_クラス”は“空”となり,

番号“クラス番号”だけとなる。

24.4

“_クラス”は,この規格で定義する型を除き,

“UNIVERSAL”であってはならない。

備考  はん用クラスのタグの使用については,ISO 及び CCITT がその都度承認する。

24.5

“_クラス”が“APPLICATION”である場合には,同じ“_タグ”を同じモジュールで再び使用し

てはならない。

24.6

“_クラス”が“PRIVATE”である場合には,

“_タグ”は利用者の目的に応じて使用する。

24.7

“_クラス”が“空”である場合には,18.320.3 及び 22.2 の異なるタグについての条件によるも

ののほか,

”_タグ”の使用については制限はない。

24.8

“IMPLICIT”は,任意使用に対する符号化規則の記法とし,

“_タグ付き型”中の“_型”を示す

タグの明示的識別を転送中には不要とする。

備考  タグがはん用クラスである場合,既存のタグを省略せずに残しておくことは,新しい型の ASN.1

定義を知ることなしに既存の型を明確に識別できるので便利である。しかし,IMPLICIT を使

用すると.転送オクテットを少なくすることができる。IMPLICIT を使用した符号化の例を.

JIS X 5604

に示す。

24.9

“IMPLICIT”は,

“_型”によって定義した型が,選択型又は任意型である場合には,使用しては

ならない。

24.10

“_タグ付き型”の値の記法は,次の“_タグ付き値”とする。

_タグ付き値  ::=  _値

ここで,

“_値”は,

“_タグ付き型”中の“_型”に対応する値についての記法とする。

備考  “_タグ”は,この記法中には現れない。

25.

任意型の記法

25.1

任意型(3.27 参照)の記法は,次の“_任意型”とする。

_任意型  ::=  ANY

備考  型“ANY”は,将来追加する規定のための余地を確保する。型“ANY”を使用する場合には,

通信インスタンスに先立ち,

“ANY”フィールドに入れるデータ型及びその意味の補助仕様が

必要となる。ISO 規格又は CCITT 勧告において型“ANY”を使用すると,その規格又は勧告が

不完全となることがあるので,通常は補助仕様の出典を指示する注釈を付けるのが望ましい。

25.2

この型のタグは,不定なので,この規格でタグがそれぞれ異なることを要求している場合には,使

用してはならない(18.320.322.2 及び 22.4 参照)

25.3

任意型の値の記法は,ASN.1 を使用して定義し,次の“_任意値”とする。

_  任意値  ::=  _型  _値

ここで,

“_型”は,選択した型についての記法とし,

“_値”はこの型の値についての記法とする。

26.

オブジェクト識別子型の記法

26.1

オブジェクト識別子型(3.31 参照)は,次の記法“_オブジェクト識別子型”によって参照する。

_オブジェクト識別子型  ::=  OBJECT IDENTIFIER

26.2

この型のタグは,はん用クラスの番号 6 とする。


27

X5603-1990

26.3

オブジェクト識別子の値記法は,次の“_オブジェクト識別子値”とする。

_オブジェクト識別子値

::=

{_オブジェクト識別子構成要素リスト}|

{_定義値  _オブジェクト識別子構成要素リスト}

_オブジェクト識別子構成要素リスト

::=

_オブジェクト識別子構成要素  |

_オブジェクト識別子構成要素

_オブジェクト識別子構成要素リスト

_オブジェクト識別子構成要素

::=

_名前形式  |

_数字形式  |

_名前及び数字形式

_名前形式

::=

識別子

_数字形式

::=

数字  |  _定義値

_名前及び数字形式

::=

識別子(_数字形式)

26.4

“_数字形式”の“_定義値”は,整数型又はタグ付けによって整数から派生した型の値の参照と

する。

26.5

“_オブジェクト識別子値”の“_定義値”は,オブジェクト識別子型又はタグ付けによってオブ

ジェクト識別子から派生した型の値の参照とする。

26.6

“_名前形式”は,数値及び識別子を

附属書 Bで規定したオブジェクト識別子構成要素だけに

ついて使用し,

附属書 Bで規定する識別子の一つとする。

26.7

“_数字形式”の“数字”は,オブジェクト識別子構成要素に割り当てた数値とする。

26.8

“_名前及び数字形式”の“識別子”は,数値をオブジェクト識別子構成要素に割り当てるときに

指定する。

備考  オブジェクト識別子構成要素に数値を割り当てる機関を,附属書 Bに示す。

26.9

オブジェクト識別子値の意味は,

オブジェクト識別子木を使用して定義する。オブジェクト識別子

木は根,節点及び弧から成り,根はこの規格の対応国際規格に対応し,節点は主管機関に対応し,主管機

関がその節点からの弧を割り当てる責任をもつ。この木のそれぞれの弧には,数値からなるオブジェクト

識別子構成要素のラベルを付ける。識別される情報オブジェクトには,それぞれただ一つの節点(通常は,

葉)が割り当てられる。同じ節点には,他の情報オブジェクト(同じタイプ又は異なるタイプ)を割り当

てない。したがって,情報オブジェクトは,根からその情報オブジェクトに割り当てられた節点までの経

路中の弧に付けられた一連の数値(オブジェクト識別子構成要素)によって,一意に識別される。

備考  オブジェクト識別子値は,附属書 Bに示すように少なくとも二つのオブジェクト識別子構

成要素を含む。

26.10

オブジェクト識別子値は,意味的にはオブジェクト識別子構成要素値の順序付けられた並びとする。

オブジェクト識別子構成要素値は,それぞれ,その木の中の弧を識別する。最初のオブジェクト識別子構

成要素値は,オブジェクト識別子木の根から始まる弧を識別する。最後のオブジェクト識別子構成要素値

は,情報オブジェクトが割り当てられている節点に通じる弧を識別する。オブジェクト識別子値によって

識別されるのは,この情報オブジェクトとする。オブジェクト識別子構成要素は,通常,

“_名前形式”又

は“_数字形式”とする。

“_数字形式”は,オブジェクト識別子構成要素の長さを短くするために各要素

を数値で表す。

備考  一般に,情報オブジェクトとは,情報のクラスのインスタンス(例えば,個々のファイル)と

いうよりはむしろ情報のクラス(例えば,ファイル形式)である。このように情報オブジェク


28

X5603-1990

トとは,情報自身の一部というよりは,ある参照可能な仕様によって定義される情報のクラス

であり,木の中に位置を割り当てられる。

26.11

“_オブジェクト識別子値”が“_定義値”を含む場合には,参照するオブジェクト識別子構成要

素のリストが,値の中で明示的に示される構成要素の前に置かれる。

例  附属書 で規定する識別子によって,値  {iso standard 8571 pci (1)}  及び  {1 0 8571 1}  は,ISO 8571

で定義するオブジェクト,

“pci”を識別する。

次の補助定義によって,

ftam OBJECT IDENTIFIER

::=  {iso standard 8571}

次の値は,上と同じとなる。

{ftam pci (1)}

備考 CCITT 勧告.国際規格又は他の文書が.OBJECT IDENTIFIER の型の値を情報オブジェクトに

割り当てる場合,その割当てを要約する付録又は附属書を添付すべきである。さらに,OBJECT

IDENTIFIER

型の値を情報オブジェクトに割り当てる機関は,オブジェクト記述子型の値をそ

の情報オブジェクトに割り当てるべきである。

27.

文字列型の記法

27.1

文字列型(3.12 及び

第 章参照)の記法は,次による。

_文字列型  ::=  型参照

ここで,

“型参照”は,

第 章に示す文字列型名の一つとする。

27.2

各文字列型のタグは,

第 章に規定する。

27.3

文字列値の記法は,次による。

_文字列値  ::=  文字列

文字列型の定義は,

“文字列”に含まれる文字を決定する(29.参照)

28.

第 章で定義する型の記法

28.1

この規格の

第 章で定義する型を参照する記法は,次による。

_有用型  ::=  型参照

ここで,

“型参照”は,ASN.1 記法を使用して

第 章で定義する型参照の一つとする。

28.2

各“_有用型”のタグは,

第 章に示す。

28.3

“_有用型”の値に対する記法は,

第 章に示す。

第 2 章  文字列型 

29.

文字列型の定義  ここでは,値が,ある文字集合中の 0 個以上の文字の順序列からなる型を定義する。

29.1

型は,次のもので定義する。

(a)

型に割り当てるタグ。

(b)

型定義を参照する名前。

(c)

型を形成する文字集合内の文字。図形文字を示す表の参照又はエスケープシーケンスと共に使用す

る符号化文字集合の国際登録の参照のいずれかによって示す。

上の(b)の名前は,ASN.1 記法の“型参照”として使用してもよい(27.参照)


29

X5603-1990

29.2

表 に,型定義を参照する名前,型に割り当てられるはん用クラスのタグの番号及び定義される登

録番号が参照する表番号を示す。同義語を定義している場合には,同義語は括弧でくくって示す。

備考  文字列型に割り当てるタグは,型を明確に識別する。しかし,ASN.1 を使用して,この型から

新しい型を定義する場合(特に,IMPLICIT を使用して)ASN.1 の型定義を知らなければ,こ

れらの型を認識できなくなることがあるので注意する必要がある。

表 4  NumericString

名前

図形文字

数字 0,

1,

.9

間隔

(間隔)

表 5  PrintableString

名前

図形文字

大文字 A, B,

.Z

小文字 a, b,

.z

数字 0,

1,

.9

間隔

(間隔)

アポストロフィ ' 
左小括弧

右小括弧

正符号

コンマ

ハイフン

ピリオド

斜線

コロン

等号

疑問符

表 6  文字列型一覧

型の参照名

意味

はん用クラス番号

ISO 2375

による

登録番号又は表番号

NumericString

数字列 18

表 による。

(

1

)

PrintableString

印字可能文字列 19

表 による。

(

1

)

(

2

)

TeletexString

(T61String)

テレテックス文字列

(T61 文字列)

20

87, 102, 103, 106

又は 107 に間隔及び抹消を

追加したもの。

VideotexString

ビデオテックス文字列

21

1, 70, 71, 72, 73, 102, 108, 128

又は 129 に間隔

及び抹消を追加したもの。

(

3

)

VisibleString

可視文字列 26

2

に間隔を追加したもの。

(ISO 646String)

ISO 646 文字列)

IA5String IA5

文字列 22

1

又は 2 に間隔及び抹消を追加したもの。

GraphicString

形文字列 25

G

集合に間隔を追加したもの。

GeneralString

一般文字列 27

G

集合及び C 集合に間隔及び抹消を追加し

たもの。

(

1

)

字体,大きさ,色輝度などの表示特性は,ASN.1の中では意味をもたない。

(

2

)

これらの登録番号は,その使用規則に関する CCITT

勧告 T.61 による。

(

3

)

これらの登録番号は,CCITT 勧告の T.100 及び T.101 に対応する。

29.3

表 に,NumericString 型で使用できる文字を示す。

29.4

表 に,PrintableString 型で使用できる文字を示す。


30

X5603-1990

29.5

これらの型の記法は,

“文字列”とする。

備考  この記法は,値中に存在する文字を表示することができる媒体だけで使用することができる。

ほかの場合の値の記法については,定義しない。

29.6

すべての場合,許可する文字の範囲は,注釈によって制限することはできるが,拡張することはで

きない。


31

X5603-1990

第 章  有用な定義 

ここでは,幾つかの応用において有用と考えられる定義を行う。

備考  この部分は,診断認証情報,課金情報,安全保護パラメタなどのほかの共通データ型を取り込

むことによって今後拡張される。

ここで定義する型の値記法及び意味定義は,ASN.1 記法を使用した型の定義から派生したものとする。

この型定義は,これらの型の符合化を規定するための符号化規則を定義する規格によって参照することが

できる。

30.

では,

基本記法及び日本語拡張記法に分けているが,本体中の規定については,煩雑さを避け,かつ

分かりやすさから,

日本語拡張記法で記述している。

30.

一般化時刻

30.1

一般化時刻型は,次の名前によって参照する。

GeneralizedTime

30.2

この型は,次のものを表現する値で構成する。

(a)  ISO 2014

で定義した暦日。

(b)  ISO 3307

で定義した精度による時刻。

(c)  ISO 4031

で定義した地方時と UTC 時との時差。

30.3

この型は,ASN.1 を使用して,次のように定義する。

GeneralizedTime

::=

[UNIVERSAL 24] IMPLICIT

VisibleString

ここで,

“VisibleString”の値は,次のいずれかの文字列とする。

(a)  ISO 2014

に規定された日付の表現(年を表す 4 個の数字,月を表す 2 個の数字,及び日を表す 2 個

の数字を個の順に並べたもの)に,ISO 3307 2.に規定された時刻の表現を付けたもの。ただし,時

刻の表現では,小数点を示すコンマ又はピリオド以外の区切り記号は,使用せず,UTC 時を示す Z

も使用しないもの。

(b)  (a)

の表現の後ろに UTC 時を表す大文字 Z(ISO 3307 参照)を付けたもの。

(c)  (a)

の表現の後ろに,区切り記号のない ISO 4031 の規定に従った,地方時と UTC 時との時差を表現

する文字列を付けたもの。

(a)

の場合の時刻は地方時を表現する。(b)の場合の時刻は UTC 時を表現する。(c)の場合,(a)の文字列と

同じ文字列は,地方時 (t

1

)

を表現する。UTC 時は,UTC 時との時差 (t

2

)

を用いて次のようにして求めら

れる。

UTC

時:t

1

−t

2

(a)

の場合  19851106210627.3

地方時 1985 年 11 月 6 日午後 9 時 6 分

27.3

(b)

の場合  19851106210627.3Z

上と同じだが,UTC 時であることを示す。

(c)

の場合  19851106210627.3−0500

(a)

と同じ地方時で,UTC 時に 5 時間遅れていることを示す。

参考  ISO 2014ISO 3307 及び ISO 4031 は,他の ISO 規格を含め,次の規格として 1988 年に改正さ

れている。

ISO 8601 : 1988 Data elements and interchange formats

−Information interchange−Representation


32

X5603-1990

of dates and times

ISO 8601

では,日付の表現と時刻の表現を連結して使用する場合には,その両者の表現の間

に T を入れるように規定されている。ただし,混乱が生じない限り,当事者間の合意によって

T

を省略してもよいことになっている。

ASN.1

のこの規格では,対応国際規格との技術的な一致性を保つために,旧規格群を引用し

規定した

30.4

タグは,30.3 に定義したとおりとする。

30.5

値記法は,30.3 に定義する “VisibleString” の値記法とする。

31.  UTC

時刻

31.1 UTC

時刻型は,次の名前によって参照する。

UTCTime

31.2

この型は,次のものを表現する値で構成する。

(a)

暦日

(b)  1

分又は 1 秒の精度の時刻

(c)

地方時と UTC 時との時差(任意選択)

31.3

この型は,ASN.1 を使用して,次のように定義する。

UTCTime

::= [UNIVERSAL

23]

  IMPLICIT

VisibleString

ここで,

“VisibleString”は,次のものを並べた文字列とする。

(a)  6

個の数字 YYMMDD。ここで,YY は西暦の下位 2 けた,MM は月 (01∼12),DD は日 (01∼31)  と

する。

(b)

次のいずれかの文字列。

(1)

4

個の数字 hhmm。ここで,hh は時 (00∼23), mm は分 (00∼59)  とする。

(2)

6

個の数字 hhmmss。ここで,hh 及び mm は(1)に同じ。ss は秒 (00∼59)  とする。

(C)

次のいずれかの文字列。

(1)

文字 Z

(2)

+又は−に hhmm を付けたもの。ここで,hh は時,mm は分とする。

(b)

によって,時刻指定の精度を変えることができる。

(c)(1)

は,(a)及び(b)で指定する時刻が,UTC 時で表されていることを示す。(c)(2)は,(a)及び(b)

指定する時刻 (t

1

)

が,地方時で表されていることを示し,(c)(2)自身で指定する時刻が UTC 時との時

差 (t

2

)

で表されていることを示し,次のように UTC 時刻を決定することができる。

UTC

時刻:t

1

−t

2

例  地方時刻が 1 月 2 日午前 7 時,国際標準時が 1 月 2 日正午である場合,値は,次のいずれかとす

る。

UTCTime

“8201021200Z”

UTCTime

“8201020700−0500”

31.4

タグは,31.3 で定義したとおりとする。

31.5

値記法は,31.3 で定義した“VisibleString”の値記法とする。


33

X5603-1990

32.

外部型

32.1

外部型(3.29 参照)の記法は,次の“_外部型”とする。

_外部型  ::=  EXTERNAL

32.2

この型は,次のものを表現する値で構成する。

(a)

単一のデータ値を符号化したもの。必ずしも単一の ASN.1 データ型の値でなくてもよい。

(b)

意味及び符号化規則を決定する識別情報。

(c)

オブジェクトを記述するオブジェクト記述子(任意選択)

任意選択のオブジェクト記述子は,EXTERNAL 記法の使用時に注釈によって明示的に許可している場

合を除き,使用してはならない。

32.3

外部型では,識別されたデータ値の集合に含まれるデータ値を包含することができる。

備考1.  データ値の集合と,その意味の仕様化,オブジェクト識別子と(任意選択として)オブジェ

クト記述子の割当て,及びこれらの情報のすべての通信当事者への通知を,

抽象構文の登録

と呼ぶ。この作業は,

附属書 Bで規定する OBJECT IDENTIFIER の割当ての資格をもつ

機関によって行われる。

2.

抽象構文として関連した符号化規則と共に登録するデータ値の集合は,データ値を符号化し

たものの各々が,データ値を符号化したものの集合の中で自己識別できなければ,正しい形

式とはしない。ASN.1 を使用して抽象構文を定義する場合には,タグを使用して自己識別を

行う。抽象構文の形式が正しくない場合には,通信内容は,コンテキスト依存となるか,あ

いまいなものとなる。

32.4

外部型は,ASN.1 を使用して,次のように定義する。

基本記法)

EXTERNAL

::= [UNIVERSAL

8]

  IMPLICIT SEQUENCE

{ direct-reference

OBJECT IDENTIFIER

OPTIONAL

,

 indirect-reference

  INTEGER

OPTIONAL

,

 data-value-descriptor

ObjectDescriptor

OPTIONAL

,

 encoding

CHOICE

 {single

−ASN1-type

[0]

  ANY ,

 octet-aligned   [1]

  IMPLICIT

OCTET

STRING

,

 arbitrary

[2]

  IMPLICIT

 BIT

ST

}}

日本語拡張記法)

 EXTERNAL

::= [UNIVERSAL

8]

  IMPLICIT SEQUENCE

{

直接参照 OBJECT

IDENTIFIER

OPTIONAL

,

間接参照 INTEGER

OPTIONAL

,


34

X5603-1990

データ値記述子 ObjectDescriptor

OPTIONAL

,

符号化 CHOICE

 {asn1

単一形式 [0]  ANY

,

オクテット整列形式 [1]  IMPLICIT

OCTET

STRING

,

任意形式 [2]  IMPLICIT

BITSTRING

    }

}

32.5 EXTERNAL

の値に対し,プレゼンテーション層での符号化規則の折衝を行わない場合,すなわち転

送構文を事前に合意している場合,

“直接参照 OBJECT IDENTIFIER”が使用される。この場合には,デー

タ値の集合の識別子はオブジェクト識別子とし,そのオブジェクト識別子によって抽象構文が直接参照さ

れ,その“EXTERNAL”の“直接参照 OBJECT IDENTIFIER”のフィールドが埋められる。この場合には,

抽象構文の登録で同時にそのデータ値の符号化規則(転送構文)も定義し,

“間接参照 INTEGER”は使用

されない。

32.6 EXTERNAL

の値に対し,プレゼンテーション層での折衝を行う場合,

“間接参照 INTEGER”を使用

する。この場合,データ値の集合の識別子は,抽象構文の使用のインスタンスを参照する整数とする。こ

の整数は,

プレゼンテーションコンテキスト識別子と呼び,

“EXTERNAL”の“間接参照 INTEGER”のフ

ィールドに入る。プレゼンテーション層での折衝が完了した後は,プレゼンテーションコンテキスト識別

子は,データ値の符号化規則(転送構文)の識別にも使われ,

“直接参照 OBJECT IDENTIFIER”は使用し

ない。プレゼンテーション層での折衝が完了していないときには,符号化規則(転送構文)を識別するオ

ブジェクト識別子を必要とする。プレゼンテーション層での折衝が行われており,かつ,オブジェクト識

別子を運ぶために“直接参照 OBJECT IDENTIFIER”の要素が許されている場合,又は必要とされる場合

には,そのことが,“EXTERNAL”の記法に伴う注釈中に明示されていなければならない。ほかの場合に

は,

“直接参照 OBJECT IDENTIFIER”のフィールドは使用されない。

備考1.  32.5及び32.6は“直接参照”と“間接参照”の内,少なくとも一つは必要であることを示す。

2.

プレゼンテーション層での折衝が行われていて,かつ完了していないときには,両方の参照

が使用される。

32.7

データ値が単一の ASN.1 データ型の値であり,このデータ値についての符号化規則が完全な外部デ

ータ型の符号化規則と同じである場合には,送信側は,次にあげる“符号化”の任意選択形式のいずれか

を実装しなければならない。

asn.1

単一形式

オクテット整列形式

任意形式

32.8

合意した符号化又は折衝した符号化を使用したデータ値の符号が,整数個のオクテットである場合

には,送信側実装は,次にあげる“符号化”の任意選択形式のいずれかを実装しなければならない。

オクテット整列形式

任意形式

備考  一連の ASN.1 の型であるデータ値で.その転送構文が.ASN, 1 基本符号化規則を ASN.1 の各

型に適用して作成したオクテット列の単純な連結を指定しているデータ値は,32.7 ではなく,


35

X5603-1990

この分類に入る。

32.9

合意した符号化又は折衝した符号化を使用したデータ値の符号が,整数個のオクテットではない場

合には,

“符号化”の選択は次のものとする。

任意形式

32.10

“符号化”の選択を“asn 1 単一形式”として選択した場合には,ASN.1 の型は,

“ANY”を符号化

するデータ値と等しい値に置き変える。

備考  “ANY”に入れることができる値の範囲は,“直接参照”に関連するオブジェクト識別子値の

登録と“間接参照”の関連する整数によって決まる。

32.11

“符号化”の選択を“オクテット整列形式”として選択した場合には,データ値は,合意又は折衝

した転送構文に従って符号化し,その結果としてのオクテットは,オクテット列の値をとる。

32.12

“符号化”の選択を“任意形式”として選択した場合には,データ値は合意又は折衝した転送構文

に従って符号化し,その結果はビット列の値をとる。

32.13

タグは,32.4 で定義したとおりとする。

32.14

値記法は,32.4 で定義した型の値記法とする。

33.

オブジェクト記述子型

33.1

オブジェクト記述子型は,次の名前によって参照する。

ObjectDescriptor

33.2

この型は,情報オブジェクトの記述に使用する可読文字列から構成する。文字列は,情報オブジェ

クトを一意に識別しないが,

別の情報オブジェクトについて同一の文字列を使用しないことを原則とする。

備考  オブジェクト識別子型の値を情報オブジェクトに割り当てる機関は,オブジェクト記述子型の

値も,その情報オブジェクトに割り当てることが望ましい。

33.3

この型は,ASN.1 記法を使用して,次のように定義する。

ObjectDescriptor

::= [UNIVERSAL 7]  IMPLICIT GraphicString

“GraphicString”は,情報オブジェクトを記述する文字列とする。

33.4

タグは,33.3 で定義したとおりとする。

33.5

値記法は,33.3 で定義した“GraphicString”の値記法とする。


36

X5603-1990

附属書 A(規定)  マクロ記法

A.1

序文  ASN.1 は,ASN.1 の利用者のために,ASN.1 の型を作成し参照する新しい記法又は型の値を規

定する新しい記法を定義するための機構を備えている。新しい記法は,

“_マクロ定義”記法を使用して定

義する。

“_マクロ定義”は,型を作成し参照するための新しい記法及び値を規定するための新しい記法を

同時に規定する(マクロ記法の使用例については,

附属書 の E.3.参照)。

“_マクロ定義”では,ASN.1 の利用者は,この規格の生成規則と同じような方法で,生成規則の集合

によって新しい記法を指定する。マクロ定義は,次による。

(a)

マクロ記法で用いるすべての型を指定するために,完全な構文を指定する(この構文仕様は,ASN.1

の型記法においてマクロ名によって構文解析のため呼び出される。

(b)

マクロ記法で用いる型のうちで一つの型に対する値に使用する完全な構文を指定する(この構文仕

様は,マクロ型の値が予想される場合,構文解析のため呼び出される。

(c)

本体の ASN1 の型の値(複雑さは任意)として,マクロ値記法のすべてのインスタンスの結果とし

ての型及び値を指定する。

マクロ定義によって定義する構文のインスタンスは,本体の ASN.1 記法を使用した型又は値のインスタ

ンスを含むことができるこれらの型又は値(マクロ記法で使用する)は,構文解析の間,マクロ定義の適

当な文によって,

局所型参照又は局所値参照と関連付けることができる。さらに,マクロ定義内に,本体

の ASN.1 の型割当てを埋め込むこともできる。これらの割当ては,関連した構文分類と解析する新しい記

法のインスタンス中の項目とが一致する場合に有効となる。これら割当ての有効期間は,解析の有効期間

と同じとする。

新しい記法の値を解析する場合,対応する型記法の解析中に行われた割当てを使用することができる。

この解析は,論理的には,値記法の各インスタンスの解析に先行するものと見なされる。

各“_マクロ定義”は,型定義についての記法(構文)及び値定義についての記法(構文)を定義する。

新しい型記法のインスタンスによって定義する ASN.1 の型は,その型が関連している値記法のインスタン

スに依存することがある。この点については,新しい型記法の使用は,タグが不定であるため CHOICE と

同様となる。したがって,新しい記法は,既知のタグが必要な場合にも使用できないし,暗黙のタグ付け

を行うこともできない。

新しい値記法を使用したインスタンスの結果としての型及び値は,新しい型記法のマクロ定義の処理に

従って,キーワード項目 VALUE によって識別される局所値参照に最終的に割り当てた値(及び値の型)

によって決定される。新しい値記法のマクロ定義は,新しい型記法のマクロ定義の後に続く。

A.2  ASN.1

文字集合及び項目の拡張  マクロ記法では,|及び>を使用する。

また,次の各箇条で規定する項目も使用する。

A.2.1

マクロ参照  これの項目名は,次のとおりとする。

マクロ参照

“マクロ参照”は,すべての文字を大文字とする点を除き,本体 8.2

(基本記法)の“型参照”で規定し

た文字の順序列から構成する。単一のモジュール内では,同じ文字の順序列は,型参照及びマクロ参照の

両方に使用してはならない。


37

X5603-1990

A.2.2

生成規則参照  これの項目名は,次のとおりとする。

生成規則参照

“生成規則参照”は,本体 8.2 の“型参照”で規定した文字の順序列から構成する。

A.2.3

局所型参照  これの項目名は,次のとおりとする。

局所型参照

“局所型参照”は,本体 8.2 の“型参照”で規定した文字の順序列から構成する。

“局所型参照”は,新

しい型記法又は値記法のインスタンスの構文解析中に認識される型の識別子として使用する。

A.2.4

局所値参照  これの項目名は,次のとおりとする。

局所値参照

“局所値参照”は,本体 8.2 の“型参照”で規定した文字の順序列から構成する。

“局所値参照”は,新

しい型記法又は値記法のインスタンスの構文解析中に認識される値の識別子として使用する。

A.2.5

選択記号項目  これの項目名は,次のとおりとする。

“|”

この項目は,単一の文字|から構成する。

A.2.6

定義終結記号項目  これの項目名は,次のとおりとする。

この項目は,単一の文字>から構成する。

備考  定義開始のための項目<は,本体 8.13 による。

A.2.7

構文終端項目  これの項目名は,次のとおりとする。

任意列

“任意列”は,ASN.1 文字集合(本体 7.参照)の 0 個以上の文字を,引用符  (”)  でくくったもので構

成する。一つの引用符  (”)  を“任意列”内で使用する場合には,二つの引用符  (”)  を連続して用いる。

備考  マクロ記法における“任意列”は,解析する構文の対応する位置における,引用符  (”)  でく

くった文字の生起 (occurrence) を示す(

附属書 の A.3.7 参照)。

A.2.8

構文分類キーワード項目  これの項目名は,次のとおりとする。

“文字列”

“識別子”

“数字”

“空”

上の名前をもつ項目は,マクロ記法では引用符  (”)  を除く,名前の文字順序列から構成する。これら

の項目は,新しい記法のインスタンス中での,ある一定の文字順序列の生起を示すのにマクロ記法で使用

する。各項目によって規定する新しい記法における順序列及びその順序列を定義している箇条を

附属書 A

表 に示す。

備考  マクロ記法では,頭文字を見て,識別子と参照を区別することはできない。これは,CCITT 

告 X.409 との互換のための制限である。


38

X5603-1990

附属書 表 7  項目によって規定する順序列

項目名

定義している箇条

“文字列”

任意の文字順序列

“識別子”

本体 8.3

  識別子

“数  字”

本体 8.8

  数字

“空”

本体 8.7

  空

A.2.9

付加キーワード項目  これの項目名は,次のとおりとする。

MACRO

TYPE

NOTATION

VALUE

value

type

これらの名前をもつ項目は,その名前のつづりと同一の文字の順序列から構成する。

附属書 の A.2.2A.2.4 で規定した項目は,次に示すように使用する場合を除き,A.2.9 の順序列の一

つとしてはならない。

キーワード“MACRO”は,マクロ定義を開始するために使用する。キーワード“TYPE NOTATION”は,

新しい型記法を定義する生成規則の名前として使用する。キーワード“VALUE NOTATION”は,新しい値

記法を定義する生成規則の名前として使用する。キーワード“VALUE”は,結果としての値を割り当てる

“局所値参照”として使用する。キーワード“value”は,新しい記法の各インスタンスが,この位置にマ

クロ定義で規定した型のある値(本体の ASN.1 記法を使用した)を含むことを示すために使用する。キー

ワード“type”は,新しい記法の各インスタンスが,この位置に何らかの”_型”

(本体の ASN.1 記法を使

用した)を含むことを示すために使用する。

A.3

マクロ定義の記法

A.3.1

マクロは,次の記法”_マクロ定義”を使用して定義する。

_マクロ定義

::=

マクロ参照

MACRO

“::=”

BEGIN

_マクロ本体

END

_マクロ本体

::=

_型生成規則

_値生成規則

_支援生成規則

_型生成規則

::= TYPE NOTATION

“::=”

_マクロ代替リスト

_値生成規則

::= VALUE

NOTATION

“::=”


39

X5603-1990

_マクロ代替リスト

_支援生成規則

::=

_生成規則リスト|空

_生成規則リスト

::=

_生成規則|_生成規則リスト  _生成規則

_生成規則

::=

生成規則参照

“::=”

_マクロ代替リスト

A.3.2  A.3.6

の“_記号定義”における各“生成規則参照”は,

“_生成規則”の最初の項目として必ず 1

回指定する。

A.3.3

新しい型記法の各インスタンスは,

“マクロ参照”を示す文字順序列によって始まり,これにマクロ

定義で規定した生成規則を適用し,その後に“TYPE NOTATION”によって参照する文字順序列の一つが

続く。

A.3.4

新しい値記法の各インスタンスは,マクロ定義で規定した生成規則を適用し,その後に  “VALUE

NOTATION

”によって参照する文字順序列の一つが続く。

A.3.5

生成規則中の“_マクロ代替リスト”は,その生成規則によって参照する文字順序列の集合を規定

する。この集合は,次によって規定する。

_マクロ代替リスト

::=

マクロ代替|

_マクロ代替リスト

“|”

_マクロ代替

“_マクロ代替リスト”によって参照する文字順序列の集合は,

“_マクロ代替リスト”中の任意の“_

マクロ代替”生成規則によって参照するすべての文字順序列から構成する。

A.3.6

“マクロ代替”の記法は,次による。

_マクロ代替

::=

_記号リスト

_記号リスト

::=

_記号要素|_記号リスト  _記号要素

_記号要素

::=

_記号定義|_埋込み定義

記号定義

::=

任意列

生成規則参照

“文字列”

“識別子”

“数字”

“空”

type

type

(局所型参照)

value

(_マクロ型)

value

(局所値参照  _マクロ型)

value

(VALUE  _マクロ型)

_マクロ型

::=

局所型参照

_型

備考  マクロでは,そのマクロで定義する任意の“_マクロ型”を,ASN.1 が“_型”を規定する任

意の箇所に書くことができる。


40

X5603-1990

“_マクロ代替”は,

“_記号リスト”の最初の“_記号定義”によって参照する文字順序列を取り出し,

これに“_記号リスト”の第 2 の“_記号定義”によって参照する文字順序列を付け,順次この操作を行

い,最後の“_記号定義”で参照する文字順序列までを付けて作るすべての文字順序列を参照する。

備考  “_埋込み定義群”(使用する場合)は.これらの文字列の決定に直接関与しない。

A.3.7

“任意列”は,それを囲む 1 組の引用符  (”)  の間にある文字順序列を参照する。

A.3.8

“生成規則参照”は,それを識別する“_生成規則”によって規定する文字順序列を参照する。

A.3.9

“_記号定義”に対する四つの選択肢(

“文字列”

“識別子”

“数字”及び“空”

)によって参照す

る文字順序列を,

附属書 表 に示す。

備考  “文字列”によって参照する文字順序列は,マクロ記法のインスタンスでは,“_記号リスト”

の次の“_記号定義”によって参照する順序列の出現によって終了するのがよい。

A.3.10

“type”は,本体 12.1 で規定する“_型”記法の形式をした任意の記号の順序列を参照する。

備考  本体 12.1 の“_定義型”は,この場合,マクロ記法で定義する型を参照する“局所型参照”を

含んでもよい。

A.3.11

“type(局所型参照)

”は,本体 12.1 で規定する“_型”の形式をした任意の記号の順序列を参照し,

更にその型を”局所型参照”に割り当てる。その後,同じ“局所型参照”に割当てを行ってもよい。

A.3.12

“value(_マクロ型)

”は,

“_マクロ型”によって規定する型に対する“_値”記法(本体 12.6

で規定したもの)の形式をした任意の記号の順序列を参照する。

A.3.13

“value(局所値参照_マクロ型)”は,

“_マクロ型”によって規定する型に対する“_値”記法

(本体 12.6 で規定したもの)の形式をした任意の記号の順序列を参照し,更に,その型を“局所値参照”

に割り当てる。

その後,その”局所値参照”に割当てを行ってもよい。

A.3.14

“value(VALUE  _マクロ型)

”は,

“_マクロ型”によって規定する型に対する“_値”記法(本

体 12.6 で規定したもの)の形式をした任意の記号の順序列を参照し,更に値記法によって規定する値とし

てその値を返す。返される値の型は,

“_マクロ型”によって参照する型とする。

A.3.15

新しい記法の正しいインスタンスでは,

附属書 の A.3.14 又は A.3.16 で規定するような)VALUE

への割当てを,必ず 1 回行う。

A.3.16

“_埋込み定義群”の記法は,次による。

_埋込み定義群

::=

<_埋込み定義リスト>

_埋込み定義リスト

::=

_埋込み定義|

_埋込み定義リスト  _埋込み定義

_埋込み定義

::=

_局所型割当て|

_局所値割当て

_局所型割当て

::=

局所型参照

“::=”

_マクロ型

_局所値割当て

::=

局所値参照

_マクロ型

“::=”

_マクロ値

_マクロ値

::=

_値|


41

X5603-1990

局所値参照

“_埋込み定義群”における“_マクロ型”の“局所型参照”

(又は“_マクロ値”の“局所値参照”

への割当ては,

新しい記法のインスタンスの構文解析中に,

“_埋込み定義群”

が検出されたときに行われ,

“局所型参照”又は“局所値参照”の再定義が行われるまで続く。

備考1.  “_選択肢”において関連する“局所型参照”又は“局所値参照”を使用することは,構文

解析アルゴリズムの性質についての前提があることを意味する。この前提は,注釈で指示し

ておくとよい。例えば,

”_埋込み定義群”が後に続く“局所型参照”を使用すると,左から

右へ構文解析することを意味する。

2.

“局所値参照”

“VALUE”には,

“値(VALUE_マクロ型)

”構造又は“_埋込み定義”のい

ずれかによって値を割り当てることができる。いずれの場合も,

附属書 の A.3.14 で規定し

たように,値が返される。

A.4

新しい記法の使用  この規格で規定した“_型”(又は“_値”)記法を使用できる箇所には,同じモ

ジュール内のマクロ定義によって定義した型記法(又は値記法)を使用することができる。

備考  任意の複雑さの DEFAULT 値における値の構文解析を行うような型割当て及びマクロ定義を含

むモジュールを作ることができる。


42

X5603-1990

附属書 B(規定)  オブジェクト識別子構成要素値の ISO による割当て

B.1

ここでは,三つの弧を根から規定する。値,識別子及びその先の構成要素値の割当て機関は,次によ

る。

識別子

割当て機関

基本記法)

日本語拡張記法)

0 ccitt

ccitt CCITT

1 iso

iso

ISO 

2 joint-iso-ccitt

iso-ccitt

共通

附属書 参照

備考  この附属書は,ISO による値の割当てだけを示す。

B.2  B.1

で割り当てた識別子“ccitt”

“iso”

“joint-iso-ccitt”は,それぞれ“_名前形式”として使用して

よい。日本語拡張記法では,

“iso-ccitt 共通”も,

“_名前形式”として使用してよい。

B.3

ここでは,四つの弧を“iso”によって識別する節点から規定する。値,識別子及びその先の構成要素

値の割当て機関は,次による。

識別子

割当て機関

基本記法)

日本語拡張記法)

0 standard

規格

附属書 B B.4 を参照

1 registration-authority

登録機関

附属書 B B.5 を参照

2 member-body

加盟機関

附属書 B B.6 を参照

3 identified-organization

識別された組織

附属書 B B.7 を参照

これらの識別子は,

“_名前形式”として使用できる。

B.4

“規格”の下の弧は,国際規格の番号とする。一つの規格番号をもつ国際規格が複数の部 (part) で構

成されている場合には,特に断らない限り,その国際規格の部番号に対して弧があるものとする。それら

の弧は,その規格によって定義された値をもつ。

備考  一つの部からなる規格が,オブジェクト識別子を割り当てた後,複数の部になった場合には,

追加された部には,一つの部の規格の場合と同じように,オブジェクト識別子の割当てを続け

る。

B.5

“登録機関”の下に続く弧に関する規定は,将来この規格に含める。

備考  これは,特定の OSI 登録機関の識別手続きを確立していく作業に合わせて行う。

B.6

“加盟機関”の直下の弧は,数字 3 けたの国名コードをもつ。それは,JIS X 0304 に従い,その国の

ISO

加盟機関を識別するものとする(

備考参照)。この識別子にオブジェクト識別子構成要素の“_名前形

式”を用いることはできない。

“国名コード”の下の弧はこの規格では定義しない。

備考  JIS X 0304 に国名コードがあっても,その国にその国を代表する加盟機関があるとは限らない。


43

X5603-1990

加盟機関がある場合でも,その機関がオブジェクト識別子構成要素の割当ての体系を管理する

とは限らない。

B.7

“識別された組織”の直下の弧は,データコード国際標示子 (ICD) の値をもつ。その値は,ISO 6523

に従って登録機関によって割り当てられる。その ICD の値は,登録機関にオブジェクト識別子構成要素の

割当てを行うために登録された発行機関を識別する(

備考 1.及び備考 2.参照)。ICD の直下の弧は,発行機

関が ISO 6523 に従って割り当てた“組織コード”の値をもつ。

“組織コード”以下の弧に関しては,この

規格では定義しない(

備考 3.参照)。

備考1.  ISO 6523に従って,発行機関は,オブジェクト識別子構成要素にコードを割り当てる機関と

して登録機関に登録されていなければならない。発行機関は,この規格の規定に従って,数

値だけを割り当てなければならない。

2.

発行機関がオブジェクト識別子構成要素のための組織コードを割り当てるということが,こ

れらの符号をほかの目的で使用することを妨げることはない。

3.

“組織コード”で識別される組織が,その先の弧の割当てを,割当ての一意性を確保しなが

ら行っていくということが想定される。

4.

この項は,いかなる組織も,適当な発行機関から組織コードを得ることによって OBJECT

IDENTIFIER

の値を,それぞれの目的のために割り当てることが可能であることを示してい

る。ただし,その割当てが,他の組織による割当てと衝突しないようにしなければならない。

それによって,例えば,製造業者で所有している情報形式に OBJECT IDENTIFIER を割り当

てることが可能である。


44

X5603-1990

附属書 C(規定)  オブジェクト識別子構成要素値の CCITT 

による割当て

C.1

ここでは,三つの弧を根から規定する。値,識別子及びその先の構成要素値の割当て機関は,次によ

る。

識別子

割当て機関

基本記法)

日本語拡張記法)

0 ccitt

ccitt CCITT

1 iso

iso

ISO 

2 joint-iso-ccitt

iso-ccitt

共通

附属書 参照

備考  この附属書は,CCITT による値の割当てだけを示す。

C.2  C.1

で割り当てた識別子“ccitt”

“iso”及び“joint-iso-ccitt”は,それぞれ“_名前形式”として使用

してよい。日本語拡張記法では,

“iso-ccitt 共通”も,

“_名前形式”として使用してよい。

C.3

四つの弧を“ccitt”によって識別するノードから規定する。値,識別子及びその先の構成要素値の割

当ては,次による。

識別子

割当て機関

基本記法)

日本語拡張記法)

0 recommendation

勧告

附属書 C C.4 を参照

1 question

課題

附属書 C C.5 を参照

2 administration

主管庁

附属書 C C.6 を参照

3 network-operator

網運用者

附属書 CC.7 を参照

これらの識別子は,

”_名前形式”として使用できる。

C.4

“勧告”の下の弧は,a から z の識別子に割り当てられた 1 から 26 の値をとる。この下の弧は,文字

によって識別する CCITT 勧告の一連の番号をもつ。この下の弧は,CCITT 勧告によって必要に応して決

定する。a から z の識別子は,

“_名前形式”として使用してよい。

C.5

“課題”の下の弧は,CCITT 研究グループ (SG) に該当する値をとり,研究会期によって修飾する。

この値は,次の式によって計算する。

SG

番号+(期間  *  32)

ここで,

“期間”は,1984∼1988 年では 0,1988∼1992 年では 1 などとする。乗数は,10 進の 32 とする。

各研究グループの下の弧は,その研究グループに割り当てた課題に該当する値をとる。この下の弧は,

課題の研究を担当するグループ(例えば作業パーティ又はスペシャルラポータグループ)が必要に応じて

決定する。


45

X5603-1990

C.6

“主管庁”の下の弧は,CCITT

勧告 X. 121DCC (Data Country Code) の値をとる。この下の弧は,

X.121DCC

によって識別される国の電気通信当局が必要に応じて決定する。

C.7

“網運用者”の下の弧は,CCITT

勧告 X. 121DNIC (Data Network Identification Code)  の値をとる。こ

の下の弧は,DNIC によって識別される主管庁又は国際通信事業者として認められた私企業 (RPOA) が必

要に応じて決定する。


46

X5603-1990

附属書 D(規定)  オブジェクト識別子

構成要素値の ISO 及び CCITT による共通割当て

D.1

三つの弧を根ノードから規定する。値,識別子及びその先の構成要素値の割当て機関は,次による。

識別子

割当て機関

基本記法)

日本語拡張記法)

0 ccitt

ccitt CCITT

1 iso

iso

ISO 

2 joint-iso-ccitt

iso-ccitt

共通

D.2

D.5.参照

備考  この附属書は,ISO−CCITT 共通の値の割当てだけを示す。

D.2  D.1

で割り当てた識別子“ccitt”

“iso”及び“joint-iso-ccitt“は,それぞれ“_名前形式”として使用

してよい。日本語拡張記法では,

“iso-ccitt 共通”も、

“_名前形式”

,として使用してよい。

D.3

“joint-iso-ccitt”の下の弧は,ISO と CCITT との共通の標準化活動の分野を識別するため,

ISO 

CCITT

との共通使用のためのオブジェクト識別子構成要素の割当て手続”に従い,ISO 及び CCITT が合意

して,その都度割り当てた値とする。

参考  ISO と CCITT との共通使用のオブジェクト識別子構成要素の割当てのための登録機関は,米国

規格協会  (ANSI) (1430, Broadway, New York, N.Y.10018, USA)である。

D.4  D.3

によって識別する弧の下の弧の割当ては,その弧が割当てられた時点で定められる方法による。

備考  これは,共同作業分野についての CCITT 及び ISO のラポータの共同合意に対する権限の委任

が伴うものと予想される。

D.5  ISO

と CCITT との共通活動における当初の国際規格及び CCITT 勧告では,D.3 の手順の決定に先立っ

て,

附属書 又は附属書 に従ってオブジェクト識別子を割り当てる。国際規格又は CCITT 勧告によっ

て割り当てる情報オブジェクトのオブジェクト識別子は,D.3 の手順を決定するとき,変えてはならない。


47

X5603-1990

附属書 E(参考)  基本記法及び日本語拡張記法の例

この

附属書 には,基本記法及び日本語拡張記法によるデータ構造記述における ASN.1 の使用例を示す。

また,ASN.1 の各種の機能を使用するための指針を示す。

E.1

基本記法の例

E.1.1

人事記録の例  ASN.1 の使用例を,単純な人事記録によって説明する。

E.1.1.1

人事記録の情報例  人事記録の構造例及び特定の個人の値を,次に示す。

氏名:

John P Smith

肩書: Director

社員番号: 51

入社日: 1971 年 9 月 17 日

配偶者名: Mary T

Smith

子供の数: 2

子供情報

  氏名: Ralph T

Smith

  生年月日: 1957 年 11 月 11 日

子供情報

  氏名:

Susan B Jones

  生年月日: 1959 年 7 月 17 日

E.1.1.2

記録構造の ASN.1 記述  人事記録の構造は,データ型についての ASN.1 記法を使用して,次の形

式で記述する。

PersonalRecord

::=

  [APPLICATION 0 ] IMPLICIT SET

{ Name

,

title

[ 0 ]

VisibleString

,

number EmployeeNumber

,

dateOfHire

[ 1 ]

Date

,

nameOfSpouse

[ 2 ]

Name

,

children

[ 3 ]

IMPLICIT SEQUENCE OF

ChildrenInformation DEFAULT { }

}

ChildrenInformation

::= SET

{ Name

,

dateOfBirth

[ 0 ]

Date}

Name

::=

[APPLICATION 1 ] IMPLICIT SEQUENCE

{givenName

VisibleString

,

initial

VisibleString

,


48

X5603-1990

familyName VisibleString

}

EmployeeNumber

::=

[APPLICATION 2 ] IMPLICIT INTEGER

Date

::=

[APPLICATION 3 ] IMPLICIT VisibleString

_  _YYYYMMDD

この例は,ASN.1 構文の構文解析の概要を示している。構文構成要素“DEFAULT”は,

“SEQUENCE”

又 は “ SET ”の 要 素 に だ け 適 用 で き ,“ SEQUENCE OF ” の 要 素 には 適 用 で き な い 。 し た が って ,

“PersonalRecord”中の“DEFAULT{  }

”は,

“children”に適用し,

“ChildrenInformation”には適用しな

い。

E.1.1.3

記録値の ASN記述  John Smith の人事記録の値は,データ値の標準記法を使用して,次の形式

で記述する。

{

{givenName “John”, initial “P”, familyName“Smith”}

,

title

“Director” ,

number 51

,

dateOfHire

“1 9 7 1 0 9 1 7” ,

nameOfSpouse

{givenName

“Mary”, initial  “T” familyName “Smith”},

children

{{ {givenName

“Ralph”, initial  “T” familyName “Smith”},

date Of Birth

“1 9 5 7 1 1 1 1” },

 {{givenName

“Susan”, initial  “B” , familyName “Jones },

 dateOfBirth

“1 9 5 9 0 7 1 7” }}}

E.1.2

記法使用の指針  この規格の本体で定義するデータ型及び形式記法は,柔軟であり,これを使用し

て広範囲のプロトコルを設計することができる。しかし,この柔軟性は,特にこの記法を初めて使用する

場合,混乱を招くことがある。この附属書は,記法使用の指針及び例を示して,混乱を少なくすることを

意図している。組込みデータ型のそれぞれについて,使用上の指針を示す。本体で規定する文字列型(例

えば,VisibleString)及び

第 章の型は,ここでは取り扱わない。

E.1.2.1

    

E. 1.2.1.1

例えば,はい又はいいえで答えられる質問に対する回答のような論理(すなわち,2 状態)変数

の値をモデル化する場合に,論理型を使用する。

例 Employed::=BOOLEAN

E.1.2.1.2

論理型に参照名を割り当てる場合に,真の状態を表す参照名を選択する。

例 Married

::= BOOLEAN

(良い例)

 MaritalStatus

::= BOOLEAN

(悪い例)

E.1.2.2.4

参照。

E.1.2.2

    

E.1.2.2.1

基数又は整数の変数の値(実用上,大きさが無制限)をモデル化する場合に,整数型を使用する。

例 CheckingAccountBalance::=INTEGER

−−単位セント,負は超過振出し。

E.1.2.2.2

区別する値としての整数型の許容値の最小及び最大を定義する。

例 DayOfTheMonth ::=

INTEGER

{first (1) , last (31)}


49

X5603-1990

E.1.2.2.3

三つ以上の状態をとる変数の値をモデル化する場合に,固有値をもつ整数型を使用する。値の明

確な区別だけが必要な場合には,0 で始まる値を割り当てる。

例 DayOfThe

Week

::= INTEGER

{sunday (0), monday (1), tuesday (2),

wednesday (3), thursday (4), friday (5), saturday (6)

E.1.2.2.4

現在は二つの状態だけをとるが,プロトコルの将来の改正版で状態を追加するかもしれない変数

の値をモデル化する場合に,固有値をもつ整数型を使用する。

例 MaritalStatus ::=

INTEGER

{single (0), married (1)}

これは,次の拡張に備えたものである。

MaritalStatus

::=

INTEGER

{single (0), married (1), widowed (2)}

E.1.2.3

ビット列型

E.1.2.3.1

形式と長さを指定していないか又は他の場所で指定しており,ビットの長さが必ずしも 8 の倍数

ではない 2 進データをモデル化する場合に,ビット列型を使用する。

例 G3FacsimilePage ::= BIT

STRING

−−CCITT

勧告 T.4 に準拠する

−−ビット順序列

E.1.2.3.2

固定長ビット列の最高位ビット及び最低位ビットを固有ビットとして定義する。

例 Nibble

::=

BIT STRING {first (0) ,last (3)}

E.1.2.3.3

ビットマップは,特定の条件がこれに対応する順序付きのオブジェクトの集まりのそれぞれに適

用されるか否かを指示する論理変数の順序付き集まりとする。このビットマップをモデル化する場合に,

ビット列型を使用する。

例 SunnyDaysOfTheMonth ::=

BIT STRING {first (1), last (31)}

−−ビット i が 1 である場合にだけ,第 i 日は晴天

E.1.2.3.4

関連した論理変数の集まりの値をモデル化する場合に,固有値をもつビット列型を使用する。

例 PersonalStatus  ::= BIT

STRING

{married (0), employed (1), veteran (2), collegeGraduate (3)}

E.1.2.4

オクテット列型

E.1.2.4.1

形式と長さを指定していないか又は他の場所で指定しており,ビットの長さが 8 の倍数である 2

進データをモデル化する場合に,オクテット列型を使用する。

例 G4FacsimileImage ::=

OCTET STRING

−−CCITT

勧告 T.5 及び T.6 に準拠する

−−オクテットの順序列

E.1.2.4.2

文字列型が使用可能な場合,オクテット列型に優先して文字列型を使用する。

例 Surname ::= PrintableString

E.1.2.4.3

文字列型を使用してモデル化できない文字列情報をモデル化する場合に,オクテット列を使用す

る。文字のレパートリ及びそれのオクテットへの符号化を指定する。

例 PackedBCDString  ::=

OCTET STRING

−−数字の 0 から 9 までを使用し,オクテット当たり数字 2 個とする。

−−各数字は,0000 から 1001 で符号化する。

−−1111 は,パディングに使用する。

E.1.2.5

ヌル型


50

X5603-1990

E.1.2.5.1

順序列の要素が実際には存在しないことを示す場合に,ヌル型を使用する。

例 PatientIdentifier ::= SEQUENCE

{name VisibleString roomNumber CHOICE

 {INTEGER,

NULL

−−外来患者の場合−−}}

備考  “OPTIONAL”も同じ機能をもつ。

E.1.2.6

順序列型及び単一型順序列型

E.1.2.6.1

型が同じで,数が大きいか又は未知であって,順序が重要である変数の集まりをモデル化する場

合に,単型順序列型を使用する。

例 NamesOfMemberNations ::=

SEQUENCE OF VisibleString

−−国が加盟した順序

E.1.2.6.2

型が同じで,数が既知及び大きさが中程度であって,順序が重要である変数の集まりをモデル化

する場合に,順序列型を使用する。ただし,その変数の集まりの構成が,プロトコルの将来の改正版によ

って変化することはないものとする。

例 NamesOfOfficers ::= SEQUENCE

 {

presiden

VisibleString

,

vicePresident

VisibleString

,

secretary

VisibleString

}

E.1.2.6.3

型が異なっており,数が既知で大きさが中程度であって,順序が重要である変数の集まりをモデ

ル化する場合に,順序列型を使用する。ただし,その変数の集まりの構成がプロトコルの将来の改正版に

よって変化することはないものとする。

例 Credentials ::= SEQUENCE

 {

userNam

VisibleString

,

password

VisibleString

,

accountNumber

INTEGER

}

E.1.2.6.4

順序列型の要素の数が固定されているが,幾つかの型に分かれている場合には,使用目的がその

型から明確にならない各要素に対して参照名を割り当てる。

例 File ::= SEQUENCE

 {

ContentType

,

other FileAttributes

,

content

ANY  }

E.1.2.3.3.

  E.1.2.3.4 及び E.1.2.5 参照

E.1.2.7

集合型及び単一型集合型

E.1.2.7.1

数が既知で大きさが中程度であって,順序が重要でない変数の集まりをモデル化する場合に,集

合型を使用する。

例 UserName  ::= SET

 {

personalName

[0]

IMPLICIT

VisibleString,

organisationName

[1]

IMPLICIT

VisibleString,

countryName

[2]

IMPLICIT

VisibleString}


51

X5603-1990

E.1.2.7.2

数が既知でかなり小さな数,順序が重要でない変数の集まりの真部分集合又は部分集合である変

数の集まりをモデル化する場合に,

“OPTIONAL”付きの集合型を使用する。それぞれの変数の識別は,そ

れに付けたコンテキスト特定クラスのタグで行う。

例 UserName ::= SET

{

personalName

[0]

IMPLICIT VisibleString

,

organisationName

[1]

IMPLICIT

VisibleString

OPTIONAL ,

−−省略時値は,現地組織名−−

countryName

[2]

IMPLICIT

VisibleString

OPTIONAL ,

−−省略時値は,現地国名−− }

E.1.2.7.3

プロトコルの将来の改正版によってその構成が変化する可能性がある変数の集まりをモデル化

する場合に,集合型を使用する。それぞれの変数の識別は,それに付けたコンテキスト特定クラスのタグ

で行う。

例 UserName ::= SET

 {

personalName

[0]

IMPLICIT

VisibleString

,

organisationName

[1]

IMPLICIT

VisibleString

OPTIONAL ,

−−省略時値は,現地組織名−−

countryName

[2]

IMPLICIT

VisibleString

OPTIONAL ,

−−省略時値は,現地国名−−

−−他の任意選択属性は,今後の標準化課題−− }

E.1.2.7.4

集合型の要素数が固定されている場合,使用目的がその型から明確にならない各要素に対し参照

名を割り当てる。

例 FileAttributes ::=

SET

 {

owner

[0]

IMPLICIT

UserName

,

sizeOfContentInOctets

[1]

IMPLICIT

INTEGER

,

[2]

IMPLICIT

AccessControls

,

}

E.1.2.7.5

型が同じで,順序が重要ではない変数の集合をモデル化する場合に,単一型集合型を使用する。

例 Keywords

::= SET

OF

VisibleString

−−順序は任意

E.1.2.3.4

及び E.1.2.8.3 参照。

E.1.2.8

タグ付き型

E.1.2.8.1

他のすべてのデータ型と表現によって区別しなければならないデータ型で,一般的に有用で,か

つ応用から独立したものを定義する場合に,はん用クラスのタグ付き型を使用する。はん用クラスのタグ

付き型は,この規格の本体でだけ定義する。

例 EncryptionKey ::=

[UNIVERSAL 30] IMPLICIT OCTET STRING

−−7 オクテット

E.1.2.8.2

特定のプレゼンテーションコンテキスト内で広く分散して使用し,プレゼンテーションコンテキ

ストにおいて使用する他のすべてのデータ型と表現によって区別しなければならないデータ型を定義する

場合に,応用クラスのタグ付き型を使用する。

例 FileName ::=

[APPLICATION 8] IMPLICIT SEQUENCE

 {

directoryNam

VisibleString,


52

X5603-1990

directoryRelativeFileName

VisibleString}

E.1.2.8.3

集合の要素を区別するため,コンテキスト特定クラスのタグ付き型を使用する。明確な区別だけ

が必要な場合には,0 から数値タグを割り当てる。

例 CustomerRecord ::= SET

 {

name  [0]

IMPLICIT

VisibleString

,

mailingAddress

[1]

IMPLICIT

VisibleString

,

accountNumber

[2]

IMPLICIT

INTEGER

,

balanceDue

[3]

IMPLICIT

INTEGER

−−単位はセント−−}

E.1.2.8.4

特定の集合要素に応用クラスのタグが付いている場合,明確な区別が必要なとき又は将来必要と

なるとき以外は,コンテキスト特定クラスのタグを更に使用する必要はない。集合要素にはん用クラスの

タグが付いている場合には,更にコンテキスト特定クラスのタグを使用するのが望ましい。

例 ProductRecord

::=

SET

UniformCode ,

description

[0]

IMPLICIT VisibleString,

inventoryNo

[1]

IMPLICIT INTEGER ,

inventoryLevel

[2]

IMPLICIT INTEGER }

UniformCode

::=

[APPLICATION 13] IMPLICIT INTEGER

E.1.2.8.5 CHOICE

の選択肢を区別するため,コンテキスト特定クラスのタグ付き型を使用する。明確な区

別だけが必要な場合には,0 から数値タグを割り当てる。

例 CustomerAttribute ::=

CHOICE

{ name

[0]

IMPLICIT

VisibleString,

mailingAddress

[1]

IMPLICIT

VisibleString,

accountNumber

[2]

IMPLICIT INTEGER ,

balanceDue

[3]

IMPLICIT

INTEGER

−−単位はセント−−}

E.1.2.8.6

応用クラスのタグ付き型で CHOICE の特定の選択肢を定義している場合,明確な区別が必要なと

き又は将来必要となるとき以外は,コンテキスト特定クラスのタグを更に使用する必要はない。

例 ProductDesignator ::=

CHOICE

UniformCode,

description

[0]

IMPLICIT

VisibleString,

inventoryNo

[1] IMPLICIT INTEGER

  }

 UniformCode

:=

[APPLICATION 13] IMPLICIT INTEGER

E.1.2.8.7 CHOICE

の特定の選択肢にはん用のタグが付いている場合,一つ以上のはん用型を指定すること

が選択の目的であるとき以外は,コンテキスト特定クラスのタグを更に使用するのが望ましい。

例 CustomerIdentifier ::= CHOICE

{ name

VisibleString  ,

number

INTEGER

E.1.2.8.8

特定の組織内又は国内で使用し,その組織又は国で使用する他のすべてのデータ型と表現によっ

て区別しなければならないデータ型を定義する場合,私用クラスのタグ付き型を使用する。


53

X5603-1990

例 AcmeBadgeNumber ::=

[PRIVATE 2] IMPLICIT INTEGER

E.1.2.8.9

ここの指針では,規格に合致している限り,例の中で暗黙的なタグ付けを使用している。これに

よって,符号化規則に依存するが,応用によっては非常に望ましい簡潔な表現が行われることがある。ほ

かの応用では,簡潔性より,例えば,厳密な型検査を行う機能が重要なことがある。後者の場合には,明

示的なタグ付けを行うことができる。

E.1.2.7.1

E.1.2.7.2E.1.2.9.1,及び E.1.2.9.2 参照。

E.1.2.9

選択型

E.1.2.9.1

数が既知で大きさが中程度である変数の集まりから選択する変数をモデル化する場合に,

CHOICE

を使用する。選択の候補となる各変数は,コンテキスト特定クラスのタグによって識別する。

例 FileIdentifier  ::= CHOICE

 {

relativeName

[0]

IMPLICIT

VisibleString,

−−ファイル名(例えば,

“3 月進捗報告”

absoluteName

[1]

IMPLICIT

VisibleString ,

−−ファイル及び収録するディレクトリの名前

−−(例えば,

“<ウィリアムズ>3 月進捗報告”

serialNumber

[2]

IMPLICIT

INTEGER

−−システムがファイルに割り当てた識別子−−}

E.1.2.9.2

プロトコルの将来の改正版によって,その構成が変化する可能性がある変数の集まりから選択す

る変数をモデル化する場合に,CHOICE を使用する。選択の候補となる各変数には,コンテキスト特定ク

ラスのタグを付ける。

例 FileIdentifier  ::= CHOICE

 {

relativeName

[0]

IMPLICIT

VisibleString

,

−−ファイル名(例えば,

“3 月進捗報告”

absoluteName

[1]

IMPLICIT

VisibleString

,

−−ファイル及び収録するディレクトリの名前

−−(例えば,

“<ウイリアムズ>3 月進捗報告”

−−ファイル識別子の他の形式については,今後の標準化課題−−}

E.1.2.9.3

参照名は,使用目的がその型から明確にならない各選択肢に割り当てる。

例 FileIdentifier ::= CHOICE

 {

relativeName

[0]

IMPLICIT

VisibleString

,

−−ファイル名(例えば,

“3 月進捗報告”

absoluteName

[1]

IMPLICIT

VisibleString

,

−−ファイル及び収録するディレクトリの名前

−−(例えば,

“<ウイリアムズ>3 月進捗報告”

[2]

IMPLICIT

SerialNumber

−−システムが割り当てたファイルの識別子−−}

E.1.2.9.4

暗黙のタグ付けがこの規格の特定の応用において許されている場合でも,将来一つ以上の型が許

容される可能性があるときには,一つの型だけに対しても CHOICE を使用する。これによって,暗黙のタ

グ付けが行われる可能性が排除されるので,移行が容易になる。

例 Greeting ::=

[APPLICATION 12] CHOICE


54

X5603-1990

{VisibleString}

これは,次に備えたものである。

 Greeting

::=

[APPLICATION 12] CHOICE

{VisibleString.

Voice}

E.1.2.10

参照選択型

E.1.2.10.1

型が既に定義した CHOICE の特定の選択肢の型である変数をモデル化する場合,参照選択型を

使用する。

E.1.2.10.2

参照選択を次の例で説明する。

例えば,次の定義を考える。

FileAttribute

::= CHOICE

{date-last-used

INTEGER,

file-name

VisibleString}

上の定義に対して,次の定義例が可能となる。

(1)

例 1. CurrentAttributes::= SEQUENCE

{ date

_last_used <  FileAttribute

,

 file-name

<

FileAttribute

}

この場合の可能な値記法は,次のとおりである。

{ date

_last_used 27

,

 file-name

“ PROGRAM"

}

(2)

例 2. AttributeList ::= SEQUENCE

{ first-attribute

date-last-used

<

FileAttribute

 second-attribute

file-name

<

FileAttribute

}

この場合の可能な値記法は,次のとおりである。

{ first-attribute  27

,

 second-attribute

“PROGRAM” }

E.1.2.11

任意型

E.1.2.11.1

型を規定しないか又は ASN.1 を使用して他の場所で規定する変数をモデル化する場合に,任意

型を使用する。

例 MessageContents ::= ANY

−−ASN.1 記法を使用してこの規格の外部で型を

−−規定しているデータ要素

E.1.2.12

外部型

E.1.2.12.1

型を規定しないか又は型の規定に使用する記法を制約しないで,他の場所で規定する変数をモ

デル化する場合に,外部型を使用する。

例 FileContents ::= EXTERNAL

 DocumentList

::= SEQUENCE

OF

EXTERNAL

E.1.3

マクロ記法の使用例  利用者が,次の形式の型定義の記法を使用したいとする。

PAIR TYPEX

=.

.TYPEY=.

対応する値記法は,次のとおりとする。


55

X5603-1990

(X

=−−−−, Y=−−−−)

“.

”  及び  “----”  は,それぞれ,ASN.1 の型及び対応する値とする。

このマクロ型の記法は,次のように型と値の定義に使用することができる。

T1

::= PAIR

TYPEX

INTEGER

TYPEY

BOOLEAN

T2

::= PAIR

TYPEX

VisibleString

TYPEY

T1

型 T1 の値は,次のようになる。

T1 (X

=3Y=TRUE)

また,型 T2 の値は,次のようになる。

T2 (X

=  “Name”, Y= (X=4, Y=FALSE))

次のマクロ定義は,ASN.1 の拡張として,この新しい記法を確立するために使用することができる。

PAIR

MACRO

::= BEGIN

TYPE NOTATION

::=

 “TYPEX”

“=”

=type (Local-type-1)

−−ASN.1 の型を期待し,その型を

−−変数 Local-type-1 に割り当てる。

 “TYPEY”

“=”

 type

(Local-type-2)

−−第 2 の ASN.1 の型を期待し,その型を

−−変数 Local-type-2 に割り当てる。

VALUE NOTATION

::=

“(”

“X”

“=”

value (Local-value-1 Local-type-1)

−−Local-type-1 の型についての値を期待し,その値を

−−変数 Local-value-1 に割り当てる。

“,”

“Y”

“=”

value (Local-value-2 Local-type-2)

−−Local-type-2 の型についての値を期待し,その値を

−−変数 Local-value-2 に割り当てる。

<VALUE SEQUENCE

{Local-type-1,

Local-type-2}


56

X5603-1990

::=

{Local-value-1, Local

_value_2}>

−−この“埋込み定義”は,最終値を二つの型の順序列

−−の値として返す。

“)”

END

この例では,返される値の ASN.1 の型は,値記法の実際のインスタンスからは独立しているが,使用し

た型記法のインスタンスに依存している。他の場合には,型がマクロ定義によって完全に決定されること

も,使用する値記法のインスタンスに依存していることもある。しかし,いずれの場合にも,返される値

の型を決定するため,

“VALUE NOTATION”生成規則を調べる。

“TYPE NOTATION”生成規則は,型定義

の構文を単に定義するだけで,値記法のインスタンスを解析する際に,局所変数の初期値を決定する。

E.1.4

抽象構文の識別における ASN.1 の使用

E.1.4.1

プレゼンテーションサービス  (ISO 8822)  を使用するためには,

プレゼンテーションデータ値と呼

ぶ値の仕様記述及びそれらプレゼンテーションデータ値を

抽象構文と呼ばれる集合にまとめたものが必要

となる。これら集合の各々には ASN.1 の型のオブジェクト識別子型の

抽象構文名を付与する。

E.1.4.2 ASN.1

は,プレゼンテーションデータ値の仕様記述及びそれらを名前付き抽象構文にまとめるため

の一般的な手段として使用できる。

E.1.4.3

その最も簡単な使い方は,名前付き抽象構文中のすべてのプレゼンテーションデータ値が,ASN.1

の型の値であるような ASN.1 単一形式となる。この型は通常選択型とし,すべてのプレゼンテーションデ

ータ値がこの選択型から選択された型となる。この場合,ASN.1 モジュール記法が,最初に定義する型と

してこの選択型を含むことを推奨する。この選択型の定義の後には,それらが直接又は間接的に参照する

非はん用の型の定義が続く。

備考  これは,他のモジュールで定義した型を参照することを禁止するものではない。

E.1.4.4

応用層の規格に出現する文字列の例を次に示す。例の終わりは,混乱を避けるため”例の終わり”

で示す。

ISOxxxx-yyyy DEFINITIONS

::=

BEGIN

PDU

::= CHOICE

 {

connect-pdu.

data-pdu

CHOICE

{

.....

,

.....

},

 ....

}

.....

END

この規格は,プレゼンテーションデータ値の集合に対する抽象構文名として ASN.1 のオブ

ジェクト識別子値

{iso standard xxxx abstract-syntax (1)}

を割り付ける。プレゼンテーションデータ値のそれぞれは,ASN.1 型“ISOxxxx-yyyy. PDU”

の値とする。対応する ASN.1 のオブジェクト記述子値は,次のとおりとする。


57

X5603-1990

“....................”

ASN.1

のオブジェクト識別子値(次の 1 行目)とオブジェクト記述子値(次の 2 行目)

である,次のもの(JIS X 5604 で情報オブジェクトに割り付けられている。

)は.この抽

象構文名と共に転送構文名として使用できる。

{joint-iso-ccitt asn1 (1) basic-encoding (1)}

“Basic Encoding of a single ASN.1 type”

“例の終わり”

E.1.4.5  E.1.4.4

の応用層の規格において,

{joint-iso-ccitt asn1

(1)

basic-encoding (1)

を適用して得られる転送構文を,その抽象構文に対し必す(須)としてもよい。

E.2

日本語拡張記法による例

E.2.1

人事記録の例  ASN.1 の使用例を,単純な人事記録によって説明する。

E.2.1.1

人事記録の情報例  人事記録の構造例及び特定の個人の値を,次に示す。

氏名:

John P Smith

肩書: Director

社員番号: 51

入社日: 1971 年 9 月 17 日

配偶者名: Mary T

Smith

子供の数:

2

子供情報

  氏名: Ralph T

Smith

  生年月日: 1957 年 11 月 11 日

子供情報

  氏名:

Susan B Jones

  生年月日: 1959 年 7 月 17 日

E.2.1.2

記録構造の ASN.1 記述  人事記録の構造は,データ型についての ASN.1 記法を使用して,次の形

式で記述する。

_人事記録

:=

[APPLICATION 0] IMPLICIT SET

_氏名

  肩書 [0]

VisibleString

,

  番号

_社員番号

  入社日 [1]

_日付

  配偶者名 [2]

_氏名

  子供 [3]

IMPLICIT SEQUENCE OF

_子供情報  DEFAULT { }}

_子供情報

::=   SET

_氏名

  生年月日 [0]

_日付}


58

X5603-1990

_氏名

::=

[APPLICATION 1] IMPLICIT SEQUENCE

{名 VisibleString

,

  イニシアル VisibleString

,

  姓 VisibleString

}

_社員番号

::=

[APPLICATION 2] IMPLICIT INTEGER

_日付

::=

[APPLICATION 3] IMPLICIT VisibleString

−−YYYYMMDD

この例は,ASN.1 構文の構文解析の概要を示している。構文構成要素“DEFAULT”は,

“SEQUENCE”

又は“SET”の要素にだけ適用でき,“SEQUENCE OF”の要素には適用できない。したがって,“_人事

記録”中の“DEFAULT{  }”は,

“子供”に適用し,

“_子供情報”には適用しない。

E.2.1.3

記録値の ASN.1 記述  John Smith の人事記録の値は,データ値の標準記法を使用して,次の形式で

記述する。

{名  “John”

,イニシアル“P”

,姓“Smith”

肩書

“Director”

番号 51,

入社日

“19710917”,

配偶者名

{名“Mary”

,イニシアル“T”

,姓  “Smith”

子供

{名“Ralph”

,イニシアル“T”

,姓“Smith”

生年月日  “19571111”  }

{名“Susan”

,イニシアル“B”

,姓“Jones”

生年月日“19590717”  }

E.2.2

記法使用の指針  この規格の本体で定義するデータ型及び形式記法は,柔軟であり,これを使用し

て広範囲のプロトコルを設計することができる。しかし,この柔軟性は,特にこの記法を初めて使用する

場合,混乱を招くことがある。この附属書は,記法使用の指針及び例を示して,混乱を少なくすることを

意図している。組込みデータ型のそれぞれについて,使用上の指針を示す。本体で規定する文字列型(例

えば,VisibleString)及び

第 章の型は,ここでは取り扱わない。

E.2.2.1

論理型

E.2.2.1.1

例えば,はい又はいいえで答えられる質問に対する回答のような論理(すなわち,2 状態)変数

の値をモデル化する場合に,論理型を使用する。

例  雇用  ::=BOOLEAN

E.2.2.1.2

論理型に参照名を割り当てる場合に,

真の状態を表す参照名を選択する。

_既婚

::= BOOLEAN

(良い例)

_結婚状態

::= BOOLEAN

(悪い例)

  E.2.2.2.4 参照。

E.2.2.2

整数型

E.2.2.2.1

基数又は整数の変数の値(実用上,大きさが無制限)をモデル化する場合に,整数型を使用する。

例  当座預金口座残高  ::= INTEGER

−−単位セント,負は超過振出し。

E.2.2.2.2

区別する値としての整数型の許容値の最小及び最大を定義する。


59

X5603-1990

例  _月日  ::= INTEGER {最初 (1).最後 (31)}

E.2.2.2.3

三つ以上の状態をとる変数の値をモデル化する場合に,固有値をもつ整数型を使用する。値の明

確な区別だけが必要な場合には,0 で始まる値を割り当てる。

_週日

::= INTEGER  {日曜 (0),月曜 (1),火曜 (2),

水曜 (3),木曜 (4),金曜 (5),土曜 (6)}

E.2.2.2.4

現在は二つの状態だけをとるが,プロトコルの将来の改正版で状態を追加するかもしれない変数

の値をモデル化する場合に,固有値をもつ整数型を使用する。

_結婚状態

::= INTEGER  {未婚 (0) ,既婚 (1)}

これは,次の拡張に備えたものである。

_結婚状態

::= INTEGER  {未婚 (0),既婚 (1),やもめ (2)}

E.2.2.3

ビット列型

E.2.2.3.1

形式と長さを指定していないか又は他の場所で指定しており,ビットの長さが必ずしも 8 の倍数

ではない 2 進データをモデル化する場合に,ビット列型を使用する。

例 G3 ファクシミリページ  = BIT STRING

−−CCITT

勧告 T.4 に準拠する

−−ビット順序列

E.2.2.3.2

固定長ビット列の最高位ビット及び最低位ビットを固有ビットとして定義する。

例  _ニブル  ::= BIT STRING {最初 (0),最後 (3)}

E.2.2.3.3

ビットマップは,特定の条件がこれに対応する順序付きのオブジェクトの集まりのそれぞれに適

用されるか否かを指示する論理変数の順序付き集まりとする。このビットマップをモデル化する場合に,

ビット列型を使用する。

例  _月内晴天日  :BIT STRING  {最初 (1),最後 (31)}

−−ビット i が 1 である場合にだけ,第 i 日は晴天

E.2.2.3.4

関連した論理変数の集まりの値をモデル化する場合に,固有値をもつビット列型を使用する。

例  _個人状態  ::=BIT STRING

{既婚 (0),雇用 (1),古参 (2),大学卒業 (3)}

E.2.2.4

オクテット列型

E.2.2.4.1

形式と長さを規定していないか又は他の場所で規定しており,ビットの長さが 8 の倍数である 2

進データをモデル化する場合に,オクテット列型を使用する。

例 G4 ファクシミリイメージ  ::=OCTET STRING

−−CCITT

勧告 T.5 及び T.6 に準拠する

−−オクテットの順序列

E.2.2.4.2

文字列型が使用可能な場合,オクテット列型に優先して文字列型を使用する。

例  _姓  ::=PrintableString

E.2.2.4.3

文字列型を使用してモデル化できない文字列情報をモデル化する場合に,オクテット列を使用す

る。文字のレパートリ及びそれのオクテットへの符号化を指定する。

例  パック BCD 文字列  ::=OCTET STRING

−−数字の 0 から 9 までを使用し,オクテット当たり数字 2 個とする。

−−各数字は,0000 から 1001 で符号化する。

−−1111 は,パディングに使用する。


60

X5603-1990

E.2.2.5

ヌル型

E.2.2.5.1

順序列の要素が実際には存在しないことを示す場合に,ヌル型を使用する。

例  患者識別  ::=SEQUENCE

{

名前 VisibleString

部屋番号 CHOICE

{ INTEGER

,

  NULL

−−外来患者の場合−−}}

備考  “OPTIONAL”  も同じ機能を備えている。

E.2.2.6

順序列型及び単一型順序列型

E.2.2.6.1

型が同じで,数が大きいか又は未知であって,順序が重要である変数の集まりをモデル化する場

合に,単一型順序列型を使用する。

例  _加盟国名  :SEQUENCE OF VisibleString

−−国が加盟した順序

E.2.2.6.2

型が同じ,数が既知及び大きさが中程度であって,順序が重要である変数の集まりをモデル化す

る場合に,順序列型を使用する。ただし,その変数の集まりの構成が,プロトコルの将来の改正版によっ

て変化することはないものとする。

_職名

::= SEQUENCE

社長 VisibleString

,

副社長 VisibleString

,

秘書   VisibleString

E.2.2.6.3

型が異なっており,数が既知で大きさが中程度であって,順序が重要である変数の集まりをモデ

ル化する場合に,順序列型を使用する。ただし,その変数の集まりの構成がプロトコルの将来の改正版に

よって変化することはないものとする。

_証明書

::= SEQUENCE

利用者名 VisibleString

,

パスワード VisibleString

,

口座番号 INTEGER

E.2.2.6.4

順序列型の要素の数が固定されているが,幾つかの型に分かれている場合には,使用目的がその

型から明確にならない各要素に対して参照名を割り当てる。

_ファイル

::= SEQUENCE

_内容種別,

その他

_ファイル属性,

内  容 ANY

E.2.2.3.3E.2.2.3.4

及び E.2.2.5 参照

E.2.2.7

集合型及び単一型集合型

E.2.2.7.1

数が既知で大きさが中程度であって,順序が重要でない変数の集まりをモデル化する場合に,集

合型を使用する。

_利用者名

::= SET

個人名 [0] IMPLICIT

VisibleString

,

組織名 [1] IMPLICIT

VisibleString

,


61

X5603-1990

国名 [2] IMPLICIT

VisibleString

}

E.2.2.7.2

数が既知でかなり小さな数,順序が重要でない変数の集まりの真部分集合又は部分集合である変

数の集まりをモデル化する場合に,

“OPTIONAL”付きの集合型を使用する。それぞれの変数の識別は,そ

れに付けたコンテキスト特定クラスのタグで行う。

_利用者名

::= SET

個人名 [0] IMPLICIT

VisibleString,

組織名 [1] IMPLICI

TVisibleString

OPTIONAL ,

−−省略時値は,現地組織名−−

国名 [2] IMPLICIT

VisibleStringOPTIONAL

,

−−省略時値は,現地国名−−

E.2.2.7.3

プロトコルの将来の改正版によってその構成が変化する可能性がある変数の集まりをモデル化

する場合に,集合型を使用する。それぞれの変数の識別は,それに付けたコンテキスト特定クラスのタグ

で行う。

_利用者名

::= SET

個人名 [0] IMPLICIT

VisibleString,

組織名 [1]

IMPLICIT Visible String OPTIONAL

,

−−省略時値は,現地組織名−−

国名 [2] IMPLICIT

VisibleString

OPTIONAL ,

−−省略時値は,現地国名−−

−−他の任意選択属性は,今後の標準化課題−− }

E.2.2.7.4

集合型の要素数が固定されている場合,使用目的がその型から明確にならない各要素に対し参照

名を割り当てる。

_ファイル属性

::= SET

所有者 [0]

IMPLICIT

_利用者名,

オクテットによる内容の大きさ [1]

IMPLICIT INTEGER,

[2]

IMPLICIT

_アクセス制御 ,

E.2.2.7.5

型が同じで,順序が重要ではない変数の集合をモデル化する場合に,単一型集合型を使用する。

例  _キーワード  ::= SET OF VisibleString−−順序は任意

E.2.2.3.4

及び E.2.2.8.3 参照。

E.2.2.8

タグ付き型

E.2.2.8.1

他のすべてのデータ型と表現によって区別しなければならないデータ型で,一般的に有用で,か

つ応用から独立したものを定義する場合に,はん用クラスのタグ付き型を使用する。はん用クラスのタグ

付き型は,この規格の本体でだけ定義する。

例  _暗号キー  ::=  [UNIVERSAL 30] IMPLICIT OCTET STRING

−−7 オクテット

E.2.2.8.2

特定のプレゼンテーションコンテキスト内で広く分散して使用し,プレゼンテーションコンテキ

ストにおいて使用する他のすべてのデータ型と表現によって区別しなければならないデータ型を定義する

場合に,応用クラスのタグ付き型を使用する。

_ファイル名

::= [APPLICATION

8] IMPLICIT

SEQUENCE


62

X5603-1990

ディレクトリ名 VisibleString

,

ディレクトリ関連ファイル名 VisibleString

E.2.2.8.3

集合の要素を区別するため,コンテキスト特定クラスのタグ付き型を使用する。明確な区別だけ

が必要な場合には,0 から数値タグを割り当てる。

_顧客記録

::= SET

名前 [0]

IMPLICIT VisibieString

,

郵送住所 [1]

IMPLICIT VisibleString

,

口座番号 [2]

IMPLICIT INTEGER   ,

請求残高 [3]

IMPLICIT INTEGER

−−単位はセント−−}

E.2.2.8.4

特定の集合要素に応用クラスのタグが付いている場合,明確な区別が必要なとき又は将来必要と

なるとき以外は,コンテキスト特定クラスのタグを更に使用する必要はない。集合要素にはん用クラスの

タグが付いている場合には,更にコンテキスト特定クラスのタグを使用するのが望ましい。

_製品記録

::= SET

_均一符号

記  述 [0]

IMPLICIT VisibleString

,

在庫番号 [1]

IMPLICIT INTEGER

,

在庫レベル [2]

IMPLICIT INTEGER

_均一符号

::=

[APPLICATION13] IMPLICIT

INTEGER

E.2.2.8.5 CHOICE

の選択肢を区別するため,コンテキスト特定クラスのタグ付き型を使用する。明確な区

別だけが必要な場合には,0 から数値タグを割り当てる。

_顧客属性

::= CHOICE

名前 [0]

IMPLICIT VisibleString

,

郵送住所 [1]

IMPLICIT VisibleString

,

口座番号 [2]

IMPLICIT INTEGER ,

請求残高 [3]

IMPLICIT INTEGER

−−単位はセント−−}

E.2.2.8.6

応用クラスのタグ付き型で CHOICE の特定の選択肢を定義している場合,明確な区別が必要なと

き又は将来必要となるとき以外は,コンテキスト特定クラスのタグを更に使用する必要はない。

_製品指定

::= CHOICE

_均一符号

記述 [0]

IMPLICIT VisibleString,

在庫番号 [1]

IMPLICIT INTEGER

_均一符号

::=

[APPLICATION 13] IMPLICIT INTEGER

E.2.2.8.7 CHOICE

の特定の選択肢にはん用のタグが付いている場合,一つ以上のはん用型を指定すること

が選択の目的であるとき以外は,コンテキスト特定クラスのタグを更に使用するのが望ましい。

_顧客識別

::=

CHOICE

名前 VisibleString,

番号 INTEGER}


63

X5603-1990

E.2.2.8.8

特定の組織内又は国内で使用し,その組織又は国で使用する他のすべてのデータ型と表現によっ

て区別しなければならないデータ型を定義する場合,私用クラスのタグ付き型を使用する。

例  _アクメバッジ番号::= [PRIVATE E.2.2]  IMPLICIT INTEGER

E.2.2.8.9

ここの指針では,規格に合致している限り,例の中で暗黙的なタグ付けを使用している。これに

よって,符号化規則に依存するが,応用によっては非常に望ましい簡潔な表現が行われることがある。他

の応用では,簡潔性より,例えば,厳密な型検査を行う機能が重要なことがある。後者の場合には,明示

的なタグ付けを行うことができる。

E.2.2.7.1

E.2.2.7.2E.2.2.9.1,及び E.2.2.9.2 参照。

E.2.2.9

選択型

E.2.2.9.1

数が既知で大きさが中程度である変数の集まりから選択する変数をモデル化する場合に,

CHOICE

を使用する。選択の候補となる各変数は,コンテキスト特定クラスのタグによって識別する。

_ファイル識別子

::=

CHOICE

相対名 [0]

IMPLICIT VisibleString,

−−ファイル名(例えば,

“3 月進捗報告”

絶対名 [1]

IMPLICIT VisibleString,

−−ファイル及び収録するディレクトリの名前

−−(例えば,

“<ウイリアムズ>3 月進捗報告”

通し番号 [2]

IMPLICIT INTEGER

−−システムがファイルに割り当てた識別子−−}

E.2.2.9.2

プロトコルの将来の改正版によって,その構成が変化する可能性がある変数の集まりから選択す

る変数をモデル化する場合に,CHOICE を使用する。選択の候補となる各変数には,コンテキスト特定の

タグを付ける。

_ファイル識別子

::=

CHOICE

相対名 [0]

IMPLICIT VisibleString,

−−ファイル名(例えば,

”3 月進捗報告”

絶対名 [1]

IMPLICIT VisibleString,

−−ファイル及び収録するディレクトリの名前

−−(例えば,

“<ウイリアムズ>3 月進捗報告”

−−ファイル識別子の他の形式については,今後の標準化課題−−}

E.2.2.9.3

参照名は,使用目的がその型から明確にならない各選択肢に割り当てる。

_ファイル識別子

::=

CHOICE

相対名 [0]

IMPLICIT VisibleString,

−−ファイル名(例えば,

”3 月進捗報告”

絶対名 [1]

IMPLICIT VisibleString,

−−ファイル及び収録するディレクトリの名前

−−(例えば,

“<ウイリアムズ>3 月進捗報告”

[2]

IMPLICIT

_通し番号

−−システムが割り当てたファイルの識別子−−}


64

X5603-1990

E.2.2.9.4

暗黙のタグ付けがこの規格の特定の応用において許されている場合でも,将来一つ以上の型が許

容される可能性があるときには,一つの型だけに対しても CHOICE を使用する。これによって,暗黙のタ

グ付けが行われる可能性が排除されるので,移行が容易になる。

_あいさつ

::= [APPLICATION

12] CHOICE

{VisibleString}

これは,次に備えたものである。

_あいさつ

::= [APPLICATION

12] CHOICE

{VisibleString,_音声}

E.2.2.10

参照選択型

E.2.2.10.1

型が既に定義した CHOICE の特定の選択肢の型である変数をモデル化する場合,参照選択型を

使用する。

E.2.2.10.2

参照選択型を次の例で説明する。

例えば,次の定義を考える。

_ファイル属性

::= CHOICE

{最終使用日 INTEGER

,

ファイル名 VisibleString

上の定義に対して,次の定義例が可能となる。

(1)

例 1._現在の属性  = SEQUENCE

最終使用日

_ファイル属性

ファイル名

_ファイル属性

この場合の可能な値記法は,次のとおりである。

最終使用日 27

,

ファイル名

“PROGRAM”

(2)

例 2._属性リスト  ::= SEQUENCE

第 1 の属性

最終使用日

_ファイル属性

第 2 の属性

ファイル名

_ファイル属性

この場合の可能な値記法は,次のとおりである。

第 1 の属性

 27

,

第 2 の属性

“PROGRAM”

E.2.2.11

任意型

E.2.2.11.1

型を規定しないか又は ASN.1 を使用して他の場所で規定する変数をモデル化する場合に,任意

型を使用する。

例  _メッセージ内容  ::= ANY

−−ASN.1 記法を使用してこの規格の外部で型を

−−規定しているデータ要素

E.2.2.12

外部型

E.2.2.12.1

型を規定しないか又は型の規定に使用する記法を制約しないで,他の場所で規定する変数をモ

デル化する場合に,外部型を使用する。

_ファイル内容

::=

EXTERNAL

_ドキュメントリスト

::=

SEQUENCE OF


65

X5603-1990

  EXTERNAL

E.2.3

マクロ記法の使用例  利用者が,次の形式の型定義の記法を使用したいとする。

PAIR TYPEX

=.

.  TYPEY  =.

対応する値記法は,次のとおりとする。

(X

=−−−−, Y=−−−−)

“.

”  及び“−−−−”  は,それぞれ,ASN.1 の型及び対応する値とする。

このマクロ型の記法は,次のように型と値の定義に使用することができる。

T1

::= PAIR

TYPEX

INTEGER

TYPEY

BOOLEAN

T2

::= PAIR

TYPEX

VisibleString

TYPEY

T1

型 T1 の値は,次のようになる。

(X

=3, Y=TRUE)

また,型丁 2 の値は,次のようになる。

(X=“名前”, Y= (X=4, Y=FALSE))

次のマクロ定義は,ASN.1 の拡張として,この新しい記法を確立するために使用することができる。

PAIR

MACRO

::= BEGIN

TYPE NOTATION

::=

“TYPEX”

“=”

 type

(_局所型 1)

−−ASN.1 の型を期待し,その型を

−−変数  _局所型 1 に割り当てる。

“TYPEY”

“=”

 type

(_局所型 2)

−−第 2 の ASN.1 の型を期待し,その型を

−−変数_局所型 2 に割り当てる。

VALUE NOTATION

::=

(”

“X”

“=”

 value

(_局所値 1  _局所型 1)

−−_局所型 1 の型についての値を期待し,その値を

−−変数_局所値 1 に割り当てる。

“,  ”

“Y”

“=”

 value

(_局所値 2  _局所型 2)


66

X5603-1990

−−_局所型 2 の型についての値を期待し,その値を

−−変数_局所値 2 に割り当てる。

<VALUE SEQUENCE{_局所型 1,

_局所型 2}

::=

{局所値 1,_局所値 2}>

−−この“埋込み定義”は,最終値を二つの型の順序列

−−の値として返す。

“)”

END

この例では,返される値の ASN.1 の型は,値記法の実際のインスタンスからは独立しているが,使用し

た型記法のインスタンスに依存している。他の場合には,型がマクロ定義によって完全に決定されること

も,使用する値記法のインスタンスに依存していることもある。しかし,いずれの場合にも,返される値

の型を決定するため,

“VALUE NOTATION”生成規則を調べる。

“TYPE NOTATION”生成規則は,型定義

の構文を単に定義するだけで,値記法のインスタンスを解析する際に,局所変数の初期値を決定する。

E.2.4

抽象構文の識別における ASN.1 の使用

E.2.4.1

プレゼンテーションサービス  (ISO 8822)  を使用するためには,

プレゼンテーションデータ値と呼

ぶ値の仕様記述及びそれらプレゼンテーションデータ値を

抽象構文と呼ばれる集合にまとめたものが必要

となる。これら集合の各々には ASN.1 の型のオブジェクト識別子型の

抽象構文名を付与する。

E.2.4.2 ASN.1

は,プレゼンテーションデータ値の仕様記述及びそれらの名前付き抽象構文にまとめるため

の一般的な手段として使用できる。

E.2.4.3

その最も簡単な使い方は,名前付き抽象構文中のすべてのプレゼンテーションデータ値が,ASN.1

の型の値であるような ASN.1 単一形式となる。この型は通常選択型とし,すべてのプレゼンテーションデ

ータ値がこの選択型から選択された型となる。この場合,ASN.1 モジュール記法が,最初に定義する型と

してこの選択型を含むことを推奨する。この選択型の定義の後には,それらが直接又は間接的に参照する

非はん用の型の定義が続く。

備考  これは,他のモジュールで定義した型を参照することを禁止するものではない。

E.2.4.4

応用層の規格に出現する文字列の例を次に示す。例の終わりは,混乱を避けるため“例の終わり”

で示す。

例  ISO xxxx_yyyy DEFINITIONS  ::=

BEGIN

_PDU

::= CHOICE

{接続−pdu  .

.  ,

データ−pdu CHOICE

.,

},

 END

この規格は,プレゼンテーションデータ値の集合に対する抽象構文名として ASN.1 オブジェク

ト識別子値


67

X5603-1990

{iso 規格 xxxx 抽象構文 (1)}

を割り付ける。プレゼンテーションデータ値のそれぞれは,ASN.1 型“ISOxxxx-yyyy. PDU”の

値とする。対応する ASN.1 のオブジェクト記述子値は,次のとおりとする。

“.

ASN.1

のオブジェクト識別子値(次の 1 行目)とオブジェクト記述子値(次の 2 行目)である,

次のもの(JIS X 5604 で情報オブジェクトに割り付けられている。

)は,この抽象構文名と共に転

送構文名として使用できる。

{iso-ccitt 共通 asn1 (1) 基本符号化 (1)}と

“Basic Encoding of single ASN.1type”

“例の終わり”

E.2.4.5  E.2.4.4

の応用層の規格において,

{iso-ccitt 共通 asn1 (1) 基本符号化 (1)}

を適用して得られる転送構文を,その抽象構文に対し必す(須)としてもよい。

E.2.5

日本語の値を使用する例  値として日本語の値を使用する例を,簡単な人事記録によって示す(

1

)

(

1

)

次に示す例は,E.1.1及び E.2.1に示す例に類似してはいるが,記録の値だけでなく記録の構造も

異なる。

(1)

人事記録の情報例

氏    名:

山田  太郎

肩    書:

取締役

社員番号: 51

入  社  日: 1971 年 9 月 17 日

配偶者名:

山田  花子

子供の数:

2

子供情報

  氏    名:

山田  健一

  生年月日: 1957 年 11 月 11 日

子供情報

  氏  名:

山田  和子

  生年月日: 1959 年 7 月 17 日

(2)

記録構造の ASN.1 記述

_人事記録

::=

[APPLICATION 0] IMPLICIT SET

_氏名

肩書 [0] GraphicString

,

番号

_社員番号

入社日 [1]

_日付

配偶者名 [2]

_氏名

子供 [3]

IMPLICIT SEQUENCE OF

_子供情報 DEFAULT{}}

_子供情報

::= SET


68

X5603-1990

_氏名

生年月日 [0]

_日付

_氏名

::=

[APPLICATION 1] IMPLICIT SEQUENCE

姓 GraphicString

,

名 GraphicString

_社員番号

::=

[APPLICATION 2] IMPLICIT INTEGER

_日付

::=

[APPLICATION 3] IMPLICIT VisibleString

−− YYMMDD

(3)

記録値の ASN.1 記述

{姓  “山田”

,名“太郎”

肩書

“取締役”

,

番号 51

,

入社日

“19710917”

,

配偶者名

{姓“山田”

,名“花子”

子供

{姓

“山田”

,名  “健一”

生年月日 "19571111"

{姓

“山田”

,名“和子”

生年月日“19590717”


69

X5603-1990

附属書 F(参考)  ASN.1 記法の要約

ASN.1

記法の要約を次に示す。

(1)

本体の 8.で定義した項目を次に示す。

型参照

識別子

値参照

モジュール参照

注  釈

数  字

2

進列

16

進列

文字列

“::=”

BOOLEAN

INTEGER

BIT

STRING

OCTET

NULL

SEQUENCE

OF

SET

IMPLICIT

CHOICE

ANY

EXTERNAL

OBJECT


70

X5603-1990

IDENTIFIER

OPTIONAL

DEFAULT

COMPONENTS

UNIVERSAL

APPLICATION

PRIVATE

TRUE

FALSE

BEGIN

END

DEFINITIONS

(2)

この規格では,次の生成規則を終端記号としての(1)の項目と共に使用する。

_モジュール定義

::=

モジュール参照

DEFINITION

“::=”

BEGIN

_モジュール本体

END

_モジュール本体

::=

_割当てリスト  |  空

_割当てリスト

::=

_割当て  |  _割当てリスト_割当て

_割当て

::=

_型割当て  |  _値割当て

_外部型参照

::=

モジュール参照

型参照

_外部値参照

::=

モジュール参照

値  参  照

_定義型

::=

_外部型参照  |  型参照

_定義値

::=

_外部値参照  |  値参照

_型割当て

::=

型参照

“::=”

_型

_値割当て

::=

値参照

_型

“::  =”

_値

_型

::=

_組込み型  |  _定義型

_組込み型

::=

_論理型

_整数型


71

X5603-1990

_ビット列型

_オクテット列型

_ヌル型

_順序列型

_単一型順序列型

_集合型

_単一集合型

_選択型

_参照選択型

_タグ付き型

_任意型

_オブジェクト識別子型

_文字列型

_有用型

_名前付き型

::=

識別子  _型  |  _型|  _参照選択型

_値

::=

_組込み値  |  _定義値

_組込み値

::=

_論理値

_整数値

_ビット列値

_オクテット列値

_ヌル値

_順序列値

_単一型順序列値

_集合値

_単一型集合値

_選択値

_参照選択値

_タグ付き値

_任意値

_オブジェクト識別子値

_文字列値

_名前付き値

::=

識別子_値  |  _値

_論理型

::= BOOLEAN

_論理値

::= TRUE

FALSE

_整数型

::= INTEGER

INTEGER

  {_名前付き数字リスト}

_名前付き数字リスト

::=

_名前付き数字|

_名前付き数字リスト,_名前付き数字

_名前付き数字

::=

識別子  (_符号付き数字)|

識別子(_定義値)


72

X5603-1990

_符号付き数字

::=

数字|−数字

_整数値

::=

_符号付き数字|識別子

_ビット列型

::= BIT

STRING

BIT

STRING

{名前付きビットリスト}

_名前付きビットリスト

::=

_名前付きビット|

_名前付きビットリスト,_名前付きビット

_名前付きビット

::=

識別子(数字)|

識別子(_定義値)

_ビット列値

::=

2

進列  |  16 進列{識別子リスト}|{  }

_識別子リスト

::=

識別子  |  _識別子リスト,識別子

_オクテット列型

::= OCTET

STRING

_オクテット列値

::=

2

進列  |  16 進列

_ヌル型

::= NULL

_ヌル値

::= NULL

_順序列型

::= SEQUENCE{_要素型リスト}|

SEQUENCE

{}

_要素型リスト

::=

_要素型  |  _要素型リスト,_要素型

_要素型

::=

_名前付き型  |

_名前付き型  OPTIONAL|

_名前付き型  DEFAULT_値|

_COMPONENTS OF  _型

_順序列値

::=

{_要素値リスト}

{  }

_要素値リスト

::=

_名前付き値|_要素型リスト,_名前付き値

_単一型順序列型

::= SEQUENCE

OF

  _型|SEQUENCE

_単一型順序列値

::=

{_値リスト  }|{  }

_値リスト

::=

_値|_値リスト,_値

_集合型

::= SET{_要素型リスト}|SET{  }

_集合値

::=

{_要素値リスト}|{  }

_単一型集合型

::= SET

OF

  _型|SET

_単一型集合値

::=

{_値リスト}|{  }

_選択型

::= CHOICE{_代替型リスト}

_代替型リスト

::=

_名前付き型|_代替型リスト,_名前付き型

_選択値

::=

_名前付き値

_参照選択型

::=

識別子<  _型

_参照選択値

::=

_名前付き値

_タグ付き型

::=

_タグ_型|_タグ IMPLICIT_型

_タグ

::=

[_クラス_クラス番号]

_クラス番号

::=

番号|_定義値

_クラス

::= UNIVERSAL

|APPLICATION|

PRIVATE

  |  空


73

X5603-1990

_タグ付き値

::=

_値

_任意型

::=

ANY

_任意値

::=

_型  _値

_オブジェクト識別子型

::=

OBJECT IDENTIFIER

_オブジェクト識別子値

::=

{_オブジェクト識別子構成要素リスト}|

{_定義値

_オブジェクト識別子構成要素リスト}

_オブジェクト識別子構成要素リスト

::=

_オブジェクト識別子構成要素|

_オブジェクト識別子構成要素

_オブジェクト識別子構成要素リスト

_オブジェクト識別子構成要素

::=

_名前形式  |

_数字形式  |

_名前及び数字形式

_名前形式

::=

識別子

_数字形式

::=

数字|_定義値

_名前及び数字形式

::=

識別子(_数字形式)

_文字列型

::=

型参照

_文字列値

::=

文字列

_有用型

::=

型参照

(3)

本体の 29.では,次の文字列型を定義する。

NumericString

PrintableString

TeletexString

T61String

VideotexString

VisibleString

ISO646String

IA5String

GraphicString

GeneralString

(4)

本体の

第 章では,次の有用型を定義する。

GeneralizedTime

UTCTime

EXTERNAL

ObjectDescriptor

(5)

マクロ定義のため,

附属書 の A.2.では,次の補助項目を定義する。

マクロ参照

生成規則参照

局所型参照


74

X5603-1990

局所値参照

“|”

任  意  列

“文字列”

“識別子”

“数  字”

“空”

MACRO

TYPE

NOTATION

VALUE

value

type

(6)

附属書 では,次の生成規則を(5)の項目及び終端記号としての(1)の項目と共に使用する。

_マクロ定義

::=

マクロ参照

MACRO

“::=”

BEGIN

_マクロ本体

END

_マクロ本体

::=

_型生成規則

_値生成規則

_支援生成規則

_型生成規則

::= TYPE NOTATION

“::=”

マクロ代替リスト

_値生成規則

::= VALUE

NOTATION

“::=”

_マクロ代替リスト

_支援生成規則

::=

_生成規則リスト  |  空

_生成規則リスト

::=

_生成規則|_生成規則リスト  _生成規則

_生成規則

::=

生成規則参照

“::=”

_マクロ代替リスト

_マクロ代替リスト

::=

_マクロ代替  |

_マクロ代替リスト

“|”

_マクロ代替

_マクロ代替

::=

_記号リスト


75

X5603-1990

_記号リスト

::=

_記号要素  |  _記号リスト  _記号要素

_記号要素

::=

_記号定義  |  _埋込み定義群

_記号定義

::=

任意列

生成規則参照

“文字列”

“識別子”

“数字”

“空”

type

type

(局所値参照)

value

(_マクロ型)

value

(局所型参照  _マクロ型)

value

(VALUE  _マクロ型)

_マクロ型

::=

局所型参照      _型

_埋込み定義群

::=

<_埋込み定義リスト>

_埋込み定義リスト

::=

_埋込み定義    |

_埋込み定義リスト  _埋込み定義

_埋込み定義

::=

_局所型割当て  |  _局所値割当て

_局所型割当て

::=

局所型参照

“::=”

_マクロ型

_局所値割当て

::=

局所値参照

_マクロ型

“::=”

_マクロ値

_マクロ値

::=

_値|局所値参照


76

X5603-1990

用語索引

1.

用語索引(五十音順)

用語

英語

箇条番号

IA5String IA5String

29.

値 value

3.1

値  参  照 value

reference

8.4

値割当て value

assignment

11.2

暗  黙 implicit

8.28.1424.

一般化時刻 generalized

time

30.

ASN.1

文字集合 ASN.1character

set

3.97.

EXTERNAL EXTERNAL

8.28.1432.E.1.2.12E.2.2.12

END END

8.28.149.1

応  用 application

5.824.

オクテット列 octet

string

3.188.28.1416.E.1.2.4.E.2.2.4

OPTIONAL optional

8.2.8.1418.20.

オブジェクト記述子 object

descriptor

33.

オブジェクト識別子 object

identifier

8.28.1426.

オブジェクト識別子木

object identifier tree

26.9

附属書 B,附属書 C

型 type

3.2

型  参  照 type

reference

8.2

型割当て type

assignment

11.1

外部型参照 externaltypereference

9.410.

キーワード項目 keyword

items

8.14

偽 false

8.28.143.15

空  項  目 empty

item

8.7

組込み型 built-in

type

12.112.7

組込み値 built-in

value

12.612.7

GraphicString graphicstring

29.

構成要素型 component

type

3.5

構  造  型 structured

type

3.4

項  目 items

3.98.

COMPONENTS OF

components of

8.28.1418.

参照選択型 selection

type

2.313.210.

識  別  子 identifier

8.3

集  合 set

8.28.1420.E.1.2.7E.2.2.7

私  用 private

5.824.

真 true

8.28.14

GeneralString generalstring

29.

時  刻 time

30.31.

16

進列項目

hexadecimal string item

8.10

順  序  列 sequence

8.28.1418.E.1.2.6E.2.2.6

数字項目 number

item

8.8

整  数 integer

3.168.28.1414.E.1.2.2E.2.2.2

生成規則 productions

5.1

選  択 choice

8.28.1422.E.1.2.9E.2.2.9

タ  グ tags

3.6.E.1.2.8E.2.2.8

タグ付き型 tagged

type

24.E.1.2.8E.2.2.8

タグ付け tagging

3.7

単一型集合 setof

8.28.1421.

単一型順序列 sequence of

8.28.1419.E.1.2.6E.2.2.6


77

X5603-1990

用語

英語

箇条番号

単  純  型 simple

type

3.3

注  釈 comment

7.38.6

T61

文字列 T61String

29.

TeletexString teletexstring

29.

DEFINITIONS DEFINITIONS

8.149.1

DEFAULT DEFAULT

8.28.1418.20.

2

進列項目

binary string item

8.9

NumericString numericstring

29.29.3

任  意 any

8.28.1419.225.E.1.2.11E.2.2.11

ヌ  ル null

8.28.1417.E.1.2.5E.2.2.5

はん(汎)用 universal

5.824.

BEGIN BEGIN

8.28.149.1

VisibleString visiblestring

29.

ビット列 bitstring

3.178.28.1415.E.1.2.3E.2.2.3

VideotexString videotexstring

29.

PrintableString printablestring

29.29.4

マ  ク  ロ macros

附属書 A A.1.A.4., E.1.3E.2.3

モジュール module

9.

モジュール参照 module

reference

8.5

文字列型

character string type

27.29.

文字列項目

character string item

8.11

UTC

universal time, UTC time

31.

有  用  型 useful

types

28.30.31.32.33.

要  約 summary

附属書 F

予  約  語

reserved character sequence

8.2.2

例 examples

E.1.1

E.1.3E.2.1E.2.3

論  理 boolean

3.138.28.1413.E.1.2.1E.2.2.1

割当て記号項目 assignment

item

8.12

2.

用語索引(アルファベット順)

英語

用語

箇条番号

any

任  意

8.28.1419.225.E.1.2.11E.2.2.11

application

応  用

5.824.

ASN.1 character set

ASN.1

文字集合

3.97.

assignment item

割当て記号項目

8.12

BEGIN BEGIN

8.28.149.1

binary string item

2

進列項目

8.9

bitstring

ビット列

3.178.28.1415.E.1.2.3E.2.2.3

boolean

論  理

3.138.28.1413.E.1.2.1E.2.2.1

built-in type

組込み型

12.112.7

built-in value

組込み値

12.612.7

character string type

文字列型

27.29.

character string item

文字列項目

8.11

choice

選  択

8.28.1422.E.1.2.9E.2.2.9

comment

注  釈

7.38.6

components of

COMPONENTS OF

8.28.1418.

component type

構成要素型

3.5

DEFAULT DEFAULT

8.28.14,18.20.

DEFINITIONS DEFINITIONS

8.149.1

empty item

空  項  目

8.7


78

X5603-1990

英語

用語

箇条番号

END END

8.28.149.1

examples

E.1.1

E.1.3E.2.1E.2.3

EXTERNAL EXTERNAL

8.28.14.32.E.1.2.12E.2.2.12

externaltypereference

外部型参照

9.410.

false

8.28.143.15

generalstring GeneralString

29.

generalized time

一般化時刻

30.

graphicstring GraphicString

29.

hexadecimal string item

16

進列項目

8.10

IA5String IA5String

29.

identifier

識  別  子

8.3

implicit

暗  黙

8.28.1424.

integer

整  数

3.178.28.1414.E.1.2.2E.2.2.2

items

項  目

3.98.

keyword items

キーワード項目

8.14

nlacros

マ  ク  ロ

附属書 A A.1.A.4., E.1.3E.2.3

module

モジュール

9.

module reference

モジュール参照

8.5

number item

数字項目

8.8

numericstring NumericString

29.29.3

null

ヌ  ル

8.2.8.1417.E.1.2.5E.2.2.5

object descriptor

オブジェクト記述子

33.

object identifier

オブジェクト識別子

8.28.1426.

object identifier tree

オブジェクト識別子木

3.1926.9

附属書 B,附属書 C

octet string

オクテット列

8.28.1416.E.1.2.4E.2.2.4

optional OPTIONAL

8.28.1418.20.

printablestring PrintableString

29.29.4

private

私  用

5.824.

productions

生成規則

5.1

reserved character sequence

予  約  語

8.2.2

selection type

参照選択型

2.313.210.

sequence

順  序  列

8.28.1418.E.1.2.6E.2.2.6

sequence of

単一型順序列

8.28.14.19.E.1.2.6E.2.2.6

set

集  合

8.28.1420.E.1.2.7E.2.2.7

set of

単一型集合

8.28.1421.

simple type

単  純  型

3.3

structured type

構  造  型

3.4

summary

要  約

附属書 F

T61String T61

文字列

29.

tagged type

タグ付き型

24.E.1.2.8E.2.2.8

tags

タ  グ

3.6E.1.2.8E.2.2.8

tagging

タグ付け

3.7

teletexstring TeletexString

29.

time

時  刻

30.31.

true

8.28.14

type

3.2

type assignment

型割当て

11.1

type reference

型  参  照

8.2

universal

はん(汎)用

5.824.

universal time

UTC

31.

useful types

有  用  型

28.30.31.32.33.


79

X5603-1990

英語

用語

箇条番号

UTC time

UTC

31.

value

3.1

value assignment

値割当て

11.2

value reference

値  参  照

8.4

videotexstring VideotexString

29.

visiblestring VisibleString

29.


80

X5603-1990

参考  ASN.1 の拡張

この参考は,ISO 8824 の補遺 (Addendum 1) として作成中のものの内容を示すと共に,必要に応じてこ

れに伴う日本語拡張の対応箇所も示した。

この内容とほぼ同等のものが,この規格の基となった ISO 8824 に将来反映されると思われるので参考の

ために示すことにした。

概  要  この参考の各箇条  (AI)  は ASN.1 のそれぞれの拡張項目に対応している。各箇条では,拡張

を行うために必要な本体の各箇条の変更部分を示す。箇条 では,種々の拡張の結果として,予約語の追

加が必要となるような,体系的な変更を示している。

JIS X 5604

参考では,ASN.1 の基本符号化規則に必要な変更を示している。

A.

任意選択付き順序列要素の区別

(1)

本体の 18.3 を次の文章に置き換える。

“OPTIONAL”

又は “DEFAULT” が付いた一連の“_要素型”のそれぞれについて,それら”_要

素型”のタグとそのすぐ後に続く“_要素型”のタグとは,異なっていなければならない。

B.

省略時タグ

(1)

本体の 9.4 のキーワード "DEFINITIONS" の後に“_省略時タグ”を付加し,次の

備考 5.を追加する。

備考5.  モジュール定義に対する“_省略時タグ”の値は,そのモジュール内で明示的に定義した型

にだけ影響する。

それは,インポート(移入)された型の解釈には影響しない。

(2)

本体の 9.1 に次の生成規則を追加する。

_省略時タグ::=EXPLICIT TAGS  |  IMPLICIT TAGS  |  空

(3)

本体の 9.1 の後に新たに次の 9.2 を追加し,以降を再番号付けする。

9.2

“_省略時タグ”が“空”である場合, “EXPLICIT TAGS” と解釈する。

備考  24.では, “EXPLICIT TAGS” と “IMPLICIT TAGS” の両方の意味を定義する。

(4)

本体の 24.1 の“_タグ付き型”に対し,新たに次の選択肢を追加する。

_タグ EXPLICIT 型

(5)

本体の 24.6 の後に新たに次の 24.7 を追加し,以降を再番号付けする。

24.7

次のいずれかの場合,タグ付けの構文は,明示的タグ付けを示す。

(a)

選択肢“_タグ EXPLICIT_型”を使用する場合

(b)

選択肢“_タグ  _型”を使用し,そのモジュールに対する“_省略時タグ”の値が“EXPLICIT TAGS”

である場合

(c)

選択肢“_タグ_型”を使用し,そのモジュールに対する“_省略時タグ”の値が“IMPLICIT TAGS”

であるが,

“_型”で定義される型が選択型又は任意型である場合

その他の場合,タグ付けの構文は,暗黙的タグ付けを示す。

(6)

本体の 24.8 の“IMPLICIT は”を“暗黙的タグ付けは”に置き換える。

C.

列挙型

(1)  3.16

の後に次の文章を追加し,以降を再番号付けする。


81

X5603-1990

3.17

列挙型 (enumerated type)   型記法の一部として,その型の値に対し個別の識別子を付与する単純

型。

(2)

本体の 14.の後に次の箇条を追加し,以降を再番号付けする。

15.

列挙型の記法

15.1

列挙型(3.17 参照)は,次の記法“_列挙型”によって参照する。

_列挙型

::= ENUMERATED{_列挙}

_列挙

::=

_名前付き数字|_名前付き数字,_列挙

備考1.  この記法では,各値は異なる整数値に関連する識別子をもつ。このことは,互換性のある拡

張を容易にするための値の表現方法を提供するが,値自身が整数値としての意味をもつとは

限らない。

2.

“_列挙”の中の“_名前付き数字”の中身の数値は,順番である必要はなく,連続してい

る必要もない。

15.2

“_名前付き数字”の各々に対し,

“識別子”及び“_符号付き数字”は,

“_列挙”中の他のすべ

ての“識別子”及び“_符号付き数字”と異なっていなければならない。

15.3

列挙型のタグは,はん用クラスの番号 10 とする。

15.4

列挙型の値は,記法“_列挙値”によって定義する。

_列挙型  ::  =  識別子

(3)

附属書 に次の変更を行い,現在の E.1.2.2.3 及び E.1.2.2.4 を整数型の例ではなく,列挙型の例とする。

(a)

それらを E.1.2.3.1 及び E.1.2.3.2 に再番号付けする。

(b)

標題“E.1.2.3

列挙型”を追加する。

(c)

“固有値をもつ整数型”を“列挙型”に置き換える。

(d)

“INTEGER”を“ENUMERATED”に置き換える。

(4)

附属書 に次の変更を行い,現在の E.2.2.2.3 及び E.2.2.2.4 を整数型の例ではなく,列挙型の例とする。

(a)

それらを E.2.2.3.1 及び E.2.2.3.2 に再番号付けする。

(b)

標題“E.2.2.3

列挙型”を追加する。

(c)

“固有値をもつ整数型”を“列挙型”に置き換える。

(d)

“INTEGER”を“ENUMERATED”に置き換える。

D.

モジュール識別,インポート(移入)及びエキスポート(移出)

(1)

本体の 9.1 を次のように置き換える。

9.1

“_モジュール定義”は,次の生成規則によって定義する。

_モジュール定義

::=

_モジュール識別子

DEFINITIONS

“::=”

BEGIN

_モジュール本体

END

_モジュール識別子

::=

モジュール参照  _割当て識別子

_割当て識別子

::=

_オブジェクト識別子値  |  空

_モジュール本体

::=

_エキスポート  _インポート

_割当てリスト|空


82

X5603-1990

_エキスポート

::= EXPORTS_エキスポートするシンボル;

|空

_エキスポートするシンボル

::=

_シンボルリスト  |  空

_インポート

::= IMPORTS_インポートするシンボル;  |空

_インポートするシンボル

::=

_モジュールリストからのシンボル|空

_モジュールリストからのシンボル

::=

_モジュールからのシンボル

_モジュールリストからのシンボル|

_モジュールからのシンボル|

_モジュールからのシンボル

::=

_シンボルリスト FROM  _モジュール識別子

_シンボルリスト

::=

_シンボル,_シンボルリスト|

_シンボル

_シンボル

::=

型参照|値参照

_割当てリスト

::=

_割当て  _割当てリスト|_割当て

_割当て

::=

_型割当て|_値割当て

(2)

本体の 9.1 に次の備考を追加する。

備考6.  “マクロ参照”(附属書 参照)も,“_シンボル”として現れる。

(3)

本体の 9.2 の最後の文を次のように変更する。

“_割当て”順序列の集合は,その集合内に現れる“型参照”又は“値参照”について,次のいず

れかの条件を満たす場合に一貫性及び完全性をもつ。

(1)

その“型参照”又は“値参照”ごとに,型又は値にそれぞれ名前を結び付ける“_型割当て”又は“_

値割当て”がそれぞれ一つある場合。

(2)

“型参照”又は“値参照”が“_シンボル”として現れる“_モジュールからのシンボル”が一つあ

る場合。

(4)

新たに次の 9.4

9.8 を追加し,既存の 9.4 を 9.9 として再番号付けする。

9.4

“_割当て識別子”が“_オブジェクト識別子値”を含む場合,

“_オブジェクト識別子値”は明確

かつ一意にモジュールを識別する。

備考  他から明確にモジュールを参照できるためにオブジェクト識別子を割り当てることを推奨する。

9.5

“_モジュールからのシンボル”中の“_モジュール識別子”は,別の“_モジュール定義”にも

現れなければならない。ただし,その“_モジュール識別子”が“_オブジェクト識別子値”を含む場合

には,二つのモジュールの間で“モジュール参照”が異なっていてもよい。

備考1.  同じモジュール名をもつ二つのモジュールからシンボルをインポートする場合に限り,一方

のモジュールで使用した“モジュール参照”と異なった“モジュール参照”を使用する。異

なる名前を使用することによって,インポートするモジュールの本体でそれらの名前が使用

可能となる(9.8参照)

2.

“モジュール参照”と“_オブジェクト識別子値”の両方が,モジュールを参照するのに使

用されているときは,

“_オブジェクト識別子値”を最終的な値とする。

9.6

“_エキスポートするシンボル”におけるそれぞれの“_シンボル”は,構成しようとするモジュ

ールにおいて定義する。

備考  モジュール外から参照するすべてのシンボルは,

“_エキスポートするシンボル”に含まれるこ

とを推奨する。そのようなシンボルがない場合,

“_エキスポート”のではなく“_エキスポー


83

X5603-1990

トするシンボル”における選択子“空”を選択する。

9.7

“_モジュールからのシンボル”におけるそれぞれの“_シンボル”は,

“_モジュールからのシン

ボル”における“_モジュール識別子”によって示されるモジュールで定義する。更に“_エキスポート

をそのモジュールの定義で使用する場合,

“_シンボル”はその“_エキスポートするシンボル”の中に現

れなければならない。

9.8

“_モジュールからのシンボル”における“_シンボル”は,

“_モジュール本体”における(

“型

参照”の場合)

“_定義型”又は(

“値参照”の場合)

“_定義値”に現れる。

“_シンボル”に関連する意

味は,対応する“_モジュール識別子”によって示されるモジュールの中で,その“_シンボル”がもっ

ている意味とする。

“_シンボル”が“_割当てリスト”における“_割当て”に,又は“_モジュールか

らのシンボル”の一つ以上の他のインスタンスに現れる場合,そのようなシンボルは,

“モジュール参照”

が“_モジュールからのシンボル”におけるモジュール参照となっているような“_外部型参照”又は“_

外部値参照”においてだけ使用する(9.9 参照)

。シンボルがそのように現れない場合,それは直接“_定

義型”又は“_定義値”において使用する。

(5)

本体の 9.4 を 9.9 とし,次のように修正する。

9.9

9.8

での規定を除き,

“型参照”又は“値参照”は,次の生成規則で規定される“_外部型参照”又

は“_外部値参照”を使用することによって定義したモジュールとは別のモジュールで参照することがで

きる。

(6)

本体の 10.2 の始めを次のように修正する。

9.9

での規定を除き,選択肢のうちの“型参照”又は“値参照”は,型又は値を型参照又は値参照に

割り当てている(11.1 及び 11.2 参照)モジュール内でだけ使用する。

E.

実数型

(1)

本体の 3.16 の後に新たに次の箇条を追加し,再番号付けをする。

3.18

実数型  (real type)  16.2 参照)  個々の値が実数の集合の要素である単純型。

(2)  14.

の後に新たに次の箇条を追加し,以降を再番号付けをする。

16.

実数型に関する記法

16.1

実数型(3.18 参照)は,記法“_実数型”によって参照する。

_実数型  ::=  REAL

16.2

実数型の値は,三つの整数の M,B 及び E を含む次の式によって規定できる実数及び値 PLUS−

INFINITY

と MINUS−INFINITY とする。

M

×B

E

M

は仮数,B は基数及び E は指数と呼ぶ。B は値 2 又は 10 を取り,M と E は任意の正又は負の整

数値を取る。M, B 及び E のすべての組合せが可能とする。

備考1.  この型は,一般的な浮動小数点ハードウエアに格納可能な任意の数及び10進数を有限の文字

で表現した任意の数を正確に表現することができる。

2.

JIS X 5604

に規定するこの型の符号化は,実数値の 2 進表現として基数 2,8 又は 16,及び

文字表現として基数 10 の使用を可能とする。その選択は,送信者の任意とする。

16.3

実数型のタグは,はん用クラスの番号 9 とする。

16.4

実数型の値を定義する記法は,

“_実数値”とする。


84

X5603-1990

_実数値

::=

_数値実数値|_特殊実数値

_数値実数値

::=

{_仮数,_基数,_指数}|0

_仮数

::=

_符号付き数字

_基数

::=

2

|10

_指数

::=

_符号付き数字

_特殊実数値

::= PLUS−INFINITY  | MINUS−INFINITY

形式“0”は,値 0 に対して使用する。

“_数値実数値”における“

{_仮数,_基数,_指数}

”の形式

は,値 0 に対しては使用しない。

(3)

附属書 の E.1.2.3 の前でこの参考の C.(3)で追加した E.1.2.3(列挙型)の後に新たに次の箇条を追加

する。

E.1.2.4

実数型

E.1.2.4.1

適当な数字をモデル化するために実数型を使用する。

 

AngleInRadians

::=REAL

piREAL

::= {3141592653589793238462643383279, 10, −30}

(4)

附属書 の E.2.2.3 の前でこの参考の C.(4)で追加した E.2.2.3(列挙型)の後に,新たに次の箇条を追

加する。

E.2.2.4

実数型

E.2.2.4.1

適当な数字をモデル化するために実数型を使用する。

_ラジアン角度::=REAL

円周率 REAL::= {3141592653589793238462643383279, 10, −30}

F.

部分型

(1)

本体の 3.16

3.183.21 及び 3.23 の備考の最後の文を削除する。

(2)  3.37

の後に次の定義を追加し,以降を再番号付けする。

3.38

(親型の)部分型  [subtype (of a parent type)]    その値を他の幾つかの型(親型)の値の部分集合と

して規定する型。

3.39

(部分型の)親型  [parent type (of a subtype)]    部分型を定義するために使用する型。

備考  親型は,自分自身が幾つかの他の型の部分型となってもよい。

3.40

部分型仕様  (subtype specification)    ある型の記法と結合して使用できる記法で,その型の部分型を

定義するもの。

3.41

部分型値集合  (subtype value set)    部分型仕様の一部を構成する記法で,部分型に含むことができる,

親型の値の集合を規定するもの。

(3)

本体の 33.5 の後に新たに次の章を追加し,以降を再番号付けする。


85

X5603-1990

第 章  部分型 

34.

部分型記法

34.1

部分型は,親型の記法の後に適切な部分型仕様を続けたもので定義する。部分型仕様の記法は,複

数の選択肢記法から成り,その各々は部分型値集合又は制限から成る。

部分型の値は,すべての部分型値集合の和集合をもち,かつすべての制限を適用して,34.7 及び 34.8 

規定に従って定まる。

34.2

値をもたない部分型を作るために,部分型記法を使ってはならない。

34.3

部分型の記法は,

“_部分型”とし,次のとおりとする。

_部分型

::=

_親型  _部分型仕様  |

SET

_サイズ制限  OF  _型  |

SEQUENCE

  _サイズ制限  OF  _型  |

_親型

::=

_型

34.4

“_部分型仕様”の記法が“_参照選択型”の記法に続くとき,親型は“_参照選択型”とし,

“_

参照選択型”の記法の中の“_型”とはしない。

34.5

“_部分型仕様”の記法が単一型集合型記法又は単一型順序列型記法に続くとき,それは単一型集

合型記法又は単一型順序列型記法の中の“_型”に適用し,単一型集合型又は単一型順序列型には適用し

ない。

備考  特別な記法“SET  _サイズ制限  OF”及び“SEQUENCE_  サイズ制限  OF”は,単純な

場合に,一般的な場合の記法より読みやすい別の機構を提供するために使用する。より複雑な

場合は,一般的な機構が必要となる。

34.6

部分型仕様の記法は,

“_部分型仕様”とし,次のとおりとする。

_部分型仕様

::=

(_部分型代替  _部分型代替リスト)

_部分型代替リスト

::=

“|”_部分型代替  _部分型代替リスト)|  空

_部分型代替

::=

_部分型値集合  |  _部分型制限

34.7

それぞれの“_部分型値集合”は,34.8 で規定する条件に従い,その部分型に含まれる親型の値の

個数(0 個でもよい)を規定する。親型の値は,それが一つ以上の部分型値集合に含まれ,かつ 34.8 の規

定で排除されていない限り,部分型の値とする。部分型は,

“_部分型制限”の選択肢を条件として,部分

型値集合に含まれる値の和集合から構成する。

34.8

個々の“_部分型制限”の選択肢は,値が満たさなければならない要件を規定することによって,

特定の値が部分型に含まれることを禁止する。値がこれらのすべての選択肢を満たす場合にだけ部分型に

含まれる。

34.9

“_部分型値集合”及び“_部分型制限”に対して幾つかの異なった形式の記法を提供する。それ

を次に示す。その構文と意味は,35.に定義する。35.に規定し,

表 に要約したように,幾つかの記法は特

定の親型にだけ適用できる。

_部分型値集合

::=

_単一値        |

_包含部分型  |

_値域        |

_許容アルファベット

_部分型制限

::=

_サイズ制限  |  _内部型制限


86

X5603-1990

表 7  部分型値集合の適用

型(又はタグ付きの型)

単一値

包含部分型

値域

サイズ域

アルファベット制限

内部部分型

論  理

整  数

列  挙

実  数

オブジェクト識別子

ビット列

オクテット列

文字列型

順  序  列

単一型順序列

集  合

単一型集合

任  意

選  択

備考

○:適用可能

/:適用不可

35.

部分型値集合

35.1

単一値

35.1.1

“_単一値”の記法は,次のとおりとする。

_単一値

::=

_値

ここで,

“_値”は,親型に対する記法とする。

35.1.2

“_単一値”の値の集合は,

“_値”で規定された親型の単一値とする。この記法は,すべての親

型に適用できる。

35.2

包含部分型

35.2.1

“_包含部分型”の記法は,次のとおりとする。

_包含部分型

::= INCLUDES  _型

35.2.2

“_包含部分型”の値の集合は,“_型”のすべての値から構成され,その型は親型の部分型でな

ければならない。この記法は,すべての親型に適用できる。

35.3

値域

35.3.1

“_値域”の記法は,次のとおりとする。

_値域

::=

_下限点.

._上限点

35.3.2

“_値域”の値の集合は,領域の両端の数値を規定することによって定まる範囲にあるすべての値

から構成される。この記法は,整数型,実数型及びタグ付けによってこれらの型から派生する型にだけ適

用できる。

備考  部分型を作るために, “PLUS−INFINITY”  は,すべての“_数値実数”の値より大きく,

“MINUSINFINITY”

は,すべての“_数値実数”の値よりも小さいものとする。

35.3.3

領域のそれぞれの端点は,閉じているか(この場合,端点は値の集合に含まれている。

,又は開い

ているか(この場合,端点は値の集合に含まれていない。

)のいずれかとし,次のとおりとする。開いてい

る場合,端点の仕様には未満を示す記号“<”を含む。

_下限点

::=

_下限値|_下限値<


87

X5603-1990

_上限点

::=

_上限値|<_上限値

35.3.4

端点は,規定しなくてもよい。この場合,領域は親型が許容する範囲でその方向に拡張される。規

定する場合は,次のとおりとする。

_下限値

::=

_値|MIN

_上限値

::=

_値|MAX

35.4

サイズ制限

35.4.1

“_サイズ制限”の記法は,次のとおりとする。

_サイズ制限

::= SIZE  _部分型仕様

35.4.2

“_サイズ制限”は,ビット列型,オクテット列型,文字列型,単一型集合型若しくは単一型順序

列型,又はタグ付けによってこれらの型の幾つかから派生する型にだけ適用できる。

35.4.3

”_部分型仕様”は,長さに対して許容する整数値を規定し,次に示す親型に適用できる任意の部

分型仕様の形式をもつ。

INTEGER

   (0..  MAX)

35.4.4

計算の単位は,親型に依存し,次のとおりとする。

計算の単位

ビット列型

ビット

オクテット列型

オクテット

文字列型

文  字

単一型集合型

構成要素値

単一型順序列型

構成要素値

35.5

許容アルファベット

35.5.1

“_許容アルファベット”の記法は,次のとおりとする。

_許容アルファベット

::= FROM  _部分型仕様

35.5.2

“_許容アルファベッドの値の集合は,親列のアルファベットの部分集合を使用して作ることがで

きるすべての値からなる。この記法は,文字列型又はタグ付けによって,これらの型から派生する型にだ

け適用できる。

35.5.3

“_部分型仕様”は,文字列の中に現れてもよい文字を規定する。

“_部分型仕様”はどのような

部分型仕様でもよいが,その仕様は部分型仕様  “SIZE(1)”を親型に適用して得られる部分型に適用でき

るものでなければならない。

35.6

内部部分型化

35.6.1

“_内部型制限”記法は,次のとおりとする。

_内部型制限

::= WITH

COMPONENT

_単一型制限  |

WITH

COMPONENTS

_複数型制限

35.6.2

“_内部型制限”は,存在に関する制限の集まり及び/又は親型の構成要素の値を満足する値に部

分型を制限する。親型の値は,明示的な制限又は暗黙的な制限(35.6.6 参照)のすべてを満足する以外は,

部分型に含めてはならない。この記法は,単一型集合型,単一型順序列型,集合型,順序列型,選択型並

びにタグ付けによってこれらの型から派生する型にだけ適用できる。

35.6.3

単一の他の(内部)型(単一型集合型,単一型順序列型及びタグ付けによってこれらから派生する

型)として定義する型に対して,部分型値仕様の形式の制限が与えられる。これに対する記法は,次の“_

単一型制限”とする。

_単一型制限

::=

_部分型仕様


88

X5603-1990

“_部分型仕様”は,単一の他の(内部)型の部分型を定義する。親型の値は,各内部値が内部型に対

して“_部分型仕様”を適用することによって得られる部分型に属する場合に限り,部分型値集合の一部

とする。

35.6.4

複数の他の(内部)型(選択型,集合型,順序列型及びタグ付けによってこれらから派生する型)

として定義する型に対しては,これらの内部型に関する複数の制限が与えられる。これに対する記法は,

次の”_複数型制限”とする。

_複数型制限

::=

_全体仕様  |

_部分仕様

_全体仕様

::=

{_型制限}

_部分仕様

::=

{.

,_型制限}

_型制限

::=

_名前付き制限  |

_名前付き制限,_型制限

_名前付き制限

::=

識別子  _制限  |  _制限

35.6.5

“_制限”は,親型の構成要素型に関する制限のリストを含む。順序列型では,制限は順番に現れ

なければならない。内部型に対して適用する制限は,それが識別子をもつ場合は,その識別子によって,

順序列型の場合はその位置によって識別する。

備考  内部型が識別子をもたない場合,記法はあいまいとなる。

35.6.6

“_複数型制限”は,

“_全体仕様”又は“_部分仕様”のいずれかを含む。

“_全体仕様”を使用

する場合,明確に制限を示していないすべての内部型に“ABSENT”

35.6.9 参照)という暗黙的な存在制

限がある。親型の中で  “OPTIONAL”  又は“DEFAULT”と表示していない各内部型は,明確に制限を示

さなければならない。

“_部分仕様”を使用する場合,暗黙的な制限はない。どのような内部型もリストか

ら省略することができる。

35.6.7

特定の内部型は,

(親型の値の中で)その存在,その値又は両方によって制限を受けることがある。

記法は,次の“_制限”とする。

_制限

::=

_値制限_存在制限

35.6.8

内部型の値に関する制限は,記法“_値制限”によって表現する。

_値制限

::=

_部分型仕様  |  空

内部値が内部型に適用する“_部分型仕様”によって規定される部分型に属する場合に限り,制限は親

型の値によって満足する。

35.6.9

内部型の存在に関する制限は,次の記法“_存在制限”によって表現する。

_存在制限

::= PRESENT  |  ABSENT  |  空

これらの選択肢の意味及びそれらが許される場合について,35.6.9.1

35.6.9.3 で定義する。

35.6.9.1

親型が順序列型又は集合型の場合,

“OPTIONAL”と表示の付いた要素型は,

“PRESENT”

(この

場合,制限は対応する要素値が存在する場合に限り満足する。

)又は“ABSENT”

(この場合,制限は対応

する要素値が存在しない場合に限り満足する。

)によって制限することができる。

35.6.9.2

親型が選択型の場合,構成要素型は“ABSENT”によって制限することができる。この場合,制

限は対応する構成要素型が値の中で使用されない場合に限り満足する。

35.6.9.3

空の“_存在制限”の意味は,

“_全体仕様”又は“_部分仕様”のいずれが使用されるかに依

存する。

(a)

“_全体仕様”の場合,

“PRESENT”の制限と同等とする。


89

X5603-1990

(b)

“_部分仕様”の場合,課せられる制限はない。

(4)

附属書 の E.1.4 の後に新たに部分型化についての例を示す次の箇条を追加する。

E.1.5

部分型

E.1.5.1

存在している型の値を特定の状況でだけ許される値に制限する。

AtomicNumber

::= INTEGER

(1..104)

TouchToneString

::= IA5String

(FROM( “0” | “1” | “2” | “3” | “4” | “5” |

“6”

| “7” | “8” | “9” | “*” | “#”)   |

SIZE

(1..63))

ParameterList

::=

SET SIZE (0..63)

  OF    Parameter

SmallPrime

::= INTEGER

(2

|3|5|7|11|13|17|19|23|29)

E.1.5.2

二つ以上の関連する型が重要な共通部分をもつ場合,一つの型として,それらの共通の親を明確に

定義し,個々の型に対して部分型化を使用することを考慮する。この方法は,その関連性と共通部分を明

確にする。型を拡張するために,このようにすることを推奨する。これによって,実装がこれらの型の値

の操作に対して共通的になるので,利用者の使用が容易になる。

Envelope

::= SET

{typeA typeA,

type B type B, OPTIONAL,

type C type C, OPTIONAL/

−−共通の親

ABEnvelope

::=

Envelope (WITH COMPONENTS

{..., type B PRESENT, type C ABSENT})

−−typeB は,常に現れなければならない。

−−typeC は,現れてはならない。

ACEnvelope

::=

Envelope (WITH COMPONENTS

{..., type B ABSENT, type C PRESENT})

−−typeC は,常に現れなければならない。

−−typeB は,現れてはならない。

  ABEnbelope 及び ACEnvelope の定義は,次のように表現することもできる。

ABEnvelope

::=

Envelope (WITH COMPONENTS {type A, type B} )

ACEnvelope

::=

Envelope (WITH COMPONENTS {type A, type C})

上のいずれを選択するかは,親型の中の構成要素数,任意選択の構成要素数,各型間の差異の程度,拡

張方針などの要因による。

E.1.5.3

値を部分的に定義するために,部分型化を使用する。例えば,適合性試験で試験するプロトコルデ

ータ単位 (PDU) であり,ここでは,試験は次の PDU のある構成要素だけに関係する。

Given

PDU

::= SET  { alpha  [0]

INTEGER,

beta

[1]

IA5 String OPTIONAL,

gamma

[2]

SEQUENCE OF Parameter,


90

X5603-1990

delta

[3]

BOOLEAN

このとき,論理型が偽に,整数型が負になることを要求する試験を行うには,次のようにする。

TestPDU

::=  PDU (WITH COMPONENTS {..., delta (FALSE), alpha (MIN. .  <0)} )

さらに,IA5String である beta が存在し,かつ長さが 5 又は 12 文字のいずれかとするには,次のように

する。

FurtherTestPDU

::= TestPDU(WITH

COMPONENTS

{..., beta (SIZE 5

|12))PRESENT})

E.1.5.4

はん用のデータ型が SEQUENCE OF と定義されている場合,一般型の制限された部分型を定義す

るために部分型化を使用する。

Text-block

::= SEQUENCE

OF

VisibleString

Address

::= Text-block

(SIZE (1. .6)

|WITH COMPONENT (SIZE (1..32)))

E.1.5.5

存在している部分型から新しい部分型を形成するために包含部分型を使用する。

Months

::=ENUMERATED {  january

(1),

february (2),

march (3),

(4),

may (5),

june (6),

july (7),

augu

(8),

septem

(9),

october

(10),

november (11),

decemb

(12))

First-quarter

::=Months (

january

february

march

)

Second-quarter

::=Months   (april

may

june

)

Third-quarter

::=Months ( july

august

september

)

Fourth-quarter

::=Months ( october  |

november

december

)


91

X5603-1990

First-half

::=Months (

INCLUDES

First-quarter

INCLUDES

Second-quarter

)

Second-half

::=Months (  INCLUDES

Third-quarter

INCLUDES

Fourth-quarter

)

(5)

附属書 の E.2.4 の後に新たに部分型化の例を示す次の箇条を追加する。

E.2.5

部分型

E.2.5.1

存在している型の値を特定の状況でだけ許される値に制限する。

_原子番号

::=

INTEGER (1..104)

_タッチトーン文字列

::=

IA5String

(FROM( “0” | “1” | “2” | “3” | “4” |

“5”

| “6” | “7” | “8” | “9” | “*” | “#”)|

SIZE

(1..63))

_パラメタリスト

::=

SET SIZE (0..63) OF

_パラメタ

_小さい素数

::=

INTEGER (2

|3|5|7|11|13|17|19|23|29)

E.2.5.2

二つ以上の関連する型が重要な共通部分をもつ場合,一つの型として,それらの共通の親を明確に

定義し,個々の型に対して部分型化を使用することを考慮する。この方法は,その関連性と共通部分を明

確にする。型を拡張するために,このようにすることを推奨する。これによって,実装がこれらの型の値

の操作に対して共通的になるので,利用者の使用が容易になる。

_封筒

::= SET

型 A  _型 A,

型 B  _型 B OPTIONAL,

型 C  _型 C OPTIONAL}

−−共通の親

_AB 封筒

::=

_封筒(WITH COMPONENTS

,型 B  PRESENT,型 C ABSENT})

−−型 B は,常に現れなければならない。

−−型 C は,現れてはならない。

_AC 封筒

::=

_封筒(WITH COMPONENTS

,型 B  ABSENT,型 C PRESENT}

−−型 C は,常に現れなければならない。

−−型 B は,現れてはならない。

AB

封筒及び AC 封筒の定義は,次のように表現することもできる。

_AB 封筒

::=

_封筒(WITH COMPONENTS{型 A,型 B}

_AC 封筒

::=

_封筒(WITH COMPONENTS{型 A,型 C}

上のいずれを選択するかは,親型の中の構成要素数,任意選択の構成要素数,各型間の差異の程度,拡

張方針などの要因による。

E.2.5.3

値を部分的に定義するために,部分型化を使用する。例えば,適合試験性で試験するプロトコルデ

ータ単位 (PDU) であり,ここでは,試験は次の PDU のある構成要素だけに関係する。

仮定:


92

X5603-1990

PDU

::=

SET

アルファ [0]

INTEGER,

ベータ [1]

IA5String OPTIONAL,

ガンマ [2]

SEQUENCE OF

  _パラメタ,

デルタ [3]

BOOLEAN

このとき,論理型が偽に,整数型が負になることを要求する試験を行うには,次のようにする。

_試験 PDU::=_PDU (WITH COMPONENTS  {.

,デルタ (FALSE),アルファ (MIN.. <0)})

さらに,IA5String であるベータが存在し,かつ長さが 5 又は 12 文字のいずれかとするには,次のよう

にする。

_次の試験 PDU

::=

_試験 PDU (WITH COMPONENTS

{.

,ベータ (SIZE 5|12))PRESENT})

E.2.5.4

はん用のデータ型が SEQUENCE OF と定義されている場合,一般型の制限された部分型を定義す

るために部分型化を使用する。

_テキストブロック

::= SEQUENCE

OF

VisibleString

_アドレス

::=

_テキストブロック

(SIZE

(1..6)

|  WITH COMPONENT (SIZE (1..32)))

E.2.5.5

存在している部分型から新しい部分型を形成するために包含部分型を使用する。

_月

::= ENUMERATED{

1

月 (1),

2

月 (12),

3

月 (3),

4

月 (4),

5

月 (5),

6

月 (6),

7

月 (7),

8

月 (8),

9

月 (9),

 10

月 (10),

 11

月 (11),

 12

月 (12)}

_第 1 四半期

::=

_月(

1

月|

2

月|

3

月)

_第 2 四半期

::=

_月(

4

月|

5

月|

6

月)

_第 3 四半期

::=

_月(

7

月|

8

月|

9

月)


93

X5603-1990

_第 4 四半期

::=

_月( 10 月|

11

月|

12

月)

_上半期

::=

_月( INCLUDES_第 1 四半期|

INCLUDES

_第 2 四半期)

_下半期

::=

_月( INCLUDES_第 3 四半期|

INCLUDES

_第 4 四半期)

G.  ANYDEFINED BY

(1)

本体の 25.1 の生成規則を次のように置き換える。

_任意型  ::=  ANY  |  ANY DEFINED BY  識別子

(2)

本体の 25.1 

備考を次のように置き換える。

備考  ISO 規格又は CCITT 勧告において “ANY” を使用する場合,補助仕様によって補完されない限

り,その仕様は不完全なものとなる。  “ANY DEFINED BY”  構文は,通信インスタンスにおい

て ANY を満たす型を規定する手段,及びその意味への手掛かりを提供する。次に示す規則に

従って使用すれば完全な仕様を提供することができる。DEFINED BY を用いないで ANY を使

用することは望ましくない。

(3)

本体の 25.1 

備考の後に新たに次の箇条を追加し,以降を再番号付けする。

25.2  “DEFINED

BY”

選択肢は,任意型又はタグ付けによって任意型から派生する型が,順序列型又は集

合型の一つの構成要素型である場合に限り使用する。

25.3  “DEFINED

BY”

選択肢の中の“識別子”も同様に,任意選択ではない他の順序列型又は集合型の構

成要素を規定する“_名前付き型”の中に現れなければならない。

“_名前付き型”は,整数型又はオブジェクト識別子型のいずれかとする。

25.4

“_名前付き型”が整数型の場合, “DEFINED BY” 記法を使用する文書は,それぞれの許容された

整数型に対して,ANY が転送する ASN.1 の型を指定する単一のリストを含んでいるか,又は明示的に参

照していなけれはならない。含んでいる型のすべての通信インスタンスにおいて,そのようなリストをた

だ一つもっていなければならない。

25.5

“_名前付き型”がオブジェクト識別子型の場合,それぞれの割り当てられたオブジェクト識別子

値について,ANY が転送する単一の ASN.1 の型(CHOICE 型であってもよい)に関連付ける登録が必要

となる。

備考1.  この目的のためにオブジェクト識別子値と ASN.1の型を関連付ける登録は,複数あってもよ

い。

2.

開放型接続のための値の登録は,この記法を用いる ISO 規格及び CCITT 勧告の中で発生する

と予想される。ある “ANYDEFINEDBY” のインスタンスに対して,独立した国際登録機関

が予定されている場合,その機関をこの記法を用いる文書の中で示すのが望ましい。

3.

整数とオブジェクト識別子の定義の主な違いは,整数を用いる場合は,使用する規格に含ま

れる単一のリストを参照するのに対して,オブジェクト識別子を用いる場合は,オブジェク

ト識別子を割り当てることのできる主管機関によって決定された型集合を認めることにある。

H.

マクロ割当て

(1)

附属書 の A.3 の“_マクロ定義”の生成規則を次のように置き換える。


94

X5603-1990

_マクロ定義

::=

マクロ参照 MACRO  “::=”  _マクロ実体

_マクロ実体

::= BEGIN_マクロ本体 END  |

マクロ参照  |

_外部マクロ参照

(2)

附属書 の A.3“_生成規則”の後に新たに次の生成規則を追加する。

_外部マクロ参照::=モジュール参照,マクロ参照

(3)

附属書 の A.3 に新たに次の箇条を追加し,以降を再番号付けする。

A.3.2

“_マクロ実体”の中の“マクロ参照”選択肢を選んだ場合,マクロ定義を含むモジュールは次の

いずれかでなければならない。

(a)

“マクロ参照”を定義する他のマクロ定義を含む。

(b)

“_インポートするシンボル”の中に“マクロ参照”を含む。

A.3.3

“_マクロ実体”の中の“_外部マクロ参照”選択肢を選んだ場合,

“モジュール参照”によって表

されるモジュールは,

“マクロ参照”を定義するマクロ定義を含んでいなければならない。関連する定義は,

同様に,定義される“マクロ参照”に関連付けられる。

A.3.4  A.3.2

A.3.3 の規則を繰り返し適用することによって生じる可能性のある定義の連続は,“BEGIN_

マクロ本体 END”選択肢を用いる“_マクロ定義”によって終結しなければならない。

(4)

附属書 の A.4 を次のように置き換える。

この規格で規定した“_型”

(又は“_値”

)記法を使用できるところでは,マクロ定義によって定

義した型記法(又は値記法)のインスタンスを使用することができる。この場合のマクロは,次のい

ずれかでなければならない。

(a)

同じモジュールの中で定義する。

(b)

“_インポートするシンボル”の中に現れる“マクロ参照”によってそのモジュールにインポート

する。

後者の可能性のために,

“マクロ参照”は 9.1 で“_シンボル”として現れてもよいものとする。

1.

その他

(1)

本体の

表 に次の各行を追加する。重複する行は適宜削除する。

UNIVERSAL 9

実数型

UNIVERSAL 10

列挙型

UNIVERSAL 11

∼15

将来の追加割当てのため保留

UNIVERSAL 18

∼22, 25∼27

文字列型

UNIVERSAL 28

将来の追加割当てのため保留

(2)

本体の

表 及び 8.14 に新たに次の予約語を追加する。

EXPLICIT

ENUMERATED

EXPORTS

IMPORTS

REAL

INCLUDES

MIN


95

X5603-1990

MAX

SIZE

FROM

WITH

COMPONENT

PRESENT

ABSENT

DEFINED

BY

PLUS

−INFINITY

MINUS

−INFINITY

(3)

本体の 12.1 の生成規則に次の選択肢を追加する。

_型

::=

|_部分型

_組込み型

::=  ...

_列挙型

_実数型

(4)

本体の 12.2 の後に新たに次の箇条 12.3 を追加し,以降を再番号付けする。

12.3

“_部分型”記法は

第 章に規定する。

(5)

本体の 12.3 の“_組込み型”を,

“_組込み型又は_部分型”と置き換える。

(6)

本体の 12.6 の生成規則に次の選択肢を追加する。

_組込み値

::=  ...

_列挙値

_実数値

(7)

本体の 12.7 に次の行を追加する。

_列挙型

_列挙値

_実数型

_実数値


96

X5603-1990

ASN.1

ワーキンググループ  構成表(敬称略,順不同)

氏名

所属

(主査)

佐久間  幹  郎

沖電気工業株式会社コンピュータシステ

ム開発本部

(幹事)

脇  野      淳

沖電気工業株式会社コンピュータシステ

ム開発本部

河  本  清  人 
  (~63.3)

日本アイ・ビー・エム株式会社標準推進

岩  本  裕  司 
 (63.4~)

日本アイ・ビー・エム株式会社標準推進

粕  川  雅  之

富士通株式会社沼津工場

斎  藤  洋  子 
 (~63.3)

株式会社日立製作所ソフトウェア工場

九  野      伸 
(63.4~)

株式会社日立製作所ソフトウェア工場

柴  田  伸  一

日本ユニシス株式会社通信システム部

日  高  孝  寛

日本ディジタル・イクウィップメント株式

会社研究開発センター

藤  田  朋  生

日本電気株式会社基本ソフトウェア開発

本部

(工業技術院)

粕  川  晃  秀 
(63.4

)

工業技術院標準部電気・情報規格課

(事務局)

鴛  海  雄  二

財団法人日本規格協会情報技術標準化研

究センター


97

X5603-1990

昭和 62 年度  OSI 調査研究委員会  構成表(敬称略,順不同)

氏名

所属

(委員長兼 WG4 主査)

田  畑  孝  一

図書館情報大学図書館情報学部

(WG1 主査)

飯  野  守  夫

株式会社日立製作所ソフトウェア工場

(WG2 主査)

大  庭  弘太郎

株式会社東芝高度情報通信システム推進

(WG3 主査)

佐久間  幹  郎

沖電気工業株式会社コンピュータシステ

ム開発本部

芥  川  哲  男

三菱電機株式会社コンピュータ製作所

諌  山  徹  也

富士通株式会社ソフトウェア事業部

奥  本  晋  也

株式会社東急ストアー

小野間  清  孝

財団法人鉄道総合技術研究所

窪  田      明

通商産業省機械情報産業局

小  林      允

日本ユニバック株式会社プロダクト本部

小  林  善  和

日本アイ・ビー・エム株式会社標準推進

小  松  博  親

全国銀行協会連合会

坂  井  良  三

国際通信電話株式会社営業本部

塩  谷      勝

トヨタ自動車株式会社電算部

杉  野      隆

新日本製鐵株式会社情報通信システム部

塚  本  亨  治

工業技術院電子技術総合研究所

勅使河原  可海

日本電気株式会社情報処理通信業システ

ム事業部

富  永  英  義

早稲田大学理工学部

増  田  秀  雄

財団法人金融情報システムセンター

水  田  耕  治

日本航空株式会社情報システム本部企画

森  野  和  好

日本電信電話株式会社ネットワークシス

テム開発センター

(工業技術院)

近  藤  康  生

工業技術院標準部電気・情報規格課

(工業技術院)

根  上  雄  二

工業技術院標準部電気・情報規格課

(事務局)

山  田  正  二

財団法人日本規格協会情報技術標準化研

究センター

(委員交替)

荒  武  浩一郎

日本航空株式会社情報システム本部 
(昭和 62 年 6 月∼昭和 62 年 10 月)


98

X5603-1990

昭和 63 年度  OSI−JIS 調査研究委員会  構成表(順不同,敬称略)

氏名

所属

(委員長)

田  畑  孝  一

図書館情報大学図書館情報学部

(主査)

飯  野  守  夫

株式会社日立製作所ソフトウェア工場

(  〃  )

水  野  忠  則

三菱電機株式会社情報電子研究所

(  〃  )

片  淵  健二郎

日本電気株式会社伝送通信情報部

(  〃  )

佐久間  幹  郎

沖電気工業株式会社コンピュータシステ

ム開発本部

芥  川  哲  雄

三菱電機株式会社コンピュータ製作所

諌  山  徹  也

富士通株式会社ターミナルシステム事業

木  下  文  雄

財団法人日本自動車工業会

窪  田      明

通商産業省機械情報産業局

佐  藤      茂

国際電信電話株式会社施設本部

小  林  善  和

日本アイ・ビー・エム株式会社標準推進

清  水  正  義

全国銀行協会連合会

杉  野      隆

新日鐵情報通信システム株式会社技術部

田  中  幹  夫

財団法人鉄道総合技術研究所

塚  本  亨  治

工業技術院電子技術総合研究所

勅使河原  可海

日本電気株式会社情報処理通信業システ

ム事業部

當  麻  悦  三

日本ユニシス株式会社ソフトウェアプロ

ダクト本部

三  好      彰

株式会社東芝開発第 7 部

森  野  和  好

日本電信電話株式会社ネットワークシス

テム開発センタ

渡  辺      治

財団法人金融情報システムセンター

(オブザーバー)

池  田      裕

株式会社日立製作所日立ソフトウェア工

(      〃      )

平  山  尚  文

日本電信電話株式会社ネットワークシス

テム開発センタ

(      〃      )

矢  野      厚

日本電信電話株式会社高度通信サービス

事業本部

(      〃      )

芝  野  耕  司

日本アイ・ビー・エム株式会社東京基礎研

究所

(工業技術院)

市  川  英  雄

工業技術院標準部電気・情報規格課

(事務局)

山  田  正  二

財団法人日本規格協会情報技術標準化研

究センター

(  〃  )

鴛  海  雄  二

財団法人日本規格協会情報技術標準化研

究センター

(  〃  )

西  田  正  忠

財団法人日本規格協会情報技術標準化研

究センター

日本工業標準調査会  情報部会規格調整専門委員会  WG2 委員  構成表(敬称略,順不同)

氏名

所属

(主査)

徳  永  英  二

日本アイ・ビー・エム株式会社標準推進

森      宗  正

日本ユニシス株式会社技術研究部

楡  木  武  久

日本電子工業振興協会

伊  藤  博  夫

沖電気工業株式会社技術本部技術管理部

佐  藤      健

株式会社日立製作所ソフトウェア工場