7.2.7 値の入力,出力の動作
XMLドキュメントとCOBOLデータ項目間のデータの読み込み,書き込みには,それぞれ次の規則が適用されます。
- 〈この項の構成〉
(1) 数値の場合
数値データの入力規則
-
XMLのデータに「E」が含まれる場合,数値を浮動小数点数とみなします。このとき,「E」の左側が仮数部,右側が指数部となります。また,「E」の右側がない場合は,指数を0とみなします。
-
XMLのすべてのデータが数値以外(スペース,タブおよび改行も含む)の場合,0が読み込まれます。
-
入力する数値の中に数値以外(スペース,タブおよび改行も含む)がある場合,不当な数値であるため結果は不定となります。ただし,invalidCharValue属性が指定されている場合,その値となります。
(入力例)
<Item>1△2</Item>
注
△は,数値の中に空白文字(スペース,タブおよび改行)がある場合を表します。
-
入力する数値の前後に空白文字(スペース,タブおよび改行)がある場合,空白文字(スペース,タブおよび改行)を無視して数値だけが読み込まれます。
(入力例)
<Item>△12△</Item>
注
△は,数値の前後に空白文字(スペース,タブおよび改行)がある場合を表します。
-
浮動小数点数の入力で負符号を持つ0を入力した場合,正の0として入力されます。
数値データの入力例
DDFの定義例
COBOLデータ項目
XMLデータ
COBOLに
格納される値
type="numeric"
sign="signed"
size="9"
fractionalDigits="2"
S9(7)V9(2)
-234.56
-234.56E3
type="packed"
sign="unsigned"
size="9"
fractionalDigits="3"
9(6)V9(3)
USAGE
PACKED-DECIMAL
-234.56
-234.56E3
type="numeric"
sign="leadingSeparate"
S9(9) SIGN
LEADING SEPARATE
-23456
type="binary"
size="9"
9(9)
USAGE COMP
-234.56
'+000000234'
-234.56E3
'+000234560'
type="float"
COMP-1
12345.E4
' .12345000E 09'
234.56
' .23456000E 03'
type="double"
COMP-2
12345.E4
' .12345000000000000E 09'
234.56
' .23456000000000000E 03'
- (凡例)
数値データの出力規則
-
DDFで,Item要素のtype属性に"numeric","packed",または"binary"を指定した値は,size属性,sign属性,fractionalDigits属性,trim属性に従って値が出力されます。これらの数値は,size属性のけた数に従って数値の先頭部分に0が挿入されます。
-
DDFで,Item要素のtype属性に"float",または"double"を指定した値は,次の例に示すような浮動小数点形式で出力されます。
数値データの出力例
DDFの定義例
COBOLデータ項目
COBOLデータ項目の値
XMLデータに出力される値
type="numeric"
sign="signed"
size="9"
fractionalDigits="2"
trim="yes"
S9(7)V9(2)
-0.05
<nu1>
-0.05
</nu1>
type="numeric"
sign="signed"
size="9"
fractionalDigits="2"
trim="yes"
S9(7)V9(2)
-123.45
<nu1>
-123.45
</nu1>
type="numeric"
sign="signed"
size="9"
fractionalDigits="2"
trim="no"
S9(7)V9(2)
-123.45
<nu1>
-0000123.45
</nu1>
type="numeric"
sign="leadingSeparate"
S9(9) SIGN
LEADING SEPARATE
-12345
<nu1>
-12345
</nu1>
type="packed"
sign="unsigned"
size="9"
fractionalDigits="3"
trim="no"
9(6)V9(3)
USAGE
PACKED-DECIMAL
123.45
<pa1>
000123.450
</pa1>
type="binary"
size="9"
trim="no"
9(9)
USAGE COMP
123
<bi1>
0000123
</bi1>
type="float"
COMP-1
123.45E2
<fl1>
1.2345000E+04
</fl1>
type="double"
COMP-2
123.45E2
<do1>
1.2345000000000000E+04
</do1>
無限大(Infinity)と非数(Not-a-Number)の浮動小数点数の出力結果
-
無限大や非数の浮動小数点数を出力した場合,無限大や非数を示す文字列を出力します。無限大や非数を示す文字列は入力できないため,無限大や非数の浮動小数点数は出力しないでください。
(2) 文字列の場合
文字列データの入力規則
-
DDFで,Item要素のtype属性に"national",または"alphanumeric"を指定した値をXMLドキュメントから入力する場合,入力した文字列の長さよりCOBOLデータ項目の方が長いときは,余った領域に空白文字が埋められます。
-
入力する文字列中に不当な文字があった場合,動作は保証しません。
-
type属性に"national"を指定した値を入力した場合,データ中の1バイト文字は,すべて2バイト文字「」(げた記号)に置き換えられます。不当文字については「9.2 入出力時に不当な文字をチェックする機能」の「表9-3 入力時にチェックする文字」を参照してください。
-
空要素を入力した場合,空白が格納されます。
-
XMLドキュメントから入力した文字列がスペースまたはタブの場合,そのままCOBOLデータ項目に読み込まれます。
-
改行コードは,UNIXの場合は,LF(0x0A)に置き換えられます。Windowsの場合は,CR/LF(0x0D0A)に置き換えられます。
文字列データの入力例
DDFの定義例
COBOL
データ項目
XMLデータ
COBOLに
格納される値
type="alphanumeric"
size="10"
X(10)
ABC
'ABC△△△△△△△'
ABCDEFGHIJKL
'ABCDEFGHIJ'
type="national"
size="10"
N(10)
あいう
'あいう▲▲▲▲▲▲▲'
あいうえおかきくけこさし
'あいうえおかきくけこ'
あABい
'あい▲▲▲▲▲▲'
- (凡例)
-
△:半角空白文字
▲:全角空白文字
文字列データの出力規則
-
DDFで,Item要素のtype属性に"national",または"alphanumeric"を指定した値をXMLドキュメントへ出力する場合,データの末尾の空白文字は削除されます。
-
出力する文字列中に不当な文字があった場合,動作は保証しません。
-
値がすべて空白のデータを出力した場合,空要素が出力されます。
-
COBOLデータ項目にタブ文字が含まれる場合,XMLドキュメントにそのまま出力されます。
-
改行コードは,UNIXの場合は,LF(0x0A)で出力されます。Windowsの場合は,CR/LF(0x0D0A)で出力されます。
文字列データの出力例
DDFの定義例
COBOL
データ項目
COBOL
データ項目の値
XMLデータに出力される値
type="alphanumeric"
size="10"
trim="yes"
X(10)
'ABC'
<an1>ABC</an1>
SPACE
<an1></an1>
type="alphanumeric"
size="10"
trim="no"
X(10)
'ABC'
<an1>ABC△△△△△△△</an1>
SPACE
<an1>△△△△△△△△△△</an1>
type="national"
size="5"
trim="yes"
N(5)
N'あいう'
<na1>あいう</na1>
SPACE
<na1></na1>
type="national"
size="5"
trim="no"
N(5)
N'あいう'
<na1>あいう▲▲</na1>
SPACE
<na1>▲▲▲▲▲</na1>
- (凡例)
-
△:半角空白文字
▲:全角空白文字