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

X5603-1990  

(1) 

2019年7月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) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

ページ 

32. 外部型 ························································································································ 33 

33. オブジェクト記述子型···································································································· 35 

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

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

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

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

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

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

用語索引 ···························································································································· 76 

参考 ASN.1の拡張 ············································································································· 80 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

日本工業規格          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参照)は,どの転送構文を使用するかについて折衝を行うこ

とができる。 

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

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

型から構成され,値又は型の間には関係があると考えられる。データ型という用語は,型の同義語とする。 

値の表現(紙上では記号で表現し,通信回線上ではビットで表現する。)を正しく解釈するには,表現さ

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

要な部分となる。 

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

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

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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

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

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

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

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

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

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

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

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

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

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

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

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

ことができる。 

このようにして定義した型を構造型という。 

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

利用者が定義する。 

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

別する。 

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

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

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

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

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

(a) 単一の型に割り当てる。 

(b) 構造機構に割り当てる。 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

この機能を備えた記法を,抽象構文定義の記法という。 

この規格の目的は,抽象構文記法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〜Dは,ISOとCCITTの合意に基づいてい

る。 

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

る。 

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

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

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

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

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

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

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

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

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

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

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

JIS X 0208 情報交換用漢字符号系 

ISO 2014 Writing of calendar dates in all-numeric form 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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)  定義した文字集合の文字の列を値としてもつ型。 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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)  選択型の構成要素型を参照して定義する型。 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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) 組織コード 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

(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進列|{_識別子リスト} 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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

備考 アンダラインは,基本記法でいう大文字として扱う(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.に規定する。 

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

型では型をタグから導き出すことができるように割り当てる。表1に,この規格で規定するはん用クラス

のタグ割当てを示す。 

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

background image

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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

UNIVERSAL 

論理型 

UNIVERSAL 

整数型 

UNIVERSAL 

ビット列型 

UNIVERSAL 

オクテット列型 

UNIVERSAL 

ヌル型 

UNIVERSAL 

オブジェクト識別子型 

UNIVERSAL 

オブジェクト記述子型 

UNIVERSAL 

外部型 

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参

照)。 

background image

10 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

第1章 ASN.1記法の仕様 

7. ASN.1文字集合 

7.1 

(基本記法) 

ASN.1の項目は,7.2及び7.3に規定するものを除き,表2に示す文字の順序列から構成する。 

表2 ASN.1文字 

AからZ 

aからZ 
0から9 

:.= , { } < . 

( ) [ ] − ʼ ” 

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

属書A参照)。 

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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

7.5 

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

8. ASN.1の項目 

8.1 

総 則 

8.1.1 

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

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

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 

“型参照”では,表3に示すキーワードを使用できない。 

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

12 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

表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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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個以上の文字を引用符 (”) でくくって構成

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

よって表す。ここでいう文字集合は,表2に示した文字集合に限定されず,“文字列”を値とする型によっ

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

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

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

“::=” 

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

::=: 

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

14 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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

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

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

9. モジュール定義 

9.1 

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

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

DEFINITIONS 

“::=”  

BEGIN 

_モジュール本体 

END 

_モジュール本体 

::= 

_割当てリスト | 空 

_割当てリスト 

::= 

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

_割当て 

::= 

_型割当て | _値割当て 

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

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

の前にも使用できる。 

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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

型参照 

_外部値参照 

::= 

モジュール参照 

. 

値参照 

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

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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

_順序列型 

| 

_単一型順序列型 

| 

_集合型 

| 

_単一型集合型 

| 

_選択型 

| 

_参照選択型 

| 

_タグ付き型 

| 

_任意型 

| 

_オブジェクト識別子型 

| 

_文字列型 

| 

_有用型 

| 

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

A参照)。 

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

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

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

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

る。 

_名前付き型 

::= 

識別子 _型 | 

_型 | 

_参照選択型 

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

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

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

12.5 “識別子”は,型の一部ではなく,型には何の影響も与えない。“_名前付き型”順序列によって参

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

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

_値 

::= 

_組込み値 | 定義値 

_組込み値 

::= 

_論理値 

| 

_整数値 

| 

_ビット列値 

| 

_オクテット列値 

| 

_ヌル値 

| 

_順序列値 

| 

_単一型順序列値 

| 

_集合値 

| 

_単一型集合値 

| 

_選択値 

| 

_参照選択値 

| 

_タグ付き値 

| 

background image

18 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

_任意値 

| 

_オブジェクト識別子値 

| 

_文字列値 

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

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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進列”記法を使用する場合,先頭ビットは左,後尾ビットは右とする。 

例 

このような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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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_値 

| 

COMPONENTS OF _型 

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

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

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

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

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

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

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

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

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

22 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

ることがある。 

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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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

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

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

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

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

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

20.4 18.4, 18.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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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

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

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

2. 符号化では次の二つの場合を区別できない。すなわち,“_代替型リスト”中で単一の“_名

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

合。 

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

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

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

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

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

参照)。 

この規定の例を次に示す。例1及び例2に記法の正しい使用法を示す。型d及び型f並びに型e及び型

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

例1. 

: : 

= CHOICE 

b  

B , 

c  

NULL} 

: : 

= CHOICE 

d  

0 ]  

NULL, 

e  

1 ]  

NULL} 

例2. 

: : 

= CHOICE 

b  

B, 

C} 

: : 

= CHOICE 

d  

0]  

NULL, 

e  

1]  

NULL} 

: : 

= CHOICE 

2]  

NULL, 

3]  

NULL} 

例3.(誤り) 

: : 

= CHOICE 

b  

B, 

  

c  

C} 

: : 

= CHOICE 

0] 

NULL, 

  

1] 

NULL} 

: : 

= CHOICE 

0] 

NULL, 

25 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

1] 

NULL} 

22.5 “_代替型リスト”の“_名前付き型”順序列では,“識別子”は,それぞれ異なったものでなけれ

ばならない。 

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

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

とする。 

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

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

22.8 “_名前付き値”に“識別子”が含まれている場合,“_名前付き値”は“_代替型リスト”中の同

じ名前の付いた“識別子”の型の値についての記法とする。“_名前付き値”が“識別子”を含んでいない

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

記法とする。 

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

23. 参照選択型の記法 

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

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

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

“_型”は”_選択型”を参照する記法とし,“識別子”は”_名前付き型”中の“識別子”とする。 

備考 “_参照選択型”は,“識別子”を値記法に使用する“_名前付き型”又はその“識別子”を使

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

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

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

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

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

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

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

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

25.2参照)に主に使用する。 

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

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

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

_タグ付き型 

::= 

_タグ _型 | 

_タグ IMPLICIT _型 

_タグ 

::= 

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

_クラス番号 

::= 

数字 | _定義値} 

_クラス 

::= 

UNIVERSAL | APPLICATION | PRIVATE | 空 

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

26 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

24.3 新しい型は,既存の型と同じ構造及び性質をもつが,“_クラス”というクラス及び“_クラス番号”

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

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

24.4 “_クラス”は,この規格で定義する型を除き,“UNIVERSAL”であってはならない。 

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

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

てはならない。 

24.6 “_クラス”が“PRIVATE”である場合には,“_タグ”は利用者の目的に応じて使用する。 

24.7 “_クラス”が“空”である場合には,18.3,20.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.3,20.3,22.2及び22.4参照)。 

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

_ 任意値 ::= _型 _値 

ここで,“_型”は,選択した型についての記法とし,“_値”はこの型の値についての記法とする。 

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

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

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

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

27 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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

_オブジェクト識別子値 

::= 

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

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

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

::= 

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

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

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

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

::= 

_名前形式 | 

_数字形式 | 

_名前及び数字形式 

_名前形式 

::= 

識別子 

_数字形式 

::= 

数字 | _定義値 

_名前及び数字形式 

::= 

識別子(_数字形式)} 

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

する。 

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

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

26.6 “_名前形式”は,数値及び識別子を附属書B〜Dで規定したオブジェクト識別子構成要素だけに

ついて使用し,附属書B〜Dで規定する識別子の一つとする。 

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

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

指定する。 

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

26.9 オブジェクト識別子値の意味は,オブジェクト識別子木を使用して定義する。オブジェクト識別子

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

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

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

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

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

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

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

成要素を含む。 

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

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

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

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

識別されるのは,この情報オブジェクトとする。オブジェクト識別子構成要素は,通常,“_名前形式”又

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

を数値で表す。 

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

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

28 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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

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

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

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

例 附属書Bで規定する識別子によって,値 {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及び第2章参照)の記法は,次による。 

_文字列型 ::= 型参照 

ここで,“型参照”は,第2章に示す文字列型名の一つとする。 

27.2 各文字列型のタグは,第2章に規定する。 

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

_文字列値 ::= 文字列 

文字列型の定義は,“文字列”に含まれる文字を決定する(29.参照)。 

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

28.1 この規格の第3章で定義する型を参照する記法は,次による。 

_有用型 ::= 型参照 

ここで,“型参照”は,ASN.1記法を使用して第3章で定義する型参照の一つとする。 

28.2 各“_有用型”のタグは,第3章に示す。 

28.3 “_有用型”の値に対する記法は,第3章に示す。 

第2章 文字列型 

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

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

(a) 型に割り当てるタグ。 

(b) 型定義を参照する名前。 

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

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

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

background image

29 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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

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

備考 文字列型に割り当てるタグは,型を明確に識別する。しかし,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 

表4による。 

(1) 

PrintableString 

印字可能文字列 

19 

表5による。 

(1) 

TeletexString 

(T61String) 

テレテックス文字列 

(T61文字列) 

20 

87, 102, 103, 106又は107に間隔及び抹消を

追加したもの。 

(2) 

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 表4に,NumericString型で使用できる文字を示す。 

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

30 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

29.5 これらの型の記法は,“文字列”とする。 

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

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

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

きない。 

31 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

第3章 有用な定義 

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

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

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

ここで定義する型の値記法及び意味定義は,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)の文字列と

同じ文字列は,地方時 (t1) を表現する。UTC時は,UTC時との時差 (t2) を用いて次のようにして求めら

れる。 

UTC時:t1−t2 

例 

(a)の場合 19851106210627.3 

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

27.3秒 

(b)の場合 19851106210627.3Z 

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

(c)の場合 19851106210627.3−0500 (a)と同じ地方時で,UTC時に5時間遅れていることを示す。 

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

れている。 

ISO 8601 : 1988 Data elements and interchange formats−Information interchange−Representation 

32 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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)で

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

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

UTC時刻:t1−t2 

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

る。 

UTCTime “8201021200Z” 

UTCTime “8201020700−0500” 

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

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

33 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

32. 外部型 

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

_外部型 ::= EXTERNAL 

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

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

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

(c) オブジェクトを記述するオブジェクト記述子(任意選択)。 

任意選択のオブジェクト記述子は,EXTERNAL記法の使用時に注釈によって明示的に許可している場

合を除き,使用してはならない。 

32.3 外部型では,識別されたデータ値の集合に含まれるデータ値を包含することができる。 

備考1. データ値の集合と,その意味の仕様化,オブジェクト識別子と(任意選択として)オブジェ

クト記述子の割当て,及びこれらの情報のすべての通信当事者への通知を,抽象構文の登録

と呼ぶ。この作業は,附属書B〜Dで規定する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 STRING  

}} 

(日本語拡張記法) 

EXTERNAL ::= 

[UNIVERSAL 8] IMPLICIT SEQUENCE 

直接参照 

OBJECT IDENTIFIER 

OPTIONAL 

間接参照 

INTEGER 

OPTIONAL 

34 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

データ値記述子 

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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

この分類に入る。 

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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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

A.1 序文 ASN.1は,ASN.1の利用者のために,ASN.1の型を作成し参照する新しい記法又は型の値を規

定する新しい記法を定義するための機構を備えている。新しい記法は,“_マクロ定義”記法を使用して定

義する。“_マクロ定義”は,型を作成し参照するための新しい記法及び値を規定するための新しい記法を

同時に規定する(マクロ記法の使用例については,附属書Eの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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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のA.3.7参照)。 

A.2.8 構文分類キーワード項目 これの項目名は,次のとおりとする。 

“文字列” 

“識別子” 

“数字” 

“空” 

上の名前をもつ項目は,マクロ記法では引用符 (”) を除く,名前の文字順序列から構成する。これら

の項目は,新しい記法のインスタンス中での,ある一定の文字順序列の生起を示すのにマクロ記法で使用

する。各項目によって規定する新しい記法における順序列及びその順序列を定義している箇条を附属書A

表7に示す。 

備考 マクロ記法では,頭文字を見て,識別子と参照を区別することはできない。これは,CCITT勧

告X.409との互換のための制限である。 

background image

38 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

附属書A表7 項目によって規定する順序列 

項目名 

定義している箇条 

“文字列” 

任意の文字順序列 

“識別子” 

本体8.3 識別子 

“数 字” 

本体8.8 数字 

“空” 

本体8.7 空 

A.2.9 付加キーワード項目 これの項目名は,次のとおりとする。 

MACRO 

TYPE 

NOTATION 

VALUE 

value 

type 

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

附属書AのA.2.2〜A.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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

_マクロ代替リスト 

_支援生成規則 

::= 

_生成規則リスト|空 

_生成規則リスト 

::= 

_生成規則|_生成規則リスト _生成規則 

_生成規則 

::= 

生成規則参照 

“::=” 

_マクロ代替リスト 

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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

“_マクロ代替”は,“_記号リスト”の最初の“_記号定義”によって参照する文字順序列を取り出し,

これに“_記号リスト”の第2の“_記号定義”によって参照する文字順序列を付け,順次この操作を行

い,最後の“_記号定義”で参照する文字順序列までを付けて作るすべての文字順序列を参照する。 

備考 “_埋込み定義群”(使用する場合)は.これらの文字列の決定に直接関与しない。 

A.3.7 “任意列”は,それを囲む1組の引用符 (”) の間にある文字順序列を参照する。 

A.3.8 “生成規則参照”は,それを識別する“_生成規則”によって規定する文字順序列を参照する。 

A.3.9 “_記号定義”に対する四つの選択肢(“文字列”,“識別子”,“数字”及び“空”)によって参照す

る文字順序列を,附属書A表7に示す。 

備考 “文字列”によって参照する文字順序列は,マクロ記法のインスタンスでは,“_記号リスト”

の次の“_記号定義”によって参照する順序列の出現によって終了するのがよい。 

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のA.3.14又はA.3.16で規定するような)VALUE

への割当てを,必ず1回行う。 

A.3.16 “_埋込み定義群”の記法は,次による。 

_埋込み定義群 

::= 

<_埋込み定義リスト> 

_埋込み定義リスト 

::= 

_埋込み定義| 

_埋込み定義リスト _埋込み定義 

_埋込み定義 

::= 

_局所型割当て| 

_局所値割当て 

_局所型割当て 

::= 

局所型参照 

“::=”  

_マクロ型 

_局所値割当て 

::= 

局所値参照 

_マクロ型 

“::=”  

_マクロ値 

_マクロ値 

::= 

_値| 

41 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

局所値参照 

“_埋込み定義群”における“_マクロ型”の“局所型参照”(又は“_マクロ値”の“局所値参照”)

への割当ては,新しい記法のインスタンスの構文解析中に,“_埋込み定義群”が検出されたときに行われ,

“局所型参照”又は“局所値参照”の再定義が行われるまで続く。 

備考1. “_選択肢”において関連する“局所型参照”又は“局所値参照”を使用することは,構文

解析アルゴリズムの性質についての前提があることを意味する。この前提は,注釈で指示し

ておくとよい。例えば,”_埋込み定義群”が後に続く“局所型参照”を使用すると,左から

右へ構文解析することを意味する。 

2. “局所値参照”“VALUE”には,“値(VALUE_マクロ型)”構造又は“_埋込み定義”のい

ずれかによって値を割り当てることができる。いずれの場合も,附属書AのA.3.14で規定し

たように,値が返される。 

A.4 新しい記法の使用 この規格で規定した“_型”(又は“_値”)記法を使用できる箇所には,同じモ

ジュール内のマクロ定義によって定義した型記法(又は値記法)を使用することができる。 

備考 任意の複雑さのDEFAULT値における値の構文解析を行うような型割当て及びマクロ定義を含

むモジュールを作ることができる。 

background image

42 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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

B.1 ここでは,三つの弧を根から規定する。値,識別子及びその先の構成要素値の割当て機関は,次によ

る。 

値 

識別子 

割当て機関 

(基本記法) 

(日本語拡張記法) 

ccitt 

ccitt 

CCITT 

iso 

iso 

ISO 

joint-iso-ccitt 

iso-ccitt共通 

附属書D参照 

備考 この附属書は,ISOによる値の割当てだけを示す。 

B.2 B.1で割り当てた識別子“ccitt”,“iso”,“joint-iso-ccitt”は,それぞれ“_名前形式”として使用して

よい。日本語拡張記法では,“iso-ccitt共通”も,“_名前形式”として使用してよい。 

B.3 ここでは,四つの弧を“iso”によって識別する節点から規定する。値,識別子及びその先の構成要素

値の割当て機関は,次による。 

値 

識別子 

割当て機関 

(基本記法) 

(日本語拡張記法) 

standard 

規格 

附属書B B.4を参照 

registration-authority 

登録機関 

附属書B B.5を参照 

member-body 

加盟機関 

附属書B B.6を参照 

identified-organization 

識別された組織 

附属書B B.7を参照 

これらの識別子は,“_名前形式”として使用できる。 

B.4 “規格”の下の弧は,国際規格の番号とする。一つの規格番号をもつ国際規格が複数の部 (part) で構

成されている場合には,特に断らない限り,その国際規格の部番号に対して弧があるものとする。それら

の弧は,その規格によって定義された値をもつ。 

備考 一つの部からなる規格が,オブジェクト識別子を割り当てた後,複数の部になった場合には,

追加された部には,一つの部の規格の場合と同じように,オブジェクト識別子の割当てを続け

る。 

B.5 “登録機関”の下に続く弧に関する規定は,将来この規格に含める。 

備考 これは,特定のOSI登録機関の識別手続きを確立していく作業に合わせて行う。 

B.6 “加盟機関”の直下の弧は,数字3けたの国名コードをもつ。それは,JIS X 0304に従い,その国の

ISO加盟機関を識別するものとする(備考参照)。この識別子にオブジェクト識別子構成要素の“_名前形

式”を用いることはできない。“国名コード”の下の弧はこの規格では定義しない。 

備考 JIS X 0304に国名コードがあっても,その国にその国を代表する加盟機関があるとは限らない。

43 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

加盟機関がある場合でも,その機関がオブジェクト識別子構成要素の割当ての体系を管理する

とは限らない。 

B.7 “識別された組織”の直下の弧は,データコード国際標示子 (ICD) の値をもつ。その値は,ISO 6523

に従って登録機関によって割り当てられる。そのICDの値は,登録機関にオブジェクト識別子構成要素の

割当てを行うために登録された発行機関を識別する(備考1.及び備考2.参照)。ICDの直下の弧は,発行機

関がISO 6523に従って割り当てた“組織コード”の値をもつ。“組織コード”以下の弧に関しては,この

規格では定義しない(備考3.参照)。 

備考1. ISO 6523に従って,発行機関は,オブジェクト識別子構成要素にコードを割り当てる機関と

して登録機関に登録されていなければならない。発行機関は,この規格の規定に従って,数

値だけを割り当てなければならない。 

2. 発行機関がオブジェクト識別子構成要素のための組織コードを割り当てるということが,こ

れらの符号をほかの目的で使用することを妨げることはない。 

3. “組織コード”で識別される組織が,その先の弧の割当てを,割当ての一意性を確保しなが

ら行っていくということが想定される。 

4. この項は,いかなる組織も,適当な発行機関から組織コードを得ることによってOBJECT 

IDENTIFIERの値を,それぞれの目的のために割り当てることが可能であることを示してい

る。ただし,その割当てが,他の組織による割当てと衝突しないようにしなければならない。

それによって,例えば,製造業者で所有している情報形式にOBJECT IDENTIFIERを割り当

てることが可能である。 

background image

44 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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

による割当て 

C.1 ここでは,三つの弧を根から規定する。値,識別子及びその先の構成要素値の割当て機関は,次によ

る。 

値 

識別子 

割当て機関 

(基本記法) 

(日本語拡張記法)  

ccitt 

ccitt 

CCITT 

iso 

iso 

ISO 

joint-iso-ccitt 

iso-ccitt共通 

附属書D参照 

備考 この附属書は,CCITTによる値の割当てだけを示す。 

C.2 C.1で割り当てた識別子“ccitt”,“iso”及び“joint-iso-ccitt”は,それぞれ“_名前形式”として使用

してよい。日本語拡張記法では,“iso-ccitt共通”も,“_名前形式”として使用してよい。 

C.3 四つの弧を“ccitt”によって識別するノードから規定する。値,識別子及びその先の構成要素値の割

当ては,次による。 

値 

識別子 

割当て機関 

(基本記法) 

(日本語拡張記法) 

recommendation 

勧告 

附属書C C.4を参照 

question 

課題 

附属書C C.5を参照 

administration 

主管庁 

附属書C C.6を参照 

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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

C.6 “主管庁”の下の弧は,CCITT勧告X. 121DCC (Data Country Code) の値をとる。この下の弧は,

X.121DCCによって識別される国の電気通信当局が必要に応じて決定する。 

C.7 “網運用者”の下の弧は,CCITT勧告X. 121DNIC (Data Network Identification Code) の値をとる。こ

の下の弧は,DNICによって識別される主管庁又は国際通信事業者として認められた私企業 (RPOA) が必

要に応じて決定する。 

46 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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

構成要素値のISO及びCCITTによる共通割当て 

D.1 三つの弧を根ノードから規定する。値,識別子及びその先の構成要素値の割当て機関は,次による。 

値 

識別子 

割当て機関 

(基本記法) 

(日本語拡張記法) 

ccitt 

ccitt 

CCITT 

iso 

iso 

ISO 

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の手順の決定に先立っ

て,附属書B又は附属書Cに従ってオブジェクト識別子を割り当てる。国際規格又はCCITT勧告によっ

て割り当てる情報オブジェクトのオブジェクト識別子は,D.3の手順を決定するとき,変えてはならない。 

47 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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

この附属書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 

子供の数: 

子供情報 

 氏名: 

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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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・1記述 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)及び第3章の型は,ここでは取り扱わない。 

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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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 

president  

VisibleString 

vicePresident  

VisibleString 

secretary  

VisibleString 

E.1.2.6.3 型が異なっており,数が既知で大きさが中程度であって,順序が重要である変数の集まりをモデ

ル化する場合に,順序列型を使用する。ただし,その変数の集まりの構成がプロトコルの将来の改正版に

よって変化することはないものとする。 

例 

Credentials 

::= 

SEQUENCE 

userName  

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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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 

directoryName  

VisibleString, 

52 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

例 

AcmeBadgeNumber 

::= 

[PRIVATE 2] IMPLICIT INTEGER 

E.1.2.8.9 ここの指針では,規格に合致している限り,例の中で暗黙的なタグ付けを使用している。これに

よって,符号化規則に依存するが,応用によっては非常に望ましい簡潔な表現が行われることがある。ほ

かの応用では,簡潔性より,例えば,厳密な型検査を行う機能が重要なことがある。後者の場合には,明

示的なタグ付けを行うことができる。 

E.1.2.7.1,E.1.2.7.2, E.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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

{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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

(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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

::= 

{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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

“....................” 

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 

子供の数: 

子供情報 

 氏名: 

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] 

_日付} 

background image

58 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

_氏名 

::= 

[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)及び第3章の型は,ここでは取り扱わない。 

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 区別する値としての整数型の許容値の最小及び最大を定義する。 

background image

59 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

例 _月日 ::= 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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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.3, E.2.2.3.4及びE.2.2.5参照 

E.2.2.7 集合型及び単一型集合型 

E.2.2.7.1 数が既知で大きさが中程度であって,順序が重要でない変数の集まりをモデル化する場合に,集

合型を使用する。 

例 

_利用者名 

::= 

SET 

{ 

個人名 

[0] 

IMPLICIT VisibleString 

組織名 

[1] 

IMPLICIT VisibleString 

background image

61 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

国名 

[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 

background image

62 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

{ 

ディレクトリ名 

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} 

background image

63 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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.2,E.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 _通し番号 

−−システムが割り当てたファイルの識別子−−} 

background image

64 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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 

background image

65 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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) 

background image

66 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

−−_局所型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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

{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日 

配偶者名: 

山田 花子 

子供の数: 

子供情報 

 氏  名: 

山田 健一 

 生年月日: 

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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

{ 

_氏名 

, 

生年月日 

[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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

附属書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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

IDENTIFIER 

OPTIONAL 

DEFAULT 

COMPONENTS 

UNIVERSAL 

APPLICATION 

PRIVATE 

TRUE 

FALSE 

BEGIN 

END 

DEFINITIONS 

(2) この規格では,次の生成規則を終端記号としての(1)の項目と共に使用する。 

_モジュール定義 

::= 

モジュール参照 

DEFINITION 

“::=” 

BEGIN 

_モジュール本体 

END 

_モジュール本体 

::= 

_割当てリスト | 空 

_割当てリスト 

::= 

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

_割当て 

::= 

_型割当て | _値割当て 

_外部型参照 

::= 

モジュール参照 

. 

型参照 

_外部値参照 

::= 

モジュール参照 

. 

値 参 照 

_定義型 

::=  

_外部型参照 | 型参照 

_定義値 

::=  

_外部値参照 | 値参照 

_型割当て 

::= 

型参照 

“::=” 

_型 

_値割当て 

::= 

値参照 

_型 

“:: =” 

_値 

_型 

::=  

_組込み型 | _定義型 

_組込み型 

::=  

_論理型 

| 

_整数型 

| 

71 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

_ビット列型 

| 

_オクテット列型 

| 

_ヌル型 

| 

_順序列型 

| 

_単一型順序列型 

| 

_集合型 

| 

_単一集合型 

| 

_選択型 

| 

_参照選択型 

| 

_タグ付き型 

| 

_任意型 

| 

_オブジェクト識別子型 

| 

_文字列型 

| 

_有用型 

_名前付き型 

::= 

識別子 _型 | _型| _参照選択型 

_値 

::= 

_組込み値 | _定義値 

_組込み値 

::= 

_論理値 

| 

_整数値 

| 

_ビット列値 

| 

_オクテット列値 

| 

_ヌル値 

| 

_順序列値 

| 

_単一型順序列値 

| 

_集合値 

| 

_単一型集合値 

| 

_選択値 

| 

_参照選択値 

| 

_タグ付き値 

| 

_任意値 

| 

_オブジェクト識別子値 

| 

_文字列値 

_名前付き値 

::= 

識別子_値 | _値 

_論理型 

::= 

BOOLEAN 

_論理値 

::= 

TRUE FALSE 

_整数型 

::= 

INTEGER | 

INTEGER {_名前付き数字リスト} 

_名前付き数字リスト 

::= 

_名前付き数字| 

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

_名前付き数字  

::= 

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

識別子(_定義値) 

72 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

_符号付き数字 

::= 

数字|−数字 

_整数値 

::= 

_符号付き数字|識別子 

_ビット列型 

::= 

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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

_タグ付き値  

::= 

_値 

_任意型  

::=  

ANY 

_任意値  

::=  

_型 _値 

_オブジェクト識別子型 

::=  

OBJECT IDENTIFIER 

_オブジェクト識別子値 

::= 

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

{_定義値 

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

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

::= 

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

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

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

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

::= 

_名前形式 | 

_数字形式 | 

_名前及び数字形式 

_名前形式 

::= 

識別子 

_数字形式 

::= 

数字|_定義値 

_名前及び数字形式 

::= 

識別子(_数字形式) 

_文字列型 

::= 

型参照 

_文字列値 

::= 

文字列 

_有用型 

::= 

型参照 

(3) 本体の29.では,次の文字列型を定義する。 

NumericString 

PrintableString 

TeletexString 

T61String 

VideotexString 

VisibleString 

ISO646String 

IA5String 

GraphicString 

GeneralString 

(4) 本体の第3章では,次の有用型を定義する。 

GeneralizedTime 

UTCTime 

EXTERNAL 

ObjectDescriptor 

(5) マクロ定義のため,附属書AのA.2.では,次の補助項目を定義する。 

マクロ参照 

生成規則参照 

局所型参照 

74 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

局所値参照 

“|” 

> 

任 意 列 

“文字列” 

“識別子” 

“数 字” 

“空” 

MACRO 

TYPE 

NOTATION 

VALUE 

value 

type 

(6) 附属書Aでは,次の生成規則を(5)の項目及び終端記号としての(1)の項目と共に使用する。 

_マクロ定義 

::= 

マクロ参照 

MACRO 

“::=” 

BEGIN 

_マクロ本体 

END 

_マクロ本体 

::= 

_型生成規則 

_値生成規則 

_支援生成規則 

_型生成規則 

::= 

TYPE NOTATION 

“::=” 

マクロ代替リスト 

_値生成規則 

::= 

VALUE NOTATION 

“::=” 

_マクロ代替リスト 

_支援生成規則 

::= 

_生成規則リスト | 空 

_生成規則リスト 

::= 

_生成規則|_生成規則リスト _生成規則 

_生成規則 

::= 

生成規則参照 

“::=” 

_マクロ代替リスト 

_マクロ代替リスト 

::= 

_マクロ代替 | 

_マクロ代替リスト 

“|” 

_マクロ代替 

_マクロ代替 

::= 

_記号リスト 

75 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

_記号リスト 

::= 

_記号要素 | _記号リスト _記号要素 

_記号要素 

::= 

_記号定義 | _埋込み定義群 

_記号定義 

::= 

任意列 

| 

生成規則参照 

| 

“文字列” 

| 

“識別子” 

| 

“数字” 

| 

“空” 

| 

type 

| 

type(局所値参照) 

| 

value(_マクロ型) 

| 

value(局所型参照 _マクロ型) 

| 

value(VALUE _マクロ型) 

_マクロ型 

::= 

局所型参照   _型 

_埋込み定義群 

::= 

<_埋込み定義リスト> 

_埋込み定義リスト 

::= 

_埋込み定義  | 

_埋込み定義リスト _埋込み定義 

_埋込み定義 

::= 

_局所型割当て | _局所値割当て 

_局所型割当て 

::= 

局所型参照 

“::=” 

_マクロ型 

_局所値割当て 

::= 

局所値参照 

_マクロ型 

“::=” 

_マクロ値 

_マクロ値 

::= 

_値|局所値参照 

background image

76 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

用語索引 

1. 用語索引(五十音順) 

用語 

英語 

箇条番号 

IA5String 

IA5String 

29. 

値 

value 

3.1 

値 参 照 

value reference 

8.4 

値割当て 

value assignment 

11.2 

暗 黙 

implicit 

8.2, 8.14, 24. 

一般化時刻 

generalized time 

30. 

ASN.1文字集合 

ASN.1character set 

3.9, 7. 

EXTERNAL 

EXTERNAL 

8.2, 8.14, 32., E.1.2.12, E.2.2.12 

END 

END 

8.2, 8.14, 9.1 

応 用 

application 

5.8, 24. 

オクテット列 

octet string 

3.18, 8.2, 8.14, 16., E.1.2.4.E.2.2.4 

OPTIONAL 

optional 

8.2.8.14, 18., 20. 

オブジェクト記述子 

object descriptor 

33. 

オブジェクト識別子 

object identifier 

8.2, 8.14, 26. 

オブジェクト識別子木 

object identifier tree 

26.9,附属書B,附属書C 

型 

type 

3.2 

型 参 照 

type reference 

8.2 

型割当て 

type assignment 

11.1 

外部型参照 

externaltypereference 

9.4, 10. 

キーワード項目 

keyword items 

8.14 

偽 

false 

8.2, 8.14, 3.15 

空 項 目 

empty item 

8.7 

組込み型 

built-in type 

12.1, 12.7 

組込み値 

built-in value 

12.6, 12.7 

GraphicString 

graphicstring 

29. 

構成要素型 

component type 

3.5 

構 造 型 

structured type 

3.4 

項 目 

items 

3.9, 8. 

COMPONENTS OF 

components of 

8.2, 8.14, 18. 

参照選択型 

selection type 

2.3, 13.2, 10. 

識 別 子 

identifier 

8.3 

集 合 

set 

8.2, 8.14, 20., E.1.2.7, E.2.2.7 

私 用 

private 

5.8, 24. 

真 

true 

8.2, 8.14 

GeneralString 

generalstring 

29. 

時 刻 

time 

30., 31. 

16進列項目 

hexadecimal string item 

8.10 

順 序 列 

sequence 

8.2, 8.14, 18., E.1.2.6, E.2.2.6 

数字項目 

number item 

8.8 

整 数 

integer 

3.16, 8.2, 8.14, 14., E.1.2.2, E.2.2.2 

生成規則 

productions 

5.1 

選 択 

choice 

8.2, 8.14, 22., E.1.2.9, E.2.2.9 

タ グ 

tags 

3.6.E.1.2.8, E.2.2.8 

タグ付き型 

tagged type 

24., E.1.2.8, E.2.2.8 

タグ付け 

tagging 

3.7 

単一型集合 

setof 

8.2, 8.14, 21. 

単一型順序列 

sequence of 

8.2, 8.14, 19., E.1.2.6, E.2.2.6 

background image

77 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

用語 

英語 

箇条番号 

単 純 型 

simple type 

3.3 

注 釈 

comment 

7.3, 8.6 

T61文字列 

T61String 

29. 

TeletexString 

teletexstring 

29. 

DEFINITIONS 

DEFINITIONS 

8.14, 9.1 

DEFAULT 

DEFAULT 

8.2, 8.14, 18., 20. 

2進列項目 

binary string item 

8.9 

NumericString 

numericstring 

29., 29.3 

任 意 

any 

8.2, 8.14, 19.2, 25., E.1.2.11, E.2.2.11 

ヌ ル 

null 

8.2, 8.14, 17., E.1.2.5, E.2.2.5 

はん(汎)用 

universal 

5.8, 24. 

BEGIN 

BEGIN 

8.2, 8.14, 9.1 

VisibleString 

visiblestring 

29. 

ビット列 

bitstring 

3.17, 8.2, 8.14, 15., E.1.2.3, E.2.2.3 

VideotexString 

videotexstring 

29. 

PrintableString 

printablestring 

29., 29.4 

マ ク ロ 

macros 

附属書A A.1.〜A.4., E.1.3, E.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.3, E.2.1〜E.2.3 

論 理 

boolean 

3.13, 8.2, 8.14, 13., E.1.2.1, E.2.2.1 

割当て記号項目 

assignment item 

8.12 

2. 用語索引(アルファベット順) 

英語 

用語 

箇条番号 

any 

任 意 

8.2, 8.14, 19.2, 25., E.1.2.11, E.2.2.11 

application 

応 用 

5.8, 24. 

ASN.1 character set 

ASN.1文字集合 

3.9, 7. 

assignment item 

割当て記号項目 

8.12 

BEGIN 

BEGIN 

8.2, 8.14, 9.1 

binary string item 

2進列項目 

8.9 

bitstring 

ビット列 

3.17, 8.2, 8.14, 15., E.1.2.3, E.2.2.3 

boolean 

論 理 

3.13, 8.2, 8.14, 13., E.1.2.1, E.2.2.1 

built-in type 

組込み型 

12.1, 12.7 

built-in value 

組込み値 

12.6, 12.7 

character string type 

文字列型 

27., 29. 

character string item 

文字列項目 

8.11 

choice 

選 択 

8.2, 8.14, 22., E.1.2.9, E.2.2.9 

comment 

注 釈 

7.3, 8.6 

components of 

COMPONENTS OF 

8.2, 8.14, 18. 

component type 

構成要素型 

3.5 

DEFAULT 

DEFAULT 

8.2, 8.14,18., 20. 

DEFINITIONS 

DEFINITIONS 

8.14, 9.1 

empty item 

空 項 目 

8.7 

background image

78 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

英語 

用語 

箇条番号 

END 

END 

8.2, 8.14, 9.1 

examples 

例 

E.1.1〜E.1.3, E.2.1〜E.2.3 

EXTERNAL 

EXTERNAL 

8.2, 8.14.32., E.1.2.12, E.2.2.12 

externaltypereference 

外部型参照 

9.4, 10. 

false 

偽 

8.2, 8.14, 3.15 

generalstring 

GeneralString 

29. 

generalized time 

一般化時刻 

30. 

graphicstring 

GraphicString 

29. 

hexadecimal string item 

16進列項目 

8.10 

IA5String 

IA5String 

29. 

identifier 

識 別 子 

8.3 

implicit 

暗 黙 

8.2, 8.14, 24. 

integer 

整 数 

3.17, 8.2, 8.14, 14., E.1.2.2, E.2.2.2 

items 

項 目 

3.9, 8. 

keyword items 

キーワード項目 

8.14 

nlacros 

マ ク ロ 

附属書A A.1.〜A.4., E.1.3, E.2.3 

module 

モジュール 

9. 

module reference 

モジュール参照 

8.5 

number item 

数字項目 

8.8 

numericstring 

NumericString 

29., 29.3 

null 

ヌ ル 

8.2.8.14, 17., E.1.2.5, E.2.2.5 

object descriptor 

オブジェクト記述子 

33. 

object identifier 

オブジェクト識別子 

8.2, 8.14, 26. 

object identifier tree 

オブジェクト識別子木 

3.19, 26.9,附属書B,附属書C 

octet string 

オクテット列 

8.2, 8.14, 16., E.1.2.4, E.2.2.4 

optional 

OPTIONAL 

8.2, 8.14, 18., 20. 

printablestring 

PrintableString 

29., 29.4 

private 

私 用 

5.8, 24. 

productions 

生成規則 

5.1 

reserved character sequence 

予 約 語 

8.2.2 

selection type 

参照選択型 

2.3, 13.2, 10. 

sequence 

順 序 列 

8.2, 8.14, 18., E.1.2.6, E.2.2.6 

sequence of 

単一型順序列 

8.2, 8.14.19., E.1.2.6, E.2.2.6 

set 

集 合 

8.2, 8.14, 20., E.1.2.7, E.2.2.7 

set of 

単一型集合 

8.2, 8.14, 21. 

simple type 

単 純 型 

3.3 

structured type 

構 造 型 

3.4 

summary 

要 約 

附属書F 

T61String 

T61文字列 

29. 

tagged type 

タグ付き型 

24., E.1.2.8, E.2.2.8 

tags 

タ グ 

3.6, E.1.2.8, E.2.2.8 

tagging 

タグ付け 

3.7 

teletexstring 

TeletexString 

29. 

time 

時 刻 

30., 31. 

true 

真 

8.2, 8.14 

type 

型 

3.2 

type assignment 

型割当て 

11.1 

type reference 

型 参 照 

8.2 

universal 

はん(汎)用 

5.8, 24. 

universal time 

UTC時 

31. 

useful types 

有 用 型 

28., 30., 31., 32., 33. 

background image

79 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

英語 

用語 

箇条番号 

UTC time 

UTC時 

31. 

value 

値 

3.1 

value assignment 

値割当て 

11.2 

value reference 

値 参 照 

8.4 

videotexstring 

VideotexString 

29. 

visiblestring 

VisibleString 

29. 

80 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

参考 ASN.1の拡張 

この参考は,ISO 8824の補遺 (Addendum 1) として作成中のものの内容を示すと共に,必要に応じてこ

れに伴う日本語拡張の対応箇所も示した。 

この内容とほぼ同等のものが,この規格の基となったISO 8824に将来反映されると思われるので参考の

ために示すことにした。 

概 要 この参考の各箇条 (A〜I) はASN.1のそれぞれの拡張項目に対応している。各箇条では,拡張

を行うために必要な本体の各箇条の変更部分を示す。箇条Iでは,種々の拡張の結果として,予約語の追

加が必要となるような,体系的な変更を示している。 

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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

3.17 列挙型 (enumerated type)  型記法の一部として,その型の値に対し個別の識別子を付与する単純

型。 

(2) 本体の14.の後に次の箇条を追加し,以降を再番号付けする。 

15. 列挙型の記法 

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

_列挙型 

::= 

ENUMERATED{_列挙} 

_列挙 

::= 

_名前付き数字|_名前付き数字,_列挙 

備考1. この記法では,各値は異なる整数値に関連する識別子をもつ。このことは,互換性のある拡

張を容易にするための値の表現方法を提供するが,値自身が整数値としての意味をもつとは

限らない。 

2. “_列挙”の中の“_名前付き数字”の中身の数値は,順番である必要はなく,連続してい

る必要もない。 

15.2 “_名前付き数字”の各々に対し,“識別子”及び“_符号付き数字”は,“_列挙”中の他のすべ

ての“識別子”及び“_符号付き数字”と異なっていなければならない。 

15.3 列挙型のタグは,はん用クラスの番号10とする。 

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

_列挙型 :: = 識別子 

(3) 附属書Eに次の変更を行い,現在の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に次の変更を行い,現在の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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

_エキスポート 

::= 

EXPORTS_エキスポートするシンボル; 

|空 

_エキスポートするシンボル 

::= 

_シンボルリスト | 空 

_インポート 

::= 

IMPORTS_インポートするシンボル; |空 

_インポートするシンボル 

::= 

_モジュールリストからのシンボル|空 

_モジュールリストからのシンボル 

::= 

_モジュールからのシンボル 

_モジュールリストからのシンボル| 

_モジュールからのシンボル| 

_モジュールからのシンボル 

::= 

_シンボルリストFROM _モジュール識別子 

_シンボルリスト 

::= 

_シンボル,_シンボルリスト| 

_シンボル 

_シンボル 

::= 

型参照|値参照 

_割当てリスト 

::= 

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

_割当て 

::= 

_型割当て|_値割当て 

(2) 本体の9.1に次の備考を追加する。 

備考6. “マクロ参照”(附属書A参照)も,“_シンボル”として現れる。 

(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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

トするシンボル”における選択子“空”を選択する。 

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×BE 

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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

_実数値 

::= 

_数値実数値|_特殊実数値 

_数値実数値 

::= 

{_仮数,_基数,_指数}|0 

_仮数 

::= 

_符号付き数字 

_基数 

::= 

2|10 

_指数 

::= 

_符号付き数字 

_特殊実数値 

::= 

PLUS−INFINITY | MINUS−INFINITY 

形式“0”は,値0に対して使用する。“_数値実数値”における“{_仮数,_基数,_指数}”の形式

は,値0に対しては使用しない。 

(3) 附属書Eの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の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.18, 3.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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

第4章 部分型 

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.に規定し,表7に要約したように,幾つかの記法は特

定の親型にだけ適用できる。 

_部分型値集合 

::= 

_単一値    | 

_包含部分型 | 

_値域    | 

_許容アルファベット 

_部分型制限 

::= 

_サイズ制限 | _内部型制限 

background image

86 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

表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 領域のそれぞれの端点は,閉じているか(この場合,端点は値の集合に含まれている。),又は開い

ているか(この場合,端点は値の集合に含まれていない。)のいずれかとし,次のとおりとする。開いてい

る場合,端点の仕様には未満を示す記号“<”を含む。 

_下限点 

::= 

_下限値|_下限値< 

background image

87 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

_上限点 

::= 

_上限値|<_上限値 

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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

“_部分型仕様”は,単一の他の(内部)型の部分型を定義する。親型の値は,各内部値が内部型に対

して“_部分型仕様”を適用することによって得られる部分型に属する場合に限り,部分型値集合の一部

とする。 

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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

(b) “_部分仕様”の場合,課せられる制限はない。 

(4) 附属書Eの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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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), 

april (4), 

may (5), 

june (6), 

july (7), 

august (8), 

september (9), 

october (10), 

november (11), 

december (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 

background image

91 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

First-half::=Months 

INCLUDES First-quarter 

| 

INCLUDES Second-quarter 

Second-half::=Months 

INCLUDES Third-quarter 

| 

INCLUDES Fourth-quarter 

(5) 附属書Eの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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

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  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

_第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のA.3の“_マクロ定義”の生成規則を次のように置き換える。 

94 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

_マクロ定義 

::= 

マクロ参照MACRO “::=” _マクロ実体 

_マクロ実体 

::= 

BEGIN_マクロ本体END | 

マクロ参照 | 

_外部マクロ参照 

(2) 附属書AのA.3“_生成規則”の後に新たに次の生成規則を追加する。 

_外部マクロ参照::=モジュール参照,マクロ参照 

(3) 附属書AのA.3に新たに次の箇条を追加し,以降を再番号付けする。 

A.3.2 “_マクロ実体”の中の“マクロ参照”選択肢を選んだ場合,マクロ定義を含むモジュールは次の

いずれかでなければならない。 

(a) “マクロ参照”を定義する他のマクロ定義を含む。 

(b) “_インポートするシンボル”の中に“マクロ参照”を含む。 

A.3.3 “_マクロ実体”の中の“_外部マクロ参照”選択肢を選んだ場合,“モジュール参照”によって表

されるモジュールは,“マクロ参照”を定義するマクロ定義を含んでいなければならない。関連する定義は,

同様に,定義される“マクロ参照”に関連付けられる。 

A.3.4 A.3.2〜A.3.3の規則を繰り返し適用することによって生じる可能性のある定義の連続は,“BEGIN_

マクロ本体END”選択肢を用いる“_マクロ定義”によって終結しなければならない。 

(4) 附属書AのA.4を次のように置き換える。 

この規格で規定した“_型”(又は“_値”)記法を使用できるところでは,マクロ定義によって定

義した型記法(又は値記法)のインスタンスを使用することができる。この場合のマクロは,次のい

ずれかでなければならない。 

(a) 同じモジュールの中で定義する。 

(b) “_インポートするシンボル”の中に現れる“マクロ参照”によってそのモジュールにインポート

する。 

後者の可能性のために,“マクロ参照”は9.1で“_シンボル”として現れてもよいものとする。 

1. その他 

(1) 本体の表1に次の各行を追加する。重複する行は適宜削除する。 

UNIVERSAL 

実数型 

UNIVERSAL 

10 

列挙型 

UNIVERSAL 

11〜15 

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

UNIVERSAL 

18〜22, 25〜27 

文字列型 

UNIVERSAL 

28〜 

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

(2) 本体の表3及び8.14に新たに次の予約語を追加する。 

EXPLICIT 

ENUMERATED 

EXPORTS 

IMPORTS 

REAL 

INCLUDES 

MIN 

95 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

MAX 

SIZE 

FROM 

WITH 

COMPONENT 

PRESENT 

ABSENT 

DEFINED 

BY 

PLUS−INFINITY 

MINUS−INFINITY 

(3) 本体の12.1の生成規則に次の選択肢を追加する。 

_型 

::=  

|_部分型 

_組込み型 

::= ... 

| 

_列挙型 

| 

_実数型 

(4) 本体の12.2の後に新たに次の箇条12.3を追加し,以降を再番号付けする。 

12.3 “_部分型”記法は第4章に規定する。 

(5) 本体の12.3の“_組込み型”を,“_組込み型又は_部分型”と置き換える。 

(6) 本体の12.6の生成規則に次の選択肢を追加する。 

_組込み値 

::= ... 

| 

_列挙値 

| 

_実数値 

(7) 本体の12.7に次の行を追加する。 

_列挙型 

_列挙値 

_実数型 

_実数値 

96 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

ASN.1ワーキンググループ 構成表(敬称略,順不同) 

氏名 

所属 

(主査) 

佐久間 幹 郎 

沖電気工業株式会社コンピュータシステ

ム開発本部 

(幹事) 

脇 野   淳 

沖電気工業株式会社コンピュータシステ

ム開発本部 

河 本 清 人 
 (~63.3) 

日本アイ・ビー・エム株式会社標準推進 

岩 本 裕 司 
 (63.4~) 

日本アイ・ビー・エム株式会社標準推進 

粕 川 雅 之 

富士通株式会社沼津工場 

斎 藤 洋 子 
 (~63.3) 

株式会社日立製作所ソフトウェア工場 

九 野   伸 
(63.4~) 

株式会社日立製作所ソフトウェア工場 

柴 田 伸 一 

日本ユニシス株式会社通信システム部 

日 高 孝 寛 

日本ディジタル・イクウィップメント株式

会社研究開発センター 

藤 田 朋 生 

日本電気株式会社基本ソフトウェア開発

本部 

(工業技術院) 

粕 川 晃 秀 
(63.4〜) 

工業技術院標準部電気・情報規格課 

(事務局) 

鴛 海 雄 二 

財団法人日本規格協会情報技術標準化研

究センター 

97 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

昭和62年度 OSI調査研究委員会 構成表(敬称略,順不同) 

氏名 

所属 

(委員長兼WG4主査)  

田 畑 孝 一 

図書館情報大学図書館情報学部 

(WG1主査) 

飯 野 守 夫 

株式会社日立製作所ソフトウェア工場 

(WG2主査) 

大 庭 弘太郎 

株式会社東芝高度情報通信システム推進

部 

(WG3主査) 

佐久間 幹 郎 

沖電気工業株式会社コンピュータシステ

ム開発本部 

芥 川 哲 男 

三菱電機株式会社コンピュータ製作所 

諌 山 徹 也 

富士通株式会社ソフトウェア事業部 

奥 本 晋 也 

株式会社東急ストアー 

小野間 清 孝 

財団法人鉄道総合技術研究所 

窪 田   明 

通商産業省機械情報産業局 

小 林   允 

日本ユニバック株式会社プロダクト本部 

小 林 善 和 

日本アイ・ビー・エム株式会社標準推進 

小 松 博 親 

全国銀行協会連合会 

坂 井 良 三 

国際通信電話株式会社営業本部 

塩 谷   勝 

トヨタ自動車株式会社電算部 

杉 野   隆 

新日本製鐵株式会社情報通信システム部 

塚 本 亨 治 

工業技術院電子技術総合研究所 

勅使河原 可海 

日本電気株式会社情報処理通信業システ

ム事業部 

富 永 英 義 

早稲田大学理工学部 

増 田 秀 雄 

財団法人金融情報システムセンター 

水 田 耕 治 

日本航空株式会社情報システム本部企画

部 

森 野 和 好 

日本電信電話株式会社ネットワークシス

テム開発センター 

(工業技術院) 

近 藤 康 生 

工業技術院標準部電気・情報規格課 

(工業技術院) 

根 上 雄 二 

工業技術院標準部電気・情報規格課 

(事務局) 

山 田 正 二 

財団法人日本規格協会情報技術標準化研

究センター 

(委員交替) 

荒 武 浩一郎 

日本航空株式会社情報システム本部 
(昭和62年6月〜昭和62年10月) 

98 

X5603-1990  

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

昭和63年度 OSI−JIS調査研究委員会 構成表(順不同,敬称略) 

氏名 

所属 

(委員長) 

田 畑 孝 一 

図書館情報大学図書館情報学部 

(主査) 

飯 野 守 夫 

株式会社日立製作所ソフトウェア工場 

( 〃 ) 

水 野 忠 則 

三菱電機株式会社情報電子研究所 

( 〃 ) 

片 淵 健二郎 

日本電気株式会社伝送通信情報部 

( 〃 ) 

佐久間 幹 郎 

沖電気工業株式会社コンピュータシステ

ム開発本部 

芥 川 哲 雄 

三菱電機株式会社コンピュータ製作所 

諌 山 徹 也 

富士通株式会社ターミナルシステム事業

部 

木 下 文 雄 

財団法人日本自動車工業会 

窪 田   明 

通商産業省機械情報産業局 

佐 藤   茂 

国際電信電話株式会社施設本部 

小 林 善 和 

日本アイ・ビー・エム株式会社標準推進 

清 水 正 義 

全国銀行協会連合会 

杉 野   隆 

新日鐵情報通信システム株式会社技術部 

田 中 幹 夫 

財団法人鉄道総合技術研究所 

塚 本 亨 治 

工業技術院電子技術総合研究所 

勅使河原 可海 

日本電気株式会社情報処理通信業システ

ム事業部 

當 麻 悦 三 

日本ユニシス株式会社ソフトウェアプロ

ダクト本部 

三 好   彰 

株式会社東芝開発第7部 

森 野 和 好 

日本電信電話株式会社ネットワークシス

テム開発センタ 

渡 辺   治 

財団法人金融情報システムセンター 

(オブザーバー) 

池 田   裕 

株式会社日立製作所日立ソフトウェア工

場 

(   〃   ) 

平 山 尚 文 

日本電信電話株式会社ネットワークシス

テム開発センタ 

(   〃   ) 

矢 野   厚 

日本電信電話株式会社高度通信サービス

事業本部 

(   〃   ) 

芝 野 耕 司 

日本アイ・ビー・エム株式会社東京基礎研

究所 

(工業技術院) 

市 川 英 雄 

工業技術院標準部電気・情報規格課 

(事務局) 

山 田 正 二 

財団法人日本規格協会情報技術標準化研

究センター 

( 〃 ) 

鴛 海 雄 二 

財団法人日本規格協会情報技術標準化研

究センター 

( 〃 ) 

西 田 正 忠 

財団法人日本規格協会情報技術標準化研

究センター 

日本工業標準調査会 情報部会規格調整専門委員会 WG2委員 構成表(敬称略,順不同) 

氏名 

所属 

(主査) 

徳 永 英 二 

日本アイ・ビー・エム株式会社標準推進 

森   宗 正 

日本ユニシス株式会社技術研究部 

楡 木 武 久 

日本電子工業振興協会 

伊 藤 博 夫 

沖電気工業株式会社技術本部技術管理部 

佐 藤   健 

株式会社日立製作所ソフトウェア工場