JIS X 5603:1990 開放型システム間相互接続の抽象構文記法1(ASN.1)仕様 | ページ 19

                                                                                             89
X5603-1990
(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) F 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,

――――― [JIS X 5603 pdf 91] ―――――

90
X5603-1990
delta [3] BOOLEAN}
このとき,論理型が偽に,整数型が負になることを要求する試験を行うには,次のようにする。
TestPDU : : = PDU (WITH COMPONENTS [{..., delta (FALSE), alpha (MIN. . <0)}] )
さらに,IA5Stringであるbetaが存在し,かつ長さが5又は12文字のいずれかとするには,次のように
する。
FurtherTestPDU : : = TestPDU(WITH COMPONENTS
[{..., beta (SIZE 5|12)) PRESENT}])
E.1.5.4 はん用のデータ型がSEQUENCE OFと定義されている場合,一般型の制限された部分型を定義す
るために部分型化を使用する。

Text-block : : = SEQUENCE OF VisibleString
Address : : = Text-block
(SIZE (1. .6) |WITH COMPONENT (SIZE (1..32)))
E.1.5.5 存在している部分型から新しい部分型を形成するために包含部分型を使用する。

Months : : =ENUMERATED [{ january (1),
february (2),
march (3),
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 )

――――― [JIS X 5603 pdf 92] ―――――

                                                                                             91
X5603-1990
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) F _パラメタ
_小さい素数 : : = 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のある構成要素だけに関係する。

仮定 :

――――― [JIS X 5603 pdf 93] ―――――

92
X5603-1990
PDU : : = SET{ アルファ [0] INTEGER,
ベータ [1] IA5String OPTIONAL,
ガンマ [2] SEQUENCE OF _パラメタ,
デルタ [3] BOOLEAN}
このとき,論理型が偽に,整数型が負になることを要求する試験を行うには,次のようにする。
_試験PDU: : =_PDU (WITH COMPONENTS{...,デルタ (FALSE),アルファ (MIN.. <0)})
さらに,IA5Stringであるベータが存在し,かつ長さが5又は12文字のいずれかとするには,次のよう
にする。
_次の試験PDU : : = _試験PDU (WITH COMPONENTS
{...,ベータ (SIZE 5|12)) PRESENT})
E.2.5.4 はん用のデータ型がSEQUENCE OFと定義されている場合,一般型の制限された部分型を定義す
るために部分型化を使用する。

_テキストブロック : : = SEQUENCE OF VisibleString
_アドレス : : = _テキストブロック
(SIZE (1..6)| WITH COMPONENT (SIZE (1..32)))
E.2.5.5 存在している部分型から新しい部分型を形成するために包含部分型を使用する。

_月 : : = ENUMERATED{
1月 (1),
2月 (12),
3月 (3),
4月 (4),
5月 (5),
6月 (6),
7月 (7),
8月 (8),
9月 (9),
10月 (10),
11月 (11),
12月 (12)}
_第1四半期 : : = _月( 1月|
2月|
3月)
_第2四半期 : : = _月( 4月|
5月|
6月)
_第3四半期 : : = _月( 7月|
8月|
9月)

――――― [JIS X 5603 pdf 94] ―――――

                                                                                             93
X5603-1990
_第4四半期 : : = _月( 10月|
11月|
12月)
_上半期 : : = _月( INCLUDES_第1四半期|
INCLUDES_第2四半期)
_下半期 : : = _月( INCLUDES_第3四半期|
INCLUDES_第4四半期)
G. ANYDEFINED BY
(1) 本体の25.1の生成規則を次のように置き換える。
_任意型 : : = ANY | ANY DEFINED BY 識別子
(2) 本体の25.1の備考を次のように置き換える。
備考 ISO規格又はCCITT勧告において “ANY” を使用する場合,補助仕様によって補完されない限
り,その仕様は不完全なものとなる。 “ANY DEFINED BY” 構文は,通信インスタンスにおい
てANYを満たす型を規定する手段,及びその意味への手掛かりを提供する。次に示す規則に
従って使用すれば完全な仕様を提供することができる。DEFINED BYを用いないでANYを使
用することは望ましくない。
(3) 本体の25.1の備考の後に新たに次の箇条を追加し,以降を再番号付けする。
25.2 “DEFINED BY” 選択肢は,任意型又はタグ付けによって任意型から派生する型が,順序列型又は集
合型の一つの構成要素型である場合に限り使用する。
25.3 “DEFINED BY” 選択肢の中の“識別子”も同様に,任意選択ではない他の順序列型又は集合型の構
成要素を規定する“_名前付き型”の中に現れなければならない。
“_名前付き型”は,整数型又はオブジェクト識別子型のいずれかとする。
25.4 “_名前付き型”が整数型の場合, “DEFINED BY” 記法を使用する文書は,それぞれの許容された
整数型に対して,ANYが転送するASN.1の型を指定する単一のリストを含んでいるか,又は明示的に参
照していなけれはならない。含んでいる型のすべての通信インスタンスにおいて,そのようなリストをた
だ一つもっていなければならない。
25.5 “_名前付き型”がオブジェクト識別子型の場合,それぞれの割り当てられたオブジェクト識別子
値について,ANYが転送する単一のASN.1の型(CHOICE型であってもよい)に関連付ける登録が必要
となる。
備考1. この目的のためにオブジェクト識別子値とASN.1の型を関連付ける登録は,複数あってもよ
い。
2. 開放型接続のための値の登録は,この記法を用いるISO規格及びCCITT勧告の中で発生する
と予想される。ある “ANYDEFINEDBY” のインスタンスに対して,独立した国際登録機関
が予定されている場合,その機関をこの記法を用いる文書の中で示すのが望ましい。
3. 整数とオブジェクト識別子の定義の主な違いは,整数を用いる場合は,使用する規格に含ま
れる単一のリストを参照するのに対して,オブジェクト識別子を用いる場合は,オブジェク
ト識別子を割り当てることのできる主管機関によって決定された型集合を認めることにある。
H. マクロ割当て
(1) 附属書AのA.3の“_マクロ定義”の生成規則を次のように置き換える。

――――― [JIS X 5603 pdf 95] ―――――

次のページ PDF 96

JIS X 5603:1990の引用国際規格 ISO 一覧

  • ISO/IEC 8824:1987(MOD)

JIS X 5603:1990の国際規格 ICS 分類一覧

JIS X 5603:1990の関連規格と引用規格一覧