付録Q.4 CSV形式のデータとDOMの相互変換
空データとNullデータを区別する設定が有効な場合の,CSV形式データとDOMの相互変換について説明します。
(1) CSV形式からDOMへの変換時の内容
DOMへの変換では,空データとNullデータを区別する設定が有効の場合,CSV形式のデータを読み込む際に「空」と「Null」を区別します。入力データが「空」に該当する場合,DOMのうち対応する要素のnulldata属性に「false」を出力します。入力データが「Null」に該当する場合,nulldata属性に「true」を出力します。
空データとNullデータを区別する設定が有効の場合の,CSV形式のデータからDOMへの変換時の内容を次の表に示します。
データの扱い |
DOMの内容※ |
---|---|
空 |
<elem nulldata="false"/> |
Null |
<elem nulldata="true"/> |
空白だけ |
<elem>[空白]</elem> ただし,空白を削除する設定の場合は,<elem/> |
空白以外の文字列 |
<elem>[空白以外の文字列]</elem> |
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> |
(2) DOMからCSV形式への変換時の内容
DOMを読み込む際に,空データとNullデータを区別する設定が有効の場合,「空」と「Null」を区別します。入力データが「空」に該当する場合,ダブルクォーテーション(")の囲みを出力します。入力データが「Null」に該当する場合,何も出力しません。
入力データが「空」または「Null」に該当する場合,バイナリフォーマット定義の[出力時のダブルクォーテーション「"」の囲み]チェックボックスの指定は無視されます。入力データが「空」でも「Null」でもない場合は,[出力時のダブルクォーテーション「"」の囲み]チェックボックスの指定が有効となります。
また,入力データがバイナリフォーマット定義で指定された[埋め字]だけで,[不要文字]が削除する設定になっている場合は,不要文字が削除されて空となります。この場合,空データとNullデータを区別する設定が有効であればダブルクォーテーション(")で囲まれるので,「空」と区別できます。空データとNullデータを区別する設定が無効の場合は,ダブルクォーテーション(")で囲まないで出力されます。
空データとNullデータを区別する設定が有効の場合の,DOMからCSV形式への変換時の内容を次の表に示します。
データの扱い |
バイナリフォーマット定義の設定 |
CSV形式のデータ※ |
|
---|---|---|---|
「"」の囲み |
不要文字 |
||
空 |
あり |
削除する |
,"", |
削除しない |
|||
なし |
削除する |
||
削除しない |
|||
Null |
あり |
削除する |
,, |
削除しない |
|||
なし |
削除する |
||
削除しない |
|||
空白だけ |
あり |
削除する |
,"", |
削除しない |
,"[空白]", |
||
なし |
削除する |
,"", |
|
削除しない |
,[空白], |
||
空白以外の文字列 |
あり |
削除する |
,"[空白以外の文字列]", |
削除しない |
|||
なし |
削除する |
,[空白以外の文字列], |
|
削除しない |
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, |