付録Q.3 CSV形式のデータおよびDOMの扱われ方
バイナリフォーマット定義ファイルの[単純内容要素]ダイアログの[CSV形式]の[空データとNullデータを区別する]チェックボックスをチェックした場合(Nullデータを区別する設定が有効の場合)の,CSV形式のデータとDOMの扱われ方について説明します。
- 〈この項の構成〉
(1) CSV形式のデータの扱われ方
CSV形式のデータでは,空データとNullデータを区別する設定が有効の場合,ダブルクォーテーション(")の囲みの有無によって,データの扱われ方は次のようになります。
-
ダブルクォーテーション(")で囲まれている:空データとして扱われます。
-
ダブルクォーテーション(")で囲まれていない:Nullデータとして扱われます。
値がある(空白だけを含む)場合は,空データとNullデータを区別をしないため,Nullデータとして扱われません。
データの内容ごとのデータの扱いを次の表に示します。
データの内容 |
データの扱い |
||
---|---|---|---|
「"」の囲み |
内容 |
設定※が有効 |
設定※が無効 |
あり |
空文字列 |
空 |
空 |
空白だけ |
空白だけ |
空白だけ |
|
空白以外の文字列 |
空白以外の文字列 |
空白以外の文字列 |
|
なし |
空文字列 |
Null |
空 |
空白だけ |
空白だけ |
空白だけ |
|
空白以外の文字列 |
空白以外の文字列 |
空白以外の文字列 |
空データとNullデータを区別する設定が有効の場合のデータの扱われ方の例を次に示します。
CSV形式のデータ※ |
データの扱われ方 |
---|---|
,"", |
空 |
,, |
Null |
,"△△△", |
"△△△" (空白を埋め字とし,不要文字を削除する場合は空) |
,△△△, |
"△△△" (空白を埋め字とし,不要文字を削除する場合は空) |
,a, |
a |
(2) DOMの扱われ方
DOMでは,空データとNullデータを区別する設定が有効の場合,対象の単純内容要素にnulldata属性が指定できるようになり,属性の値で「空」と「Null」が区別されます。指定できるnulldata属性の属性値を次に示します。
-
属性の型はxsd:boolean型で,"true","false","1","0"を設定できます。
-
"true"または"1"の場合は「真」,"false"または"0"の場合は「偽」になります。
-
設定可能な値以外の値が指定された場合は,「偽」になります。
-
属性値の大文字と小文字を区別し,先頭および終端の空白は削除してから判定します。
nulldata属性の属性値が「真」の場合「Null」として扱われ,要素に値が設定されていても無視します(「Null」と解釈します)。nulldata属性がない場合,または属性値が「偽」の場合,要素の値で扱われます。
DOMをCSV形式に戻す場合のデータの扱いを次の表に示します。
DOM |
CSV形式のデータ |
|
---|---|---|
nulldata属性の属性値 |
要素の値 |
データの扱い |
|
空文字列 |
Null |
空白だけ |
||
空白以外の文字列 |
||
|
空文字列 |
空 |
空白だけ |
空白だけ |
|
空白以外の文字列 |
空白以外の文字列 |
空データとNullデータを区別する設定が有効の場合のデータの扱われ方の例を次に示します。DOMのelem要素が,空データとNullデータを区別する設定が有効となっている単純内容要素に対応しています。
DOM |
データの扱われ方 |
---|---|
<elem/> |
空 |
<elem nulldata="true"/> |
Null |
<elem>△△△</elem> |
"△△△" (空白を埋め字とし,不要文字を削除する場合は空) |
<elem nulldata="true">△△△</elem> |
Null |
<elem>a</elem> |
a |
<elem nulldata="true">a</elem> |
Null |
<elem nulldata="1△">a</elem> |
Null |
<elem nulldata="TRUE">a</elem> |
a |