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

日本工業規格

JIS

 X

0604

-1986

情報交換用データ記述ファイル

Specification for a Data Descriptive File for

Information Interchange

1.

適用範囲  この規格は,多様な形と構造をもつデータを,計算機システム間で情報交換するためのレ

コード及びファイルに関し,媒体に依存しない一般的構造及びその記述方法について規定する。規定内容

の概要は,次のとおりとする。

(1)  1

個のデータ記述レコード及び対応する複数のデータレコードより構成され,情報交換時の外部記述

を最少にできるデータ記述ファイル。

(2)

対応するデータレコード内の各データフィールドの形式を記述するデータ記述レコード。

(3)

文字列,ビット列,数値形式のデータを含む基本データ,ベクトル,配列及び階層構造データの記述

方法。

(4)

扱えるデータの構造の複雑度に応じた三つの情報交換水準。

備考1.  この規格は,データレコードの内容を記述する方法を規定するが,その内容自体は規定しな

い。

2.

数値形式データについては,書式の記述方法はこの規格で規定するが,データの表現形式は

JIS C 6322

(情報交換用文字列による数値表現)を準用する。

3.

媒体に依存するラベルとファイル構成については,JIS C 6245(情報交換用磁気テープのラ

ベルとファイル構成)

JIS C 6289(情報交換用磁気カセットテープのラベルとファイル構成)

JIS C 6292

(情報交換用フレキシブルディスクカートリッジのラベルとファイル構成)など,

他の規格の適用を前提とする。

引用規格: 

JIS C 6220

  情報交換用符号

JIS C 6228

  情報交換用符号の拡張法

JIS C 6245

  情報交換用磁気テープのラベルとファイル構成

JIS C 6289

  情報交換用磁気カセットテープのラベルとファイル構成

JIS C 6292

  情報交換用フレキシブルディスクカートリッジのラベルとファイル構成

JIS C 6322

  情報交換用文字列による数値表現

対応国際規格: 

ISO 8211 Information processing

−Specification for a data descriptive file for information inter-change

関連規格:JIS C 6226  情報交換用漢字符号系

ISO 646 Data processing-7 bit coded character set for information interchange

ISO 

国際登録簿    (ISO international register of character sets to be used with escape sequences)


2

X 0604-1986

2.

適合性  情報交換用ファイル内のデータ記述レコードとすべてのデータレコードが,この規格の規定

に適合するとき,そのファイルは,この規格に適合する。

適合性を表示するときは,そのファイルの内容が適合する情報交換水準を明示しなければならない。

なお,この規格は,ファイルの処理に対する要求条件は含んでいないため,ファイルの処理系の適合性

については規定しない。

3.

用語の意味  この規格で用いる用語の意味を,次に示す。

(1)

行きがけ順  次の再帰的アルゴリズムにより生成される階層構造中のノードの列。

(a)

根ノードから木構造に入る。

(b)

以前にたどっていない部分木のうち最も左のものをたどる。

(c)  (b)

ができないとき,部分木の上位ノードに戻り,(b)に行く。

(2)

位置  フィールドの最初のバイトの位置を示すバイト番号。リーダとディレクトリ中の位置は,リー

ダの最初のバイトを起点とする。データ記述レコードや利用者データフィールドの位置は,データの

基底アドレスを起点とする。

(3)

英数字  JIS C 6220(情報交換用符号)のローマ文字用 7 単位符号表の 2∼7 列にある文字。ただし,

(7/15)

は除く。

備考  この規格では,文字を規定するときは,JIS C 6220 のローマ文字用 7 単位符号表内の位置(列

/行)又は ESC,RS,US,SP などの略語で表す。8 単位符号系を使用する場合は,

“ローマ文

字用 7 単位符号表の (n/m)”と表記されている箇所を,

JIS C 6220 のローマ文字・片仮名用 8

単位符号表の (0n/m)”と読み換える。

(4)

エントリマップ  ディレクトリ内のエントリの構造を示すリーダ中のフィールド。

(5)

階層,階層構造  最上位に根ノードをもち,配下に複数の順序付けされた部分木をもち,その最下位

が葉ノードで終わる根付き順序木構造。

(6)

拡張文字 (ESC)   追加文字を得るために使用される制御文字。後続の限定された数のビットの組の

意味を変更する。使用法は,JIS C 6228(情報交換用符号の拡張法)による。

(7)

可変長フィールド  実現値ごとに長さが変わるフィールド。

(8)

基本  それ以上分割すると意味を失うような最小の単位。

(9)

空  データ要素,列又は集合などの実現値が存在しない状態。

(10)

区切り構造  区切り文字で区切られたデータ要素の集まりから構成される構造。

(11)

区切り文字  データ要素間及びデータフィールド間を分離する 1 個の文字。

(12)

サブフィールド分離文字 (UT)   DDR 及び DR 中の可変長フィールド内のサブフィールドを区切るた

めに用いる文字。JIS C 6220 のローマ文字用 7 単位符号表の(1/15)の文字。

(13)

写像する  二つの構造の要素間の対応を定めること。

(14)

情報交換形式  特定システム内での処理用レコード形式でなく情報交換のためのレコード形式。

(15)

情報交換水準  この規格の要求条件の規定された部分集合に対応する水準。

(16)

相対位置 (RP)   フィールドの先頭を基底として 10 進整数で表したバイト位置。相対位置の先頭の値

は 0 とする。

(17)

タグ  フィールドの内部名を指定するために用いるディレクトリ中の識別子。

(18)

直積ラベル  2 個以上のベクトルラベルの要素の直積により構成される識別子の配列。配列の要素は,


3

X 0604-1986

直積の要素と同一順序をもつ。

すなわち,

a

b

とが,

a

=[a (1) ,…, a (n) ]  かつ

b

=[b (1) ,…, b (m)]  であるベクトルラベルで

あるとすれば,直積ラベルは

a

b

=[a (1) b (1) ,    a (1) b (2) ,…, a (1) b (m) ,…, a (n) b (m)]  である。

ここで,a (i) b (j)  は,対応する配列データの要素 (i, j) の識別子を形成する a (i)  と b (j)  の連結で

ある。

(19)

ディレクトリ  ディレクトリエントリを要素とする表。

(20)

ディレクトリエントリ  レコードの特定フィールドのタグ,長さ及び位置に関する情報をもつディレ

クトリ中の固定長フィールド。

(21)

データ記述ファイル (DDF)  1 個のデータ記述レコード及びこれと対応する複数のデータレコードを

含むファイル。

(22)

データ記述レコード (DDR)  データレコードに論理的に先行し,対応するデータレコードを解釈する

ために必要な制御パラメタとデータ定義情報をもつ 1 個のレコード。このレコードは,ファイルラベ

ルを除いたファイル内の先頭の論理レコードである。

(23)

データの基底アドレス  ディレクトリのフィールド分離文字の後の,最初のデータフィールドまでの

バイト数と同じ値をもつデータ要素。

(24)

データレコード (DR)  利用者データを含む論理レコード。

(25)

バイト  個のビットの集まり。

備考  この規格は媒体に独立であり,ビット数は媒体に依存する。

(26)

配列記述子  配列の次元数と要素数を指定する数字の並び。

(27)

ビットフィールド  2 進数だけから構成され,必要なときは,右側にバイト境界まで 2 進数の 0 が充

てんされるデータフィールド[(33)文字モードビット列参照]

(28)

ファイル  1 個の単位として扱われる関連するレコードの集まり。

(29)

ファイル名  情報交換用ファイルに対し,表示可能な記述を与える文字列。ラベルとファイル構成の

規格で規定されるラベル中のファイル識別名と同一である必要はない。

(30)

フィールド分離文字 (FT)  レコード中のフィールドを終了させるために用いる文字。JIS C 6220 のロ

ーマ文字用 7 単位符号表(1/14)の文字。

(31)

複合データフィールド  1 個以上の基本データ要素から構成されるフィールド。

(32)

ベクトルラベル  ベクトルデータの各データ要素を識別するためのラベル(行又は列の見出し)を要

素とするベクトル。

(33)

文字モードビット列  2 進数の列を表現する文字“0”,“1”からなる文字列[(27)ビットフィールド参

照]

(34)

ラベル  サブフィールドの内容を識別又は名付けるための文字列。

(35)

リーダ  レコードの処理のためのパラメタを与える各レコードの先頭にある固定長のフィールド。

(36)

レコード長  レコードのバイトで数えた長さと等しい値をもつデータ要素。

(37)

論理レコード,レコード  媒体上の表現とは独立な,関連するデータ要素の集まり。

4.

情報交換ファイル

4.1

一般的構造  ここでは,情報交換用ファイルの一般的構造について規定し,4.24.3 で,詳細につい

て規定する。ファイルとそのファイルラベルの構成を

図 に示す。


4

X 0604-1986

図 1  ファイルとファイルラベルの構成

JIS

ファイル見出しラベル

データ記述ファイル

データ記述レコード

データレコード

JIS

ファイル終わりラベル

この規格は,各ファイルが,複数の論理レコード及び特定の媒体に対して必要な JIS 情報交換用ファイ

ルラベルからなる複数のデータ記述ファイル (DDF) について規定する。各 DDF は,次に示す論理レコー

ドから構成される。

(1)

データ記述レコード (DDR) 

(2)

データレコード (DR) 

ファイルの全体構造を

図 に示す。図 は,DDR と DR,各レコードのリーダとディレクトリ,代表的

なレコード,及び各レコードの代表的なデータフィールドを論理的に表現する。DDR と DR は,内容は異

なるが,同一構造のリーダ,ディレクトリ,フィールドより構成され,レコード構造は同一とする。固定

形式のデータが繰り返されるような情報を情報交換するときは,同一の DR リーダ及び DR ディレクトリ

の繰返しを省略することができる。

備考1.  図2は,フィールドの論理的な配置,幾つかのポインタの意味,及びフィールド長を示す。

さらに,物理的に順次アクセス特性をもつ媒体のために,その物理的順序を示す。

2.

この規格で規定する特殊なフィールドタグは,

“0…n”の形式で表現する。ここで,

“n”は,

10

進数字であり,

“0…”は,タグフィールドの左に充てんするゼロを意味する。


5

X 0604-1986

図 2  データ記述ファイルの論理構成

備考1.  予約:将来の標準化のために確保

2. FT

:フィールド分離文字

3.

各フィールドの右側の数字は,固定長フィールドのバイト数を示す。

4.

各エントリ及びフィールドのタグを(i)で表す。

5.

複合データフィールドを含む第 2 水準ファイルのデータ記述フィールドの例は,

図 を参照されたい。


6

X 0604-1986

図 2  (続き)

DDR

の各データ記述フィールドは,同一のタグをもつ DR 利用者データフィールド中に記録される利用

者データに関する記述を含む。DDR は,特殊なタグ“0…0”をもち(DR にはない)

,その対応するフィー

ルドには,フィールド制御,ファイル名,及び階層構造をもつ場合は,その構造情報を含む。DR はレコ

ードを識別するための特殊なフィールドをもち,DDR は同一のタグ“0…1”をもつデータ記述フィールド

中にこのフィールドに関する記述を含む。DDR 可変長フィールドの内容は,DDR リーダ中のパラメタ値

に依存して変わる。

図 に示す DDR データ記述フィールドは,基本文字データフィールドのためのものとし,図 に示す

ものは,すべての任意のサブフィールドを含んだ複合データフィールドのためのものとする。

備考1. DR 利用者データフィールドの内容は,対応する DDR 中の記述に依存して変化するが,その

例は,

2及び図4では図示されていない。データフィールドの例として,参考2を参照された

い。

2.

以降,この規格では,ビットフィールド以外のフィールド長は,バイト数で表現する。ただ

しバイト当たりのビット数は,媒体に依存して異なってもよい。フィールドの内容は文字と

して参照される。複数バイト文字集合も利用者データフィールド中で使用可能であるが(6.


7

X 0604-1986

参照)

,このような場合,フィールド長は,文字数に等しくない。

4.2

データ記述レコード (DDR)   DDR は,表 に示す領域と分離文字から構成される。DDR は,ファ

イル内の先頭レコードでなければならない。

表 1  DDR の構成

領域名

長さ

DDR

リーダ 24

DDR

ディレクトリ

k

×p

フィールド分離文字

1

データ記述領域

可変長

フィールド分離文字

1

備考  k:ディレクトリエントリの数 

p

:各エントリのバイト数

4.2.1

DDR

リーダ  DDR リーダは,表 に示すフィールドから構成される。詳細については,4.2.1.1

4.2.1.9

で規定する。

表 2  DDR リーダの構成

RP(

1

)

フィールド名

長さ

内容

0

レコード長 5

数字

5

情報交換水準 1

数字

6 DDR

リーダ識別子 1

文字

7

インライン文字集合拡張標識

1

文字

8

将来の標準化のために確保

1

間隔文字

9

応用仕様標識 1

文字

10

フィールド制御長 2

数字

12

データの基底アドレス 5

数字

17

省略時文字集合標識 3

文字

20

エントリマップ 4

数字

(

1

) RP

は,相対位置を表す[3.(16)参照]

4.2.1.1

レコード長フィールド  (DDR RP 04)    DDR 全体の長さをバイト数で指定するフィールドとし,

数字で指定しなければならない。レコード長フィールドに値“0”を指定したときは,長さが“99999”よ

り大きいことを意味する。

4.2.1.2

情報交換水準フィールド  (DDR RP 5)    情報交換ファイルの水準を指定するフィールドとし,次

に示す数字で指定しなければならない。

数字“1” :ファイルが第 1 水準ファイルに適合するとき。

数字“2” :ファイルが第 2 水準ファイルに適合するとき。

数字“3” :ファイルが第 3 水準ファイルに適合するとき。

第 1 水準ファイルは,基本文字データフィールド(5.1 参照)を含み,複合データフィールド及び階層構

造は含まない。

第 2 水準ファイルは,複合データフィールド(5.2 参照)を含み,階層構造は含まない。

第 3 水準ファイルは,複合データフィールド及び階層構造を表現するタグ対の並び(4.2.3.1.3 参照)を

含む。

4.2.1.3

DDR

リーダ識別子フィールド  (DDR RP 6)    このレコードが DDR であることを指定するフィー

ルドとし,文字“L”でなければならない。


8

X 0604-1986

4.2.1.4

インライン文字集合拡張標識フィールド (DDR RP 7)   JIS C 6228 で規定される拡張文字集合

を指示するためのインラインエスケープシーケンスが,データフィールド中で使用されるかどうかを指定

するフィールドとし,次に示す文字で指定しなければならない。

間隔文字  :インラインエスケープシーケンスが使用されないとき。

文字“E”  :インラインエスケープシーケンスが使用されるとき。

4.2.1.5

将来の標準化のために確保  (DDR RP 8)    将来の標準化のために確保するフィールドとし,間隔

文字でなければならない。

4.2.1.6

応用仕様標識フィールド  (DDR RP 9)    将来の標準化のために確保するフィールドとし,間隔文

字でなければならない。

4.2.1.7

フィールド制御長フィールド (DDRRP1011)    データ要素の構造と形,システム分離文字を表

す利用者定義の印字可能な図形文字などを指定するフィールド制御フィールドのバイト数を指定するフィ

ールドとし,数字“00”

“03”

“06”又は“09”でなければならない(4.2.3.1.14.3.3.2 及び 6.26.4 参照)

4.2.1.8

データ記述領域の基底アドレスフィールド  (DDR RP 1216)    DDR の先頭のデータ記述フィー

ルドの位置を指定するフィールドとする。

備考  先頭のデータ記述フィールドは,ファイル制御フィールド又はレコード識別子フィールドであ

る。

このフィールドの内容は,数字で,リーダ,ディレクトリ及びディレクトリの終了を示すフィールド分

離文字の合計バイト数に等しくなければならない。

4.2.1.9

省略時文字集合標識フィールド  (DDR RP 1719)    ファイル内で使用する省略時文字集合を指

定するフィールドとし,次に示す値で指定しなければならない(7.参照)

(1) (2/0)

(2/0)

(2/0)

JIS C 6220

のローマ文字用 7 単位符号表で規定される文字集合だけが,ファイルの省略

時値として指示されているとき。

(2) (2/0)

(2/1)

(2/0)

複数の拡張文字集合が,一つ以上のデータフィールドの省略時値として指示されてい

るとき(6.2 参照)

(3) ESC

を除いたエスケープシーケンス  一つの拡張文字集合が,ファイル全体の省略時値として指示さ

れているとき(6.3 参照)

4.2.1.10

エントリマップフィールド (DDR RP 2023)  デイレクトリエントリサブフィールドの長さを

指定するフィールドとし,

表 に示すサブフィールドから構成される(4.2.2 参照)。

このフィールドの各サブフィールドの内容は,1 けたの数字で指定しなければならない。

表 3  DDR のエントリマップの構成

RP

サブフィールド名

長さ

内容

20

フィールド長サブフィールドの長さ

1

数字

21

フィールド位置サブフィールドの長さ

1

数字

22

将来の標準化のために確保 1

数字

23

フィールドタグサブフィールド長さ

1

数字

4.2.1.10.1

フィールド長サブフィールドの長さ  (DDR RP 20)  ディレクトリエントリのフィールド長サブ

フィールドの長さをバイト数で指定するサブフィールドとし,数字“1”∼“9”で指定しなければならな

い。


9

X 0604-1986

4.2.1.10.2

フィールド位置サブフィールドの長さ  (DDR RP 21)  ディレクトリエントリのフィールド位置

サブフィールドの長さをバイト数で指定するサブフィールドとし,数字“1”∼“9”で指定しなければな

らない。

4.2.1.10.3

将来の標準化のために確保  (DDR RP 22)  拡張エントリマップとして将来の標準化のために確

保するサブフィールドとし,数字“0”でなければならない。

4.2.1.10.4

フィールドタグサブフィールドの長さ  (DDR RP 23)  ディレクトリエントリのフィールドタグ

サブフィールドの長さをバイト数で指定するサブフィールドとし,数字“1”∼“7”で指定しなければな

らない。

4.2.2

DDR

ディレクトリ  DDR ディレクトリは,複数個のディレクトリエントリから構成される。ディ

レクトリエントリの各サブフィールドの長さは,DDR リーダ中のエントリマップで指定しなければならな

い。DDR ディレクトリは,各データ記述フィールドに対応して,一つのディレクトリエントリをもち,フ

ィールド分離文字 (1/14) で終わらなければならない。

DDR

には,DR に出現するすべてのタグを定義しておかなければならない。

DDR

のディレクトリエントリは,対応するデータ記述フィールドの位置と長さを指定するものとし,

4

に示すサブフィールドから構成されなければならない。DDR のディレクトリエントリは,データ記述フ

ィールドと 1 対 1 に対応させなければならない。

階層データ構造(4.2.3.1.3 参照)の場合は,DDR のディレクトリエントリは,はん(汎)木の行きがけ

順と同じ順番でなければならない。

表 4  DDR のディレクトリエントリの構成

RP

サブフィールド名

長さ

内容

p

×(i−1)

フィールドタグ

英数字

p

×(i−1)+t

フィールド長

数字

p

×(i−1)+tm

フィールド位置

数字

備考  ptmn

i

=ディレクトリエントリの指標

4.2.2.1

フィールドタグ  このサブフィールドは,データ記述フィールドを識別するフィールドタグから

なり,1∼7 文字の英数字で構成されなければならない。DDR 内では,フィールドタグの重複は許されな

い。

(1)

フィールドタグ“0…0”は,DDR だけに許され,ファイル制御フィールドを識別する。ただし,ファ

イル制御フィールドは任意であり,あってもなくてもよい。

(2)

フィールドタグ“0…1”は,各々のレコードで一度だけ使用され,レコード識別子フィールドを識別

する。

(3)

フィールドタグ“0…2”は,DR 中のデータフィールドと関係しない利用者フィールド(任意)を識

別する。システムは,このフィールドの情報を,利用者にそのまま渡さなければならない。

備考  このフィールドの内容は,利用者によって決定され,ファイル記述の付加的情報(例えば,情

報交換に関連するファイル属性)やファイル処理の補助情報を伝達するために使用する。

(4)

フィールドタグ“0…3”∼“0…9”は,将来の標準化のために確保するものとする。

(5)

タグ“0…0”から“0…9”については,それらが存在する場合は,DDR ディレクトリの最初に,数値

の昇順に現れなければならない。


10

X 0604-1986

4.2.2.2

フィールド長  このサブフィールドは,対応するデータ記述フィールドの長さをバイト数で指定

する。このサブフィールドの値は,先行“0”をもつ右寄せされた整数とする。フィールドの長さは,フィ

ールド分離文字を含む。

4.2.2.3

フィールド位置  このサブフィールドは,DDR のディレクトリエントリによって参照されるデー

タ記述フィールドの先頭バイトの相対位置を指定する。このサブフィールドの値は,先行“0”をもつ右寄

せされた整数であり,

DDR RP 12

∼16 で指定されるデータ記述領域の基底アドレスからの相対位置を示す。

ディレクトリに続く最初のフィールドの先頭バイトの相対位置は,0 とする。

4.2.3

データ記述領域  データ記述領域は,DR 中の同じタグをもつデータフィールドを定義する情報,

及び自動処理のための制御パラメタを含む。これらのデータ記述フィールドは,DDR リーダによって規定

された形式をもたなければならない。

すべてのフィールドは,フィールド分離文字 (1/14) で終わらなければならない。

4.2.3.1

ファイル制御フィールド(タグ“00”)  このデータ記述フィールドは,以下のサブフィール

ドにより構成される(

図 参照)。

(1)

フィールド制御(必要なとき)

(2)

ファイル名(任意)

(3)

順序付けられたタグ対の並び(階層構造レコードの場合だけ記述)

このフィールドは,フィールド分離文字(1/14)で終わらなければならない。

図 3  ファイル制御フィールドの構成

4.2.3.1.1

フィールド制御  このサブフィールドは,第 2 水準,第 3 水準の情報交換ファイルだけに存在

し,その長さはフィールド制御長 (DDR RP 10∼11)  により指定される(4.2.1.7 参照)

。ファイル制御フィ

ールドでは,この制御情報は使用されず“0”又は間隔文字でなければならない(5.2.2 参照)

4.2.3.1.2

ファイル名  このサブフィールドは,フィールド制御サブフィールドに続き,ファイル名を記

述するサブフィールド(任意)とする。ファイル名は,情報交換ファイルの外部記述名を示すものとし,

文字列で指定しなければならない。

4.2.3.1.3

タグ対の並び  タグ対の並びは,階層データ構造を記述する。このサブフィールドは,ファイ

ル名サブフィールドに続き,サブフィールド分離文字(1/15)の後に置かれる。タグ対は,データ構造の根ノ

ードから葉ノードまでの構造の順序によって決定される。これらのタグ対は,任意の順序でよいが,区切

り文字を使用せず連続して配置しなければならない。根ノードのタグは,レコード識別子フィールドのタ

グ“0…1”とする。また,タグ“0…2”∼タグ“0…9”は,構造の表現には関与しない。

備考 DR 中に許される多様な階層データ構造は,ノード間の上位と下位の論理的結合関係を表現し

ているタグ対の並びとデータ木の行きがけ順によって記述される。

DR

のデータ構造は,ノードと部分木の繰返しや削除によってはん木から導出される。はん

木の行きがけ順は,DDR のディレクトリエントリの順番で与えられる(4.2.2 参照)

。DR 中の

導出されたデータ木の実現値の行きがけ順は,DR 中のディレクトリエントリの順で与えられ


11

X 0604-1986

る(4.3.2 参照)

。順序付けられたタグ対の詳細な説明は,

参考 を参照されたい。

4.2.3.2

レコード識別子フィールド(タグ=01)の記述  データ記述領域は,DR のレコード識別子フ

ィールドを記述するデータ記述フィールドを含まなければならない。このデータ記述フィールドは,4.3.3

と 5.で規定する利用者データフィールドの記述に関する規定に従って記述しなければならない。

4.2.3.3

利用者データフィールドの記述  データ記述領域は,各利用者データフィールドに対するデータ

記述フィールドを含まなければならない。これらのデータ記述フィールドは,5.で規定する。

4.3

データレコード (DR)   DR は,表 に示す領域と分離文字により構成される。

表 5  DR の構成

領域名

長さ

DR

リーダ 24

DR

ディレクトリ

k'

×p'

フィールド分離文字

1

利用者データ領域

可変長

フィールド分離文字

1

備考  k':ディレクトリエントリの数 

p'

:各エントリのバイト数

情報交換ファイルが,同一の DR リーダと DR ディレクトリの値をもつ固定長データフィールドだけか

ら構成される連続する固定長レコードを含む場合には,この一連の固定長レコードに対して,先頭の DR

のリーダとディレクトリを,後続の DR にも適用可能であり,後続の DR のリーダとディレクトリは,省

略することができる(4.3.1.3 参照)

4.3.1

DR

リーダ  各々の DR リーダは,表 に示すフィールドから構成される。詳細については,4.3.1.1

4.3.1.7 で規定する。

表 6  DR リーダの構成

RP

フィールド名

長さ

内容

0

レコード長 5

数字

5

将来の標準化のために確保

1

間隔文字

6 DR

リーダ識別子 1

文字

7

将来の標準化のために確保

5

間隔文字

12

データの基底アドレス 5

数字

17

将来の標準化のために確保

3

間隔文字

20

エントリマップ 4

数字

4.3.1.1

レコード長フィールド (DR RP 04)    DR 全体の長さをバイト数で指定するフィールドとし,

数字で指定しなければならない。

“0”を指定したときは,長さが“99999”より大きいことを意味する。

4.3.1.2

将来の標準化のために確保 (DR RP 5)   将来の標準化のために確保するフィールドとし,間隔

文字でなければならない。

4.3.1.3

DR

リーダ識別子フィールド (DR RP 6)   このレコードが,DR であることの識別及び後続する

DR

リーダとディレクトリの繰返し特性を指定するフィールドとし,次に示す文字で指定しなければなら

ない。

文字“D” :後続の DR 中にもリーダとディレクトリが存在する。

文字“R”  :後続の DR 中には,リーダとディレクトリが存在せず,この DR リーダとディレクトリ

を,後続する DR に適用する。


12

X 0604-1986

4.3.1.4

将来の標準化のために確保  (DR RP 711)    将来の標準化のために確保するフィールドとし,間

隔文字でなければならない。

4.3.1.5

利用者データ領域の基底アドレスフィールド (DR RP 1216)    DR の先頭の利用者データフィ

ールドの位置を指定するフィールドとする。

備考  先頭の利用者データフィールドは,レコード識別子のフィールドである。

4.3.1.6

将来の標準化のために確保 (DR RP 1719)    将来の標準化のために確保するフィールドとし,

間隔文字でなければならない。

4.3.1.7

エントリマップフィールド (DR RP 2023)    DR のディレクトリエントリサブフィールドの長

さを指定するフィールドとし,

表 に示すサブフィールドから構成される。

このフィールドの各サブフィールドの内容は,1 けたの数字で指定しなければならない。

表 7  DR のエントリマップの構成

RP

サブフィールド名

長さ

内容

20

フィールド長サブフィールドの長さ

1

数字

21

フィールド位置サブフィールドの長さ

1

数字

22

将来の標準化のために確保 1

数字

23

フィールドタグサブフィールドの長さ

1

数字

4.3.1.7.1

フィールド長サブフィールドの長さ  (DR RP 20)    ディレクトリエントリのフィールド長サブ

フィールドの長さをバイト数で指定するサブフィールドとし,数字“1”∼“9”で指定しなければならな

い。

4.3.1.7.2

フィールド位置サブフィールドの長さ  (DR RP 21)    ディレクトリエントリのフィールド位置

サブフィールドの長さをバイト数で指定するサブフィールドとし,数字“1”∼“9”で指定しなければな

らない。

4.3.1.7.3

将来の標準化のために確保  (DR RP 22)    将来の標準化のために確保するサブフィールドとし,

数字“0”でなければならない。

4.3.1.7.4

フィールドタグサブフィールドの長さ  (DR RP 23)    ディレクトリエントリのフィールドタグ

サブフィールドの長さをバイト数で指定するサブフィールドとし,数字“1”∼“7”で指定しなければな

らない。このサブフィールドの値は,DDR のフィールドタグサブフィールドの長さの値と同じとする。

4.3.2

DR

ディレクトリ  DR ディレクトリは,複数個のディレクトリエントリから構成される。ディレ

クトリエントリの各サブフィールドの長さは,DR リーダ中のエントリマップで指定しなければならない。

DR

ディレクトリは,各利用者データフィールドに対応して,一つの DR ディレクトリエントリをもち,

フィールド分離文字 (1/14) で終わらなければならない。DR に出現するすべてのタグは,DDR 中で定義さ

れていなければならない。

DR

のディレクトリエントリは,対応する利用者データフィールドの位置と長さを指定し,

表 に示す

サブフィールドから構成されなければならない。DR のディレクトリエントリは,利用者データフィール

ドと 1 対 1 に対応させなければならない。

タグ“0…1”以外のタグは,DR ディレクトリ中で反復可能とする。階層データ構造でない場合,反復

するタグは,DR ディレクトリ中で論理的に連続しており,DDR のタグと同じ順番でなければならない。

欠落している利用者データフィールドに対応するタグは,構造を記述するのに必要でなければ,DR ディ

レクトリから削除してもよい。階層データ構造(4.2.3.1.3 参照)の場合,DR のディレクトリエントリは,

その DR から作成されるデータ木に対応するデータフィールドの行きがけ順と同じ順番となっていなけれ


13

X 0604-1986

ばならない。

表 8  DR のディレクトリエントリの構成

RP

サブフィールド名

長さ

内容

p'

×(i−1)

フィールドタグ

英数字

p'

×(i−1)+t

フィールド長

m' 

数字

p'

×(i−1)+tm'

フィールド位置

n' 

数字

備考  p'tm'n'

  i

=ディレクトリエントリの指標

4.3.2.1

フィールドタグ  このサブフィールドは,利用者データフィールドを示すフィールドタグからな

り,1∼7 文字の英数字で構成されなければならない。

フィールドタグ“0…1”は,レコード識別子フィールドを識別するタグとし,各 DR で一度だけ現れ,

DR

ディレクトリの先頭に配置されなければならない。

4.3.2.2

フィールド長  このサブフィールドは,対応するデータフィールドの長さをバイト数で指定する。

このサブフィールドの値は,先行“0”をもつ右寄せされた整数とする。フィールドの長さは,フィールド

分離文字を含む。

4.3.2.3

フィールド位置  このサブフィールドは,DR のディレクトリエントリによって参照されるデー

タフィールドの先頭バイトの相対位置を指定する。このサブフィールドの値は,先行“0”をもつ右寄せさ

れた整数とし,DR RP 12∼16 で指定されるデータ記述領域の基底アドレスからの相対位置を示す。ディレ

クトリに続く最初のフィールドの先頭バイトの相対位置は,0 とする。

4.3.3

利用者データ領域  利用者データ領域のデータフィールドは,情報交換される利用者情報を含む。

各データフィールドは,対応するフィールドタグをもつ DDR データ記述フィールドによって定義される

データ構造と形をもつ実現値とする。

サブフィールドは,対応する DDR サブフィールドに含まれるラベルに対応するデータ要素を含む。各

フィールドは,フィールド分離文字 (1/14) で終わらなければならない。区切り構造のデータにおいて,サ

ブフィールド区切り文字が (1/15) である場合,欠落したデータ要素は,連続する区切り文字で表現しなけ

ればならない。フィールドの最後に現れる連続したサブフィールド区切り文字の列は,1 個のフィールド

分離文字 (1/14) で置き換えてもよい。フィールド長,書式,利用者定義区切り文字又はフィールド分離文

字で終端が決められる文字データフィールドは,サブフィールド分離文字を含んでもよい。この場合,シ

ステムは,サブフィールド分離文字を利用者データの文字として扱わなければならない。利用者データの

記述の詳細については,5.で規定する。

4.3.3.1

レコード識別子フィールド(タグ“01”)  各 DR は,ただ一つのレコード識別子フィールド

を含む。DR のレコード識別子フィールドの内容は,対応する DDR のデータ記述フィールドの記述に適合

していなければならず,ファイル内で一意のものでなければならない。各レコード識別子フィールドは,

英数字の場合は,左寄せにし右側を間隔文字で,数字の場合は,右寄せにし左側を“0”で充てんしなけれ

ばならない。

備考  レコード識別子の一意性についての詳細は,“参考 の 3.”を参照のこと。

4.3.3.2

利用者データフィールド

4.3.3.2.1

基本文字データフィールド  DR の利用者データフィールドは,適当なフィールド分離文字で終

わる単一の文字列からなるものでなければならない(

表 12 参照)。この構造と形の利用者データフィール

ドだけから構成される情報交換ファイルは,DDR リーダ中に,

表 に示す制御文字を指定しなければなら

ない。


14

X 0604-1986

表 9  DDR リーダ

リーダフィールド

RP

文字

応用仕様標識 9

間隔文字

フィールド制御長 10∼11

“00”又は“03”

DDR

リーダの残りのフィールドは,4.2.1 で規定する。

4.3.3.2.2

複合データフィールド  DR の利用者データフィールドは,対応する DDR のデータ記述フィー

ルドの指定に適合する文字,区切り文字又はビット列でなければならない(5.2 参照)

。これらの構造のフ

ィールドだけで構成される情報交換ファイルは,DDR リーダ中に,

表 10 に示す制御文字を指定しなけれ

ばならない。

表 10  DDR リーダ

リーダフィールド

RP

文字

応用仕様標識 9

間隔文字

フィールド制御長 10∼11

“06”又は“09”

DDR

リーダの残りのフィールドは,4.2.1 で規定する。

5.

利用者データの形と構造の記述

5.1

基本文字データフィールドの記述  基本文字列からなる利用者データの記述方法は,5.1.1 による。

5.1.1

データ記述フィールド  基本文字データフィールドのデータ述記フィールドには,利用者データフ

ィールドの名前を構成する基本文字列だけを記述する(

図 参照)。

5.2

複合データフィールドの記述  5.1 で規定するものより複雑なデータ構造とデータ形の記述方法を

次に規定する。ここで規定するデータ構造は,文字列,暗黙小数点,明示小数点,明示小数点指数,文字

モードビット列,ビットフィールド及び混合データ形を含む基本,ベクトル及び配列の構造とする。デー

タ記述フィールドには,5.2.15.2.4 及び 6.1 で規定する制御情報,区切り文字,フィールド名,ベクトル

と配列に対するサブフィールドラベル及びデータフィールド書式情報を記述する。

5.2.1

データ記述フィールド  複合データフィールドのデータ記述フィールドには,フィールド制御フィ

ールド,データフィールド名,データ要素ラベル及びデータ書式を記述する。これらを

図 に示す。許容

されるデータ構造と形に対するフィールド制御,フィールド名,ラベル及び書式制御は,

表 12 及び表 13

のとおりとする。

表 12 は,区切り文字の使用法を規定し,表 13 は,データ記述フィールドの書式を規定

する。データ記述フィールドで記述できるデータ形は,

表 11 のとおりとする。

表 11  データ記述フィールドで記述できるデータ形

内容

文字

文字列

暗黙小数点

暗黙小数点数値表現による数値

明示小数点

指数なし明示小数点数値表現による数値

明示小数点指数

指数付き明示小数点数値表現による数値

文字モードビット列

数字“0”及び“1”の列

ビットフィールド

2

進数字の列

混合データ形

上記のデータ形を一つ以上含むもの


15

X 0604-1986

図 4  情報交換水準 のデータ記述領域


16

X 0604-1986

表 12  区切り文字とその使用目的

情報分離文字

印字記号

レコード

使用目的

IS

2

 (1/14) (

2

)

; DDR,DR

フィールド分離文字 (FT)

IS

1

 (1/15) (

2

) &

サブフィールド分離文字 (UT)

DR

書式で指定されないデータフ

ィールド中のサブフィールド
を区切る

DDR

ベクトルラベル及び直積ラベ

ルの前後を区切る

DDR

フィールド“0…0”中のタグ対
の並びの前を区切る

DDR

書式制御の前を区切る

! (2/1)

! DDR

ベクトルラベル中のデータ要
素ラベルを区切る

* (2/10)

*

DDR

直積ラベル中のベクトルラベ
ルを区切る

(

2

)

これらの情報分離文字を印字できない印刷装置がある。この規格では,
読みやすさのために分離文字の標準的図形表現として印字記号欄の記
号を使用する。

表 13  複合データフィールド記述子

データ構造/データ形

フィールド制御

 (RP)

0

  1  23  45

フィールド名/ラベル/書式制御(

3

)

文字

0

0

00

暗黙小数点

0

1

00

明示小数点

0

2

00

明示小数点指数

0

3

00

文字モードビット列

0

4

00

‘フィールド名’

基本

ビットフィールド  0

5

00

‘フィールド名’

]&‘書式制御’

文字

1

0

00

暗黙小数点

1

1

00

明示小数点

1

2

00

明示小数点指数

1

3

00

文字モードビット列

1

4

00

フィールド名’

]&[

ベクトルラベル’

]&[

書式制御’

ビットフィールド  1

5

00

ベクトル

混合データ形

1

6

00

;&(

4

)

フィールド名’

]&[

ベクトルラベル’

]&

書式制御’


17

X 0604-1986

文字

2

0

00

暗黙小数点

2

1

00

明示小数点

2

2

00

明示小数点指数

2

3

00

文字モードビット列

2

4

00

‘フィールド名’

]&[

‘直積ラベル’

]&[

‘書式制御’

又は

‘フィールド名’

]&[

‘配列記述子’

]&[

‘書式制御’

ビットフィールド  2

5

00

配列

混合データ形

2

6

00

‘フィールド名’

]&[

‘直積ラベル’

]&‘書式制御’

又は 

‘フィールド名’

]&[

‘配列記述子’

]&‘書式制御’

(

3

)

データフィールド記述は,いずれのサブフィールドの後でも(1/14)で終結させることができる。 

(

4

)  5.2.2

参照。

表 13 の構文規則は,次のとおりとする。

(1)  [

  ]  は,フィールドが任意であることを意味する。

(2)

‘フィールド名’は,フィールド全体を識別する文字列を意味する。

(3)

‘ベクトルラベル’は,データレコード中のサブフィールド群に対応するデータ要素ラベル群を意味

し,次の形式をとる。

ラベル 1!ラベル 2!…

(4)

‘直積ラベル’は,データレコード中のサブフィールド群に対応する順序をもつ直積形式のベクトル

ラベルからなるラベル群を意味し,次の形式をとる。

ラベル 1!ラベル 2!…*ラベル a!ラベル b!…*…

(5)

‘書式制御’は,データフィールドの書式を定義する文字列を意味する。

フィールド名,ラベル及び書式のうち,ある項目を使用しない場合は,その項目がないことを示すため

に,区切り文字を続けて記述しなければならない。

5.2.2

フィールド制御  フィールド制御には,4 けたの数字と,その後に二つのシステム分離文字 (1/14)

と (1/15) を表す利用者定義の印字用図形文字を,この順序で RP0∼5 に指定する。RP0∼1 には,構造と

形を指定する。RP2∼3 は,将来の標準化のために確保された場所とし,値は“00”とする。

備考  利用者は,データフィールドに出現しない文字の中から,二つの印字用図形文字を選択できる。

これらの図形文字は,データフィールド中で情報分離文字(

表 12 参照)に置き換えられるので

はなく,送り手,受け手の表示のしやすさのために使用されるものである。印字用図形文字を

指定しない場合は,間隔文字 (2/0) を指定しなければならない。

5.2.3

フィールド名,ラベル及び書式制御  フィールド名,ラベル及び書式制御の使用法は,5.2.3.1

5.2.3.3

による。

5.2.3.1

フィールド名  データフィールドとその内容に対する名前。6.1 で規定する省略時文字集合の文

字をフィールド名に使用できる。


18

X 0604-1986

5.2.3.2

ラベル  データフィールドのサブフィールドに対する名前。サブフィールドがベクトルのデータ

要素である場合,ラベルは,ベクトルラベルの形式でなければならない。サブフィールドが配列のデータ

要素である場合,ラベルは直積ラベルの形式でなければならない。直積ラベルは,規定された規則によっ

て展開されると,データ配列に対応するラベルの配列になる。直積ラベルのベクトルラベル群は,配列の

行と列の見出しを与える。

直積ラベルの第 1 ベクトルラベルは,

“行”の名前がない 2 次元(又はより多次元)の配列の記述を許す

ために空であってもよい。空である第 1 ベクトルラベルは,二つの続いた分離文字“(1/15) (2/10)”で示す。

この構造を使用するときは,配列のデータ要素は,行優先で配置しなければならない。ベクトルラベル中

のデータ要素ラベルは,空であってもよいが,その場合,空であることを示すための分離文字がなければ

ならない(5.2.4 参照)

ラベルには,6.1 で規定する省略時文字集合の文字を使用してもよい。

“!”と“*”は,ベクトルラベルを区切るのに用いる特別の図形文字とする。したがって,ベクトルラ

ベルサブフィールド中のデータ要素の名前に,これらの図形文字が現れてはならない。

5.2.3.3

書式制御  書式制御は,データフィールドの 1 文字ごとの,又は 1 ビットごとの構造を指定する。

書式制御は,ビットフィールドデータと混合データにはひっす(須)とする。その他のデータ形には任意

とし,書式制御がないときは,区切り構造のフィールドとみなされる。書式制御は,複合データフィール

ドのサブフィールドの順序と形を指定したり,

区切り構造でないフィールドのフィールド長を指定したり,

利用者定義区切り文字を指定したりするのに必要となる。書式制御は,サブフィールド分離文字(1/15)で,

また,最後のサブフィールドの場合は,フィールド分離文字 (1/14) で区切られ,次の形式をとらなければ

ならない。

({Y|mY|k (mY

,…),…},…)

ここで,それぞれは,次の意味をもつ。

Y

  Z|Z (*) |Z (n)

 A

文字

 I

暗黙小数点

 R

明示小数点

Z S

明示小数点指数

 C

文字モードビット列

 B

ビットフィールド

 X

未使用文字位置(未使用文字位置の内容は意味のないものであり,情報交換の際は無視される。

{

  }

中括弧で囲まれた表現が繰返し  及び  入れ子で出現してもよいことを意味する。

いずれか一つを選択することを意味する。

(*)

及び (n)  フィールド長指定

*

任意の利用者定義区切り文字

n

フィールド長を指定する正整数(6.5 参照)

m

,k

繰返し因数,それぞれ後続するデータ形又はデータ形群が繰り返される回数を指定する

正整数。1 の場合は省略してもよい。

先行する表現が繰り返されることを意味する。

書式制御の使用法の規則は,次のとおりとする。


19

X 0604-1986

(1)

書式制御で指定されるフィールドの順序と形は,書式制御が左から右に,入れ子の項目は左から展開

されて,データフィールドに対応づけられる。データフィールドが余分に残ったとき,書式制御は,

フィールド長を指定するのに使用されている括弧は除き,最後から一つ前の右括弧に対応する左括弧

から繰返し因数に従って繰り返される。もしそのような右括弧がない場合は,書式制御は,書式の指

定の最初の左括弧から繰り返される。

(2)  Z

  DR フィールドがサブフィールド分離文字 (1/15) 又は最後のサブフィールドの場合は,フィール

ド分離文字 (1/14) で区切られていることを意味する。

(3) (*)

対応するデータサブフィールドの利用者定義区切り文字として文字*が現れることを意味する。*

は,任意の文字とする。データフィールドの最後のサブフィールドの区切り文字は,フィールド分離

文字(1/14)に置き換えられる。利用者定義区切り文字は,6.1 に規定する省略時文字集合の文字で指定

してよい。

(4)  I

形,R 形又は S 形のデータフィールドでは,数値は JIS C 6322 で規定された形式で表現されなけれ

ばならない。R 形のフィールドには,S 形の数値形式を含むことができる。

(5)

文字モードビット列データフィールド(C 形)は,表現するビット列の数字に対応して文字“0”又は

“1”を並べたものとしてビット列を定義する。

(6)

固定長ビットフィールド(フィールド長指定のある B 形)は,フィールド長をビット数で指定した書

式で記述しなければならない。固定長ビットデータをもつベクトル又は配列では,各サブフィールド

は,先行するサブフィールドにすぐ続いているものとする。一つの固定長ビットフィールド若しくは

サブフィールド,又は連続した固定長ビットフィールド若しくはサブフィールドの最後のバイトの右

端は,2 進数字 0 で充てんする。フィールドは,適当なフィールド分離文字で終える。連続した固定

長ビットフィールドの最初は,バイト境界から始まり,左括弧の書式の暗黙の繰返しがあってはなら

ない。

(7)

可変長ビットフィールド(フィールド長指定のない B 形)では,データフィールドは,

図 に示す形

式でなければならない。

図 5  可変長ビットフィールド(フィールド長指定のない 形)

フィールド長けた数は,ビットフィールド長の 10 進数字の個数を指定する 1 けたの数字とする。ビ

ットフィールド長は,一連の 10 進数字であり,ビットフィールドの長さをビット数で指定する。可変

長ビットフィールドは,バイト境界から始まらなければならない。

備考  複数の可変長ビットフィールド(ベクトル又は配列)は,適当な書式を使って指定できる。ま

た,可変長ビットフィールドは,混合データ形フィールドでも使用することができる。

5.2.4

ベクトル及び配列の要素数  ベクトルの要素数は,ラベル,書式制御の適用又は区切り文字の使用

で指定する。配列の次元及び各次元の要素数は,直積ラベルで指定する。直積ラベルは,数字及びコンマ

だけをもつ一つの要素からなる一つのベクトルラベルで構成してはならない。

備考  配列が,すべてのデータレコードで固定の次元数と各次元の要素数をもち,直積ラベルを必要


20

X 0604-1986

としない場合は,直積ラベルの代わりに配列記述子を使用してもよい。

配列記述子は,配列の次元数,各次元の要素数を,この順序でコンマで区切って指定する。

直積ラベル又は配列記述子がない場合は,DR データフィールドの前に配列の次元数を示す正整数,及

び各次元の要素数を示す一連の正整数がなければならない。配列の記述の各要素は,(1/15)  で区切る。配

列の順序は,行優先とする。

6.

拡張文字集合

6.1

文字集合の使用  この規格は,DDR,DR のすべてのリーダ,ディレクトリエントリ及びシステム分

離文字,並びに DDR のデータ記述領域(フィールド名,ラベル及び利用者定義区切り文字を除く。

)の指

定に,JIS C 6220 のローマ文字用 7 単位符号表で規定される文字集合を,7 単位系又は 8 単位系で使用す

る。

備考  国際間で情報交換を行う場合は,JIS C 6220 のローマ文字用 7 単位符号表の代わりに ISO 646

で規定されている IRV 符号表を適用する。この場合,(2/4)“ドル記号”と (5/12)“円記号”は,

IRV

符号表と一致していないので注意すること。

なお,DR の利用者データフィールド並びに DDR のデータ記述領域内のフィールド名,ラベル及び利用

者定義区切り文字には,拡張文字集合の使用を許すが,文字集合の拡張方法は,この規格で規定する事項

以外は,JIS C 6228

の規定に従うものとする。省略時文字集合として拡張文字集合を使用する場

合は,ISO 国際登録簿に登録されている,3 けた又は 4 けたのエスケープシーケンスをもつ拡張文字集合

に限定する。ただし,インラインエスケープシーケンスを使用して拡張文字集合を使用する場合は,エス

ケープシーケンスのけた数に制限されることなく,ISO 国際登録簿に登録されている任意の文字集合を使

用できる。

備考1.  利用者データフィールドの中では,C0,C1,G0,G1,G2及び G3の文字集合を使用できる。

2.

ISO

国際登録簿に登録されている複数バイト文字集合も拡張文字集合の一つとして使用で

きる。

3.

JIS C 6228

で規定されるアナウンスシーケンス指定は,外部記述として与えることとし,こ

の規格のファイル中には,記述されない。

4.

ロッキングシフトの省略時値は,7 単位系では“SI”を,8 単位系では“LSO”とする。

省略時拡張文字集合は,次に規定するとおり,

各フィールドごと又はファイル全体に対して指示できる。

6.2

フィールドに対する省略時文字集合の指示  各フィールドごとに 文字のエスケープシーケンスを

もつ省略時文字集合を指示するには,DDR RP17∼19 に (2/0) (2/1) (2/0) を記述し,フィールド制御の長さ

を 3 だけ増やす。DDR フィールド制御の最後の 3 個の文字には,対応するデータフィールドへの拡張文字

集合を指示するエスケープシーケンスの最後の  (n−1)  個の文字を記述する。ここで,は 4 以下とする。

これらの文字は,左寄せとし,必要ならばフィールドの右側を (2/0) で充てんする。

6.3

ファイルに対する省略時文字集合の指示  ファイル全体に 文字のエスケープシーケンスをもつ省

略時文字集合を指示するには,DDR RP 17∼19 にエスケープシーケンスの最後の  (n−1)  個の文字を記述

する。ここで,は 4 以下とする。これらの文字は,左寄せとし,必要ならばフィールドの右側を (2/0) で

充てんする。

6.4

拡張文字集合の指示の有効範囲  拡張文字集合の指示の有効範囲は,次のとおりとする。

(1)

拡張文字集合を利用者データフィールドで使用する場合は,各レコードの各フィールドは,フィール

ド制御又は DDR RP 17∼19 で指示される拡張文字集合の文字で始まらなければならない。利用者デー


21

X 0604-1986

タフィールドに他のエスケープシーケンス(インラインエスケープシーケンス)を使用する場合,そ

の有効範囲は,そのフィールドの終わりまでとする。

(2)

フィールド名,ラベル及び利用者定義区切り文字に拡張文字集合を使用する場合,DDR RP 17∼19 に

指定された拡張文字集合の文字で始まらなければならない。インラインエスケープシーケンスを使用

する場合,その有効範囲は,そのサブフィールドの終わりまでとし,利用者定義区切り文字の場合は,

該当する書式の括弧の中だけとする。

備考  ベクトルラベル及び直積ラベルの区切り文字 (2/1) 及び (2/10) には,拡張文字集合中の同一図

形文字を使用できる。

6.5

拡張文字集合使用時のフィールド長  エスケープシーケンス,シフトイン,シフトアウト,又はそ

の他の制御文字を必要とする拡張文字集合を使用する場合,サブフィールドの書式は,利用者定義区切り

文字を使用して指定することとし(5.2.1 及び 5.2.3.3 参照)

,固定長の書式は使用してはならない。


22

X 0604-1986

参考 1  適用上の指針

1.

情報交換用データ構造への写像  この規格を適用するためには,利用者システムの処理用データ構造

を,情報交換用データ構造に写像する必要がある。

この規格で規定する情報交換用データ構造は,順序木(階層)構造として位置付けられる。単一の繰返

しのない構造の場合,情報交換用データ構造は,単一の理論レコードで実現できるが,一般的な処理用デ

ータ構造を木構造の集合に写像する場合が問題となる。大部分の場合,この写像は,構造に関する情報を

失うことなく直接的に行えるが,ポインタによりリンクされているデータ構造の場合,元のデータ構造を

再構成可能とするため,値によるリンクに変換しておくか,情報交換用データ構造に写像できるような等

価で単純な形式に変換しておく必要がある。

この規格で要求される機械可読なデータ記述レコードは,送り手のデータ辞書,論理スキーマ又は他の

自動化されたデータ記述から自動的に作成できる。

写像処理は,元のシステムの実現技術に強く依存するため,ここでは,それをどのように実現するかで

なく,どのようなことが可能かについて示す。

次に示すデータ構造を情報交換用データ構造に写像する方法を以下に示す。

(1)

順構造

(2)

関係構造

(3)

階層構造

(4)

網構造

(5)

索引

1.1

順構造  順構造は,基本フィールドの繰返しにより構成される。利用者システムの処理用データ構

造のフィールドは,情報交換の目的により,基本フィールド群又は構造化されたフィールド群の集合に写

像できる。繰返しの多い固定書式データは,記憶領域オーバヘッドの増加を抑えるため,1 個の配列に行

優先で配置すべきである。書式は対応するデータフィールドがなくなるまで,左括弧の直後に戻って繰り

返し使用されるため,この効果が得られる。同様に直積ラベルにより,行優先で配置されたデータに対す

る記述が可能である。再構成機能は,入力ルーチンの一部として容易に作成可能である。

情報交換水準 1 のシステムでも,フィールドの自動処理はできなくても,より高水準な構造のデータを

フィールドレベルで受け取り,表示することは可能である。基本ファイルと幾つかの典拠ファイルという

ような複数のデータファイルは,複数のデータ記述ファイルに写像することができる。ファイル名とフィ

ールド名は,DDR の対応するフィールドに記述できる。

1.2

関係構造  関係構造(又は平たんな表)は,1 個の タプル(個のデータの組)を複数フィールド

をもつ 1 個の論理レコード,又は 1 個のベクトル構造のフィールドをもつ 1 個の論理レコードに対応付け

ることにより,情報交換用データ構造に写像することができる。数個のリレーションは,数個のデータ記

述ファイルに写像できる。リレーション名とドメイン名は,DDR の適切なフィールドに記述できる。また,

数個の正規形のリレーションを 1 個の階層構造に再構成し転送することもできる。


23

X 0604-1986

1.3

階層構造  1 個の階層構造は,概念的には,1 個の論理レコードと適切な階層的記述を用い,情報交

換用データ構造に写像することができる。しかし,実際的には,多くのデータ項目をもつ構造の場合,送

り手と受け手の双方で,処理上の問題が生じる。このような場合のより現実的な解は,各ノード又は適切

な大きさの木構造を構成しているノードの集合を,1 個の論理レコードに写像する方法である。この方法

では,破壊されたリンケージは,後で再構成に使用するため,値によるリンクを内容とするフィールドで

置き換えなければならない。このデータフィールドには,以前に各ノードでリンク付けされていた論理レ

コードの一意識別子の並びを設定しておく。そのデータフィールドには,上位ノード又は下位ノードを設

定できる。このようなデータフィールドを複数存在させることにより,異なったデータベースの属性に基

づく複数のリンク種別を保持できる。木の集合は,この規格の方法で,1 個の論理レコードとして転送す

ることができる。

また,2 分木を生成したい場合は,DDR 中のタグ対の並び,行きがけ順,及び

参考 に示す処理アルゴ

リズムを用いて実現できる。

1.4

網構造  網形データベースは,関係形に分解し,リレーションの集合として転送できる。関係レコ

ードを含むレコード形は,リレーションとしてデータ記述ファイルに記述でき,転送される。

有向グラフとみなされる記憶構造は,階層的形式で記述すると,非常に複雑となるため,いったん,分

解した後,リンク情報と論理レコード(ノード)識別子を用い再構成する方法がとられる。再構成方法は,

階層構造に対して用いた方法と同一原理であるが,閉じたパスを検出し,処理する必要がある。

1.5

索引  索引(チェインなどを含む。)は,データベースに対する構造化された情報であり,実現方法

に強く依存しているため,通常,直接的には転送できない。しかし,システムに依存したポインタは,論

理レコード識別子で置換することで,論理的に等価となる。データベースの属性に対する索引は,その属

性の値の実現値と,その属性の値をもつ論理レコード(又はノード)の一意識別子の並びを,論理レコー

ドにもつデータ記述ファイルへ写像可能である。この方法により,索引を記述し,情報交換することがで

きる。

2.

特殊な適用への指針  情報交換性を最大限に保つため,応用仕様の設定に当たっては,リーダ,ディ

レクトリ及び他の制御機能については,この規格の仕様に準拠しなければならず,仕様の変更は,データ

フィールドの書式に限定しなければならない。

文字集合及び応用分野特有なデータフィールドの内容と構造については,特殊な適用が予想される。こ

こでは,これらについての指針を示す。

2.1

文字集合  文字集合を JIS C 6220 のローマ文字用 7 単位符号から拡張するときは,JIS C 6228 に準

拠しなければならない。JIS C 6228 に準拠することにより,文字集合拡張の共通的な処理アルゴリズムが

保証される。

2.2

応用仕様システム  この規格が許容する応用仕様の設定は,基本的には,現存する標準的応用シス

テムが,この規格に適合できるようにするためである。新たな応用仕様を設定する場合は,情報交換性の

広範な基盤を確立するため,この規格の規定に従うべきである。

応用仕様システムは,各データフィールドに対し,文書などにより完全な外部記述を与えるか,又はこ

の規格の幾つかのデータ形を使用することができる。いずれの場合も,DDR の RP9 に JIS C 6220 のロー

マ文字用 7 単位符号表の 4∼7 欄から選択した制御文字を記述することにより,特殊な処理が必要であるこ

とを表示しなければならない。この措置をとっておけば,将来,この規格が拡張されても,情報交換当事

者間の合意事項が無効になることはない。


24

X 0604-1986

2.3

利用者環境の制限  この規格は,一般的な情報交換への適用を目的に作成されており,特定の利用

者グループにとっては,必要性のないような複雑な情報交換機能も含まれている。

情報交換する利用者グループの範囲が明確であれば,この規格の適用に際し,上方向互換性が保たれる

ような方法で制限を設けることができる。これにより,完全な機能を実現している利用者での処理が保証

でき,制限を設けた利用者グループ内での処理も簡易化できる。

しかし,このような制限を設けることにより,利用者は,制限を設けていない送り手から提供される情

報交換用ファイルを受け取る能力が低下することに注意しなければならない。この場合,情報交換頻度が

低いときは,制限されたソフトウェアの利用者は,ファイルを入力し,複数のデータフィールドを含んだ

レコードをもつ出力ファイルをいったん作成した後,応用仕様ソフトウェアにより,データフィールドご

とに正当に処理することができる。

上方向互換性を失う制限を設けなければならない場合,応用仕様標識  (DDR RP 9)  に,私的な合意シス

テムであることを表示しなければならない。利用者が制限されたシステムに関する補助情報を転送したい

場合,DDR のタグ“0…2”に対応するフィールドを使用しなければならない。このフィールドには,DDR

と同様の目的をもたすことができ,制限の識別情報を含む情報を設定することができる。

制限には,計算機の大きさ及び計算機言語に基づくものが考えられる。以下,これらの領域において有

効な制限を設定するための指針と,制限された情報交換に,この規格がどのように使用できるかを示す。

2.3.1

小形計算機に起因する制限  この規格は,ディレクトリ,データ記述フィールド,データフィール

ドを並列的に,また,各フィールド内は,順次走査できるように考慮されており,情報処理に必要な一時

メモリ量を削減できる。

ファイルの最大ブロック長と最大レコード長は,ファイルラベルの当該フィールドから得ることができ

る。各論理レコード長は,レコードの制御語から得ることができ,フィールド長は,各論理レコードのデ

ィレクトリにより与えられる。

これらの情報が利用できないときは,情報交換当事者間の合意により,次のことが可能である。

(1)

最大フィールド長及び最大サブフィールド長を簡単に伝えるため,データフィールドは,すべて書式

指定のものに制限し,全体の書式の繰返し(最左端の括弧からの繰返し)機能は使用しない。DDR の

書式を走査する過程で,最大サブフィールド長,最大フィールド長及びベクトルと配列の最大次元数

を決定できる。

(2)

区切り文字により区切られる可変長フィールドに対しては,利用者予約フィールド“0…2”を使用し

て,解析時に最大フィールド長と次元数を得ることができるような形式で最大フィールド長の集合を

与えることができる。これらの情報は,DDR と同様のアルゴリズムで処理できるように関連するフィ

ールドをもつサブディレクトリとして構成するとよい。

(3)

直積ラベルを配列記述子で置き換えることで,配列の最大次元数を得ることができる。

サブ DDR 中の“0…1”フィールドを,制限された利用者グループの識別に使用することが望ましい。

このフィールドは,データの処理に先立ち,検査しなければならない。

2.3.2

言語に起因する制限  特定の高水準言語へのインタフェースを簡易に実現したい利用者に対して

は,私的な合意による次の制限は有用と考えられる。

(1)

データの構造と形  この規格で使用できるデータの構造と形を,検討中の高水準言語で扱える範囲に

制限する(例えば,FORTRAN インタフェースでは,基本データ,ベクトル,配列及び固定長のサブ

フィールドに制限する。

(2)

フィールド名とタグ  これらを,検討中の高水準言語で扱える文字列に制限する。これらの文字列の


25

X 0604-1986

連結処理が,その言語で可能なら,階層的な名前の生成に使用できる。

3.

一意識別子  関係データモデルの主キーのように,特定フィールドの値又は複数フィールドの組合せ

により,その目的が達成される場合があり,データレコードに一意識別子を必要としない場合がある。し

かし,1 個の論理レコードは,データベースの中で意に識別できるある個体と結び付けられるすべての情

報を表現できる。1 個の一意な識別フィールドは,後で更新が行われる場合,特に有効である。任意な識

別情報を付与する場合は,順次の整数で十分な場合が多い。ある場合には,データフィールドが,自然に

この目的を果たし,使用されるときがある。可能なら,非構造的な基本データフィールドが望ましいが,2

個の要素をもつベクトルのような構造的フィールドを使用することもできる。このことは,他のデータフ

ィールドに,そのファイル内の他のレコードや,他のファイルのレコードの個体との関連を記述する情報

をもつことを妨げるものではない。

エラー箇所の検出,修正,情報交換ファイルの内容の理解,又は受け取った複数ファイルを統合するよ

うな場合,レコードを整列するのが望ましいが,可変長フィールドを使用し,順序どおりに整列したい場

合,充てんの規則が必要である。


26

X 0604-1986

参考 2  データフィールドの例

1.

概要  データ記述フィールド及び対応するデータフィールドについての例を示す。構造,形,フィー

ルド名,ラベル及び書式制御の許される組合せは,非常に多いので,ここでは,幾つかの例を選んで示す。

例の中で使用する区切り文字には,次の印字記号を用いる。

;  フィールド分離文字 (1/14)

&

サブフィールド分離文字 (1/15)

1.1

基本文字データ  (DDR RP 9(2/0)RP 1011=“00)

フィールドの内容

DDR DR

1 AUTHOR;

Doe,

Jane;

2 AGE;

24;

3 HEIGHT;

5.5;

4 WEIGHT;

2.45E2;

5 BITSTR;

010101;

1.2

複合データ  (DDR RP 9(2/0)RP1011=“06)

1.2.1

基本フィールド

フィールドの内容

データ形

DDR DR

1

文字

0000 ; & NAME;

DOE, JANE;

2

暗黙小数点

0100 ; & AGE;

18;

3

明示小数点

0200 ; & GPA;

3.46;

4

明示小数点指数

0300 ; & DIST;

+0.5E+2;

5

文字モードビット列

0400 ; & BITSTR;

010101;

6

ビットフィールド(固定長)

0500 ; & BITFLDF&B(6) ;

(01010100) ;

*

7

ビットフィールド(可変長)

0500 ; & BITFLDV&B;

16 (01010100) ;

*

*  DR の括弧の中の数字は 2 進数である。

1.2.2

ベクトルフィールド

1.2.2.1

サブフィールドラベルをもつ,区切り構造の文字ベクトル

DDR  1000 ; & MAILING ADDRESS & NAME!STREET!CITY!STATE!ZIP ;

DR

DOE, JOHN & 1010 MAPLE ST. & OSHGOSH&OHIO&12345 ;

1.2.2.2

フィールド名とサブフィールドラベルをもつ,書式指定の暗黙小数点ベクトル

DDR  1100 ; & POPULATION & CY60!CY65!CY70!CY75 & (4I(6)) ;

DR 765432987345903231897654

;

1.2.2.3

フィールド名をもつが,ラベルをもたない,区切り構造の明示小数点ベクトル

DDR  1200 ; & GRAINS ;

DR

3.46 & 2.47& 11.94 ;

1.2.2.4

フィールド名をもつが,ラベルをもたない,書式指定の混合ベクトル

(この例は,配列と解釈することもできる。

DDR  1600 ; & LIVE STOCK && (A (, ) , I (5) , R (5) ) ;

DR

PIGS, 0274437. 46STEERS, 1776447. 84 ;


27

X 0604-1986

1.2.3

配列フィールド

1.2.3.1

フィールド名と直積ラベルをもつ,区切り構造の文字配列

DDR  2000 ; & PROPERTIES & GOLD!SODIUM!COPPER*DENSITY!COLOUR!ACTIVITY ;

DR

HIGH & YELLOW&INERT & LOW & GREY & HIGH & MEDIUM & REDDISH & LOW ;

これを表で示すと次のようになる。

PROPERTIES

 DENSITY

COLOUR

ACTIVITY

GOLD HIGH YELLOW

INERT

SODIUM LOW

GREY

HIGH

COPPER MEDIUM REDDISH

LOW

1.2.3.2

フィールド名をもたない,書式指定の暗黙小数点の配列

DDR 2100

;

&&& (9I(2)) ;

DR

2 & 3 & 3 & 124788334672441921 ;

1.2.3.3

フィールド名をもつ,区切り構造の明示小数点の配列

DDR  2200 ; & UNIT MATRIX;

DR

2 & 3 & 3 & 1. & 0. & 0. & 0. & 1. & 0. & 0. & 0. & 1. ;

1.2.3.4

フィールド名をもち,行ベクトルラベルがなく列ベクトルラベルをもつ,書式指定の混合配列

DDR  2600 ; & TABLEII & *METAL!DENSITY!COLOUR!ACTIVITY & (A (: ) , R (4) , A (, ) , R (4) ) ;

DR GOLD:

14.8YELLOW,

−1.3SODIUM: 0.63GREY, 4.81COPPER: 10.6REDDISH,.043 ;

2.

拡張文字集合の使用法

2.1

フィールドに対する省略時文字集合  各フィールドに対する省略時文字集合の使用法は,DDR RP

17

∼19 及び各フィールドに対する拡張されたフィールド制御により,次のとおり示す。

(1)  DDR RP 17

∼19 が  (2/0) (2/1) (2/0)  のとき,各フィールドは,拡張文字集合を含んでいてもよい。

(2) DDR RP10

∼11 が“03”又は“09”のとき,フィールド制御は,最後の 3 バイトがエスケープシーケ

ンス情報である 3 又は 9 バイトの情報であることを示している。

(3)

フィールド名に先立つフィールド制御は,データ構造,形,印字用図形文字の指定及びエスケープシ

ーケンス情報を含んでいることを示す。

拡張されたフィールド制御の例を,ISO 国際登録簿に登録された幾つかの文字集合を含めて次に示す。


28

X 0604-1986

省略時文字集合

フィールド制御

 RP

  0 1 2 3 4

5

6

7

8

(1)  JIS

片仮名 0 0 0 0 ; & (2/9) (4/9) (2/0)

(2) 

イタリア文字 0 0 0 0 ; & (2/9) (5/9) (2/0)

(3) 

名前用スエーデン文字

1 0 0 0 ; & (2/9) (4/8) (2/0)

(4) 

拡張文字集合使用せず

0 0 0 0 ; & (2/0) (2/0) (2/0)

備考1.  (1)(2)の場合のデータフィールドは,基本文字集合であ

る JIS C 6220のローマ文字用7単位符号及び指示された
省略時文字集合を用いた構造をもたない文字列を含む。

2.  (3)

は,文字列を要素とするベクトルをデータフィールド

に含む。

3.  (4)

は,拡張文字集合の文字を含まないフィールドのため

のフィールド制御の指定である。

4.  (1)

(4)では,例として,3 文字のエスケープシーケンス

を使用しているため,RP8 は,(2/0)  となっているが,4

文字のエスケープシーケンスを使用する場合は,他の文
字を指定する。

2.2

ファイルに対する省略時文字集合  ファイル全体に対する省略時文字集合を指定する場合は,DDR

RP 17

∼19 にエスケープシーケンスの第 2 文字目以降の文字の並びを指定する。

例えば,ファイル全体に対する省略時文字集合に,JIS C 6220 の片仮名を使用する場合,DDR RP 17∼

19

は,(2/9) (4/9) (2/0)と指定する。ファイルには,少なくとも一つの片仮名を含んだデータフィールドが

含まれている。

2.3

文字集合のインライン拡張  インラインエスケープシーケンスは,データフィールドの中で自由に

使用することができる。DDF の受け手は,DDR RP 7 の内容によって,インラインエスケープシーケンス

が使用されているか否かを知ることができる。内容が文字“E”のときは,インラインエスケープシーケ

ンスが現れ,

“間隔文字”のときは,現れないことを意味する。

インラインエスケープシーケンスを含むファイルでは,次のようになる。

(1)  DDR RP 7

は“E”

(2)  1

個以上のデータフィールドが,エスケープシーケンス ESC (I) (F)を含んでいる。ここで,(I)は 1 個

以上の中間文字,(F)はエスケープシーケンスの終端文字である。

これらのエスケープシーケンスは,指定された省略時文字集合によって制限されることはない。ISO 

際登録簿に登録された,すべてのエスケープシーケンスが,7 ビット及び 8 ビットの環境のもとで,JIS C 

6228

に規定された方法で使用できる。


29

X 0604-1986

参考 3  DDF モデルと論理レコードの構造

1.

DDF

モデル  DDF モデルと他のファイルモデルを比較するため,DDF のデータ構造をグラフ理論の

用語を用いて説明する。DDF モデルは,根付き順序木の集合として定義できる。それぞれの木は,DDF

の論理レコードに対応する。また,それぞれの木の根ノードは,レコード識別子フィールドに対応し,一

意なレコード識別子を含んでいなければならない。データフィールドは,木に従属するノードに対応し,

中間又は葉のノードの場合がある。

DR

の木構造は,ノード間の 2 項関係(タグ対の並び)及び行きがけ順として,DDR に記述されたはん

(汎)木から導出される木の一つの実現値でなければならない。1 個のデータ木は,DDR のノードの 2 項

関係及び DR の木の行きがけ順で記述される。DR の木構造は,そのノードが不完全であってもよい。DDR

のはん木中に出現するすべてのノードに対し,データをもたなくてもよく,また,構造を保つため,空の

情報を入れておく必要もない。DDR のはん木の部分木は,DR 木の中で複数の実現値をもってもよい。そ

れらは,行きがけ順情報中の実現値の順序により識別できる。

各ノードの内容は,基本データ,ベクトル又は配列などの構造データのいずれでもよい。DR のデータ

フィールドは,データ項目を含んでいる。データフィールドは,文字,3 種類の数値形式,文字モードビ

ット列,ビットフィールド及びこれらの混合データ形を含むことができる。DR のデータフィールドは,

DDR

中の書式によって記述される。

ファイルは,必ずしも木構造である必要はない。この場合,ファイルは,名前をもつ(タグが付けられ

た)データフィールドの集合を含んだ,一意に識別できる論理レコードの集合である。DR の中のデータ

フィールドは,空であってもよく,フィールドの 2 個以上の実現値が存在してもよい。しかし,フィール

ドの順序は,それらの関係を表してはいない。この構造は,各フィールドが,暗にレコード識別子ノード

に接続されている,階層レベルが 1 の根付き無順序木と考えることができる。

DDF

モデルの一つの特徴は,各木の根ノードとして一意なレコード識別子が要求されるため,木の全集

合が,DDR を根とする 1 個の順序木として表現できることである。

2.

階層的論理レコード  ここでは,タグをもったフィールドの線形な構造を,階層構造に再構成する方

法を示す。ここで使用する階層構造又は根付き順序木の構造は,ノードとしてデータフィールドをもち,

データフィールドの内容間の関係を方向をもったリンクで表現したものである。根付き順序木は,1 個の

根ノードをもち,各ノードは,0 個以上の部分順序木をもつことができる。1 個のレコードに対する木構造

の一つの実現値は,同一タグをもつ複数のデータフィールドの実現値により構成された,幾つかの部分木

をもつことができる。しかし,このような木は,データレコードに対するはん木から導出できる(はん木

と同じ論理的なフィールド間関係をもつ。

)ものでなければならない。はん木は,各フィールドが一度だけ

出現し,各フィールド間のすべての可能なリンクを含んだものである。

根付き順序木は,入り方向のリンクをもたない根ノードを,ただ一つだけもち,他のノードは,ただ一

つの入り方向のリンクをもつ。出方向のリンクをもたないノードは,葉ノードと呼ばれる。各ノードのリ

ンクは,根から葉の方向に向かって指定される。階層レベルは,根ノードから葉ノードヘのパスごとに,

根ノードをレベル 1 とし,葉ノードの方向にリンクをたどりノードごとに 1 ずつ加えることにより決定さ

れる。この規格では,木は,左から右に順序付けられた各ノードの部分木が,根ノードに接続されるよう


30

X 0604-1986

な形で書かれている。根付き順序木の例を

参考 図 に示す。この例に示した木は,一方の枝をもたない

2

分木ではない。

参考 図 1  根付き順序木の例

ここで使用する根付き順序木の表現方法は,2 分木のような木構造の最も一般的な計算機表現ではなく,

利用者の観点に近い表現である(

参考 図 3,参考 図 参照)。

タグは,ノード(データフィールド)識別子として使用される。木構造は,次の 2 種類の情報により,

指定される。

(1)

親から子への順で記述された,はん木中のノード識別子の対の集合

(2)

ノード識別子(タグ)の行きがけ順による並び

論理レコードのはん木構造の例を

参考 図 に示す。

参考 図 2  論理レコードのはん木構造の例


31

X 0604-1986

この例のはん木構造は,RH,HE,EA,EB,HF,HG,GC,GD という順序付けられたタグ対の集合を

もつ。ここで,R は一意なレコード識別子“0…1”である。また,行きがけ順は,RHEABFGCD であり,

各ノードは,1 度ずつ出現する。このはん木構造に対する一つの実現値として,同一タグをもつデータフ

ィールドが複数回出現する場合の例を

参考 図 に示す。

参考 図 3  利用者データの木の実現値の例

R

は,一意なレコード識別子のタグである。同一タグが複数個存在する場合は,理解しやすくするため

添字を付けて表している。この例の行きがけ順は,次のようになる。

RH (1) E (1) A (1) B (1) F (1) G (1) D (1) H (2) E (2) E (3) G (2) D (2) D (3) H (3) E (4) B (2) F (2) F (3)

添字を付けなくても意味が失われることはない。根ノード R は 1 個であるが,他のノード(H,E,A な

ど)は,複数回現れてもよい。そのときは,同一名のタグの繰返しで表現される。

木構造を表現するには,リンク情報と組み合わせて行きがけ順を使用する。更に,一般的には対応する

2

分木を使用する。この 2 分木は,与えられた木と同一の行きがけ順をもち,ノードの最初の部分木への

リンクは,2 分木の左リンクとなる。また,すべての兄弟ノードは,右リンクとして順序付けられ,リン

ク付けされる。これらの新しいリンクは,タグ対の並び及び行きがけ順情報から容易に導出でき,利用者

のシステムで要求されるどのようなリンク付け規則でも実現することができる。

対応する 2 分木の左右リンクを生成するアルゴリズムの例を,

先に示したはん木の例を用いて次に示す。

アルゴリズム : P

(q)

は,ノードの集合上の 2 項関係,q は,ノード間の許される有向の関係,T (q)  は

木(又は森)の行きがけ順。これらが与えられたとき,対応する 2 分木の左右リンク


32

X 0604-1986

を表現している T における指標のベクトル L,R を求める。

L0.

[初期化]

n

←T におけるノードの数

S

←0,S は根からノード T (S (j) )に至るパスの各ノードの T における指標を保持する作

業用スタック

L

←0

R

←0

L1.

[スタックに根ノードを設定]

j

←1,S (1)  ←1

L2.

[ノード指標を根ノードに設定]

i

←1

L3.

[次のノードへ進む]

i

←i+1

L4.

[T の大きさのテスト] ifi>n

end

L5.

[スタックノードと i 番目のノードの対のテスト]

if T (S (j) )

‖T (i)  −EP go to L8

L6.

[左リンクを格納]

L (S (j) )

←i

L7.

[i 番目のノードをスタックに加える] j←j+1,S (j)  ←i go to L3

L8.

[最後から 2 番目のスタックと i 番目のノードの対のテスト]

if T (S (j-1) )

‖T (i)  −EP go to L11

L9.

[右リンクを格納]

R (S (j) )

←i

L10.

[スタックノードをリセット] S

(j)

←i go to L3

L11.

[パスの上位レベルに後退]

j

←j−1

L12.

[非連結ノード(別の木)のテスト]

if j

=0 go to L9

L13.

[新たなノード対のテスト]

go to L8

備考  “−E”は,“∼の要素ではない”,“‖”  は,“統合”を意味する。

例:

P : RH

,HE,EA,EB,HF,GC,GD,HG

J : 1 2 3 4 5 6 7 8 9

T : R H E A B F  G

C

D

L

: 2 3 4 0 0 0 8 0 0

R

: 0 0 6 5 0 7 0 9 0

このアルゴリズムは,根付き木に有効である。同一タグをもったノードがあってもなくても処理可能で

ある。また,順序付けられた木の集合(森)も処理可能であるが,木に対する処理に限定したい場合は,

L12

における条件を満たしたときの行き先を,エラーに設定すればよい。

参考 図 に示した木に対応する 2 分木を参考 図 に示す。


33

X 0604-1986

参考 図 4  参考 図 の根付き木に対応する 分木

情報交換用データ記述ファイル JIS 原案作成委員会  構成表

(敬称略・順不同)

氏名

所属

(主査)

瀬  野  健  治

株式会社コンピュータ総合研究所

(幹事)

倉  田  正  博

日本電信電話株式会社情報通信処理研究所情報処理研究部

池  田  幸  雄

日本電信電話株式会社情報通信処理研究所情報処理研究部

伊  藤  彰  一

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

大  石  東  作

工業技術院電子技術総合研究所ソフトウェア部

古  賀  尚  之

株式会社日立製作所情報事業本部コンピュータ事業部

後  藤  和  夫

日電東芝情報システム株式会社コンピュータ統括本部

下  田  宏  一

日本ユニバック株式会社プロダクト本部技術情報サービス部

仲  谷      元

日本電信電話株式会社情報通信処理研究所情報処理研究部

平須賀  しづ江

日本アイ・ビー・エム株式会社営業情報推進

福  井  隆  司

株式会社東芝青梅工場基本ソフトウェア第 1 部

水  野  晴  敏

富士通株式会社情報処理事業推進本部企画部

森  本  真一郎

沖電気株式会社コンピュータシステム開発本部

矢  嶋  祐  次

日本科学技術情報センター技術管理室