Hitachi

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


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

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

〈この項の構成〉

(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

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