Cosminexus V9 BPM/ESB基盤 サービスプラットフォーム 開発ガイド 基本開発編

[目次][用語][索引][前へ][次へ]

付録Q.4 CSV形式のデータとDOMの相互変換

空データとNullデータを区別する設定が有効な場合の,CSV形式データとDOMの相互変換について説明します。

<この項の構成>
(1) CSV形式からDOMへの変換時の内容
(2) DOMからCSV形式への変換時の内容

(1) CSV形式からDOMへの変換時の内容

DOMへの変換では,空データとNullデータを区別する設定が有効の場合,CSV形式のデータを読み込む際に「空」と「Null」を区別します。入力データが「空」に該当する場合,DOMのうち対応する要素のnulldata属性に「false」を出力します。入力データが「Null」に該当する場合,nulldata属性に「true」を出力します。

空データとNullデータを区別する設定が有効の場合の,CSV形式のデータからDOMへの変換時の内容を次の表に示します。

表Q-5 CSV形式のデータからDOMへの変換時の内容

データの扱い DOMの内容
<elem nulldata="false"/>
Null <elem nulldata="true"/>
空白だけ <elem>[空白]</elem>
ただし,空白を削除する設定の場合は,<elem/>
空白以外の文字列 <elem>[空白以外の文字列]</elem>

注※
対応するFDXの単純内容要素の要素名はすべて「elem」とします。

CSV形式のデータからDOMへの変換例を次の表に示します。

表Q-6 CSV形式のデータからDOMへの変換例

変換元 変換先
CSV形式のデータ※1 バイナリフォーマット定義エディタの設定※2 DOM※5
データ種別 埋め字 不要文字 空データとNullデータの区別
,"", 文字列
文字列型数値※3
日付時刻※4
(任意) (任意) 有効 <elem nulldata="false"/>
無効 <elem/>
,, 文字列
文字列型数値※3
日付時刻※4
(任意) (任意) 有効 <elem nulldata="true"/>
無効 <elem/>
,"△△△",
,△△△,
文字列 スペース 削除する (任意) <elem/>
削除しない <elem>△△△</elem>
空文字(0x00)
空文字までをデータとする
<elem>△△△</elem>
空文字(0x00) (任意) <elem>△△△</elem>
文字列型数値※3 スペース 削除する (任意) エラー
(有効な数値でない)
削除しない エラー
(有効な数値でない)
0 (任意) エラー(不正な文字)
日付時刻※4 (任意) エラー
(有効な数値でない)
,"20190101",
,20190101,
文字列
文字列型数値※3
(任意) (任意) (任意) <elem>20190101</elem>
日付時刻※4 <elem>20190101</elem>

(凡例)
△:半角スペース
−:該当する設定がありません

注※1
コンマ(,)で囲まれた中央部分が対象のデータです。

注※2
サイズは,すべて「可変長(データの終端まで)」とします(「サイズノード指定」は含みません)。

注※3
文字列型数値は,整数,実数,固定小数部数値を指します。

注※4
日付時刻の形式は,"CCYYMMDD"を選択しているとします。

注※5
対応するFDXの単純内容要素の要素名は,すべて「elem」とします。

(2) DOMからCSV形式への変換時の内容

DOMを読み込む際に,空データとNullデータを区別する設定が有効の場合,「空」と「Null」を区別します。入力データが「空」に該当する場合,ダブルクォーテーション(")の囲みを出力します。入力データが「Null」に該当する場合,何も出力しません。

入力データが「空」または「Null」に該当する場合,バイナリフォーマット定義の[出力時のダブルクォーテーション「"」の囲み]チェックボックスの指定は無視されます。入力データが「空」でも「Null」でもない場合は,[出力時のダブルクォーテーション「"」の囲み]チェックボックスの指定が有効となります。

また,入力データがバイナリフォーマット定義で指定された[埋め字]だけで,[不要文字]が削除する設定になっている場合は,不要文字が削除されて空となります。この場合,空データとNullデータを区別する設定が有効であればダブルクォーテーション(")で囲まれるので,「空」と区別できます。空データとNullデータを区別する設定が無効の場合は,ダブルクォーテーション(")で囲まないで出力されます。

空データとNullデータを区別する設定が有効の場合の,DOMからCSV形式への変換時の内容を次の表に示します。

表Q-7 DOMからCSV形式への変換時の内容

データの扱い バイナリフォーマット定義の設定 CSV形式のデータ
「"」の囲み 不要文字
あり 削除する ,"",
削除しない
なし 削除する
削除しない
Null あり 削除する ,,
削除しない
なし 削除する
削除しない
空白だけ あり 削除する ,"",
削除しない ,"[空白]",
なし 削除する ,"",
削除しない ,[空白],
空白以外の文字列 あり 削除する ,"[空白以外の文字列]",
削除しない
なし 削除する ,[空白以外の文字列],
削除しない

注※
コンマ(,)で囲まれた中央部分が対象のデータです。

DOMからCSV形式のデータへの変換例を次の表に示します。

表Q-8 DOMからCSV形式のデータへの変換例

変換元 変換先
DOM※1 バイナリフォーマット定義エディタの設定※2 CSV形式のデータ※5
「"」の囲み データ種別 埋め字 不要文字 空データとNullデータの区別
<elem/>
<elem nulldata="false"/>
<elem nulldata="0"/>
あり 文字列
文字列型数値※3
日付時刻※4
(任意) (任意) 有効 ,"",
無効 ,,
なし (任意) (任意) 有効 ,"",
無効 ,,
<elem nulldata="true"/>
<elem nulldata="1"/>
<elem nulldata="true">△△△</elem>
<elem nulldata="true">a</elem>
(任意) 文字列
文字列型数値※3
日付時刻※4
(任意) (任意) 有効 ,,
<elem>△△△</elem> あり 文字列 スペース 削除する (任意) ,"",
削除しない ,"△△△",
空文字(0x00)
空文字までをデータとする
,"△△△",
空文字(0x00) 削除する ,"",
削除しない ,"△△△",
なし スペース 削除する 有効 ,"",
無効 ,,
削除しない (任意) ,△△△,
空文字(0x00)
空文字までをデータとする
(任意) ,△△△,
空文字(0x00) 削除する 有効 ,"",
無効 ,,
削除しない (任意) ,△△△,
あり 文字列型数値※3 (任意) (任意) (任意) ,"0",
なし (任意) (任意) (任意) ,0,
あり 日付時刻※4 (任意) ,"20000101",
なし (任意) ,20000101,
<elem>20190101</elem> あり 文字列
文字列型数値※3
(任意) (任意) (任意) ,"20190101",
なし (任意) (任意) (任意) ,20190101,
<elem>2019-01-01</elem> あり 日付時刻※4 (任意) ,"20190101",
なし (任意) ,20190101,

(凡例)
△:半角スペース
−:該当する設定がありません

注※1
対応するFDXの単純内容要素の要素名は,すべて「elem」とします。

注※2
サイズは,すべて「可変長(データの終端まで)」とします(「サイズノード指定」は含みません)。

注※3
文字列型数値は,整数,実数,固定小数部数値を指します。

注※4
日付時刻の形式は,"CCYYMMDD"を選択しているとします。

注※5
コンマ(,)で囲まれた中央部分が対象のデータです。