必要な情報が設定されていなかったり,設定の内容や関係が正しくない場合,バイナリフォーマット定義ファイルを利用したデータ変換定義の作成や,データ変換が正しく行われません。
そのため,作成したバイナリフォーマット定義ファイルは,設定の内容が妥当かどうか検証します。検証は,任意のタイミングで実施できます。また,各要素を設定するダイアログでの入力時には,入力された値が自動的に検証されます。
バイナリフォーマット定義ファイルの各要素の設定内容が検証できます。
検証内容とエラー発生時の対処,およびどの検証内容がどの検証方法の場合に実施されるかについて,次の表に示します。
表4-7 バイナリフォーマット定義ファイルの検証内容とエラー発生時の対処
検証の対象 | 検証内容 | エラー発生時の対処 | 検証方法 | |
---|---|---|---|---|
自動 | 任意 | |||
全体 | 名称がNCName型か。 | フォーマット名称および要素の名称をNCName型で指定します。 | ○ | - |
フォーマット | 逐次構成の複合内容要素が設定されているか。 | 逐次構成の複合内容要素を設定します。 | - | ○ |
ルート要素が設定されているか。 | バイナリフォーマット定義内の複合内容要素をルート要素として設定します。 | - | ○ | |
文字コードにKEISを選択している場合に,セパレータを定義している複合内容要素がないか。 | フォーマットの文字コードをKEIS以外にするか,または複合内容のセパレータの指定を解除します。 | ○ | - | |
文字コードにKEISを選択している場合に,データ種別に文字列以外を設定している単純内容要素がないか。 | フォーマットの文字コードをKEIS以外にするか,または単純内容のデータ種別に文字列を指定します。 | ○ | - | |
パック形式数値およびゾーン形式数値のビット値(16進数)の値が16進数で設定されているか,または未設定でないか。 | 該当する符号ビットまたは文字を16進数で設定します。 | ○ | - | |
ゾーン形式数値の符号文字(16進数)の値が16進数で設定されているか,または未設定でないか。 | 該当する符号ビットまたは文字を16進数で設定します。 | ○ | - | |
エスケープ文字がラテン文字または半角スペースの1文字か。 | ラテン文字の範囲(0x21~0x7E)でエスケープ文字を設定します。 | ○ | - | |
エスケープ文字とセパレータ値に同一の文字が指定されていないか。※ | エスケープ文字とセパレータ値に重複しない文字を指定します。 | ○ | - | |
単純内容要素 | 同じ名称の要素が同じ階層にないか。 | 同じ階層でユニークな名称を指定します。 | ○ | - |
グローバル定義の単純内容要素は,複合内容要素の構成要素に設定されているか。 | 該当する単純内容要素を複合内容要素の構成要素に設定します。 | ○ | - | |
サイズが固定の場合,指定したサイズの値は次の式を満たすか。 0<サイズ≦2,147,483,647 | サイズを1~2,147,483,647の範囲で設定します。 | ○ | - | |
次の条件をすべて満たす場合,指定したサイズの値が偶数か。
| 文字コードにUTF-16(BE/LE)以外を指定するか,該当する単純内容要素のサイズに偶数を指定します。 | ○ | ○ | |
次の条件をすべて満たす場合,指定した小数部桁数が,サイズに指定した値から求められる最大の小数部桁数以下になっているか。
| サイズに小数部桁数のバイト数以上の値を設定します。 | ○ | ○ | |
データ種別が固定小数部数値,ゾーン形式数値,またはパック形式数値の場合,指定した小数部桁数は次の式を満たすか。 0≦小数部桁数≦33 | 小数部桁数を0~33で設定します。 | ○ | - | |
データ種別が日付時刻で,秒小数部桁数が指定されている場合,指定した小数部桁数は次の式を満たすか。 0≦秒小数部桁数≦3 | 秒小数部桁数を0~3で設定します。 | ○ | - | |
データ種別が日付時刻で,サイズが固定の場合,指定したサイズは次の式を満たすか。 サイズ≧形式サイズ+小数点サイズ+秒小数部桁数 | サイズに日付時刻形式のバイト数以上の値を設定します。 | ○ | ○ | |
次の条件をすべて満たす場合,「指定したサイズの最大小数部桁数≧小数部桁数+符号文字」になっているか。または指定したサイズが2バイト以上か。
| サイズには,小数部桁数のバイト数+符号文字のバイト数以上,かつ2バイト以上の値を指定してください。 | ○ | ○ | |
複合内容要素 | 同じ名称の要素が同じ階層にないか。 | 同じ階層でユニークな名称を指定します。 | ○ | - |
ルート要素に設定されている複合内容要素が,ほかの複合内容要素の構成要素として設定されていないか。 | 複合内容要素の構成要素から,ルート要素に設定されている複合内容要素を削除します。 | - | ○ | |
複合内容要素はほかの複合内容要素の構成要素に設定されているか(ただしルート要素の場合は除く)。 | 該当する複合内容要素を,ほかの複合内容要素の構成要素に設定します。 | - | ○ | |
構成要素は設定されているか。 | 該当する複合内容要素に構成要素を設定します。 | - | ○ | |
選択構成の場合,選択条件ノードが設定されているか。 | 該当する複合内容要素に選択条件ノードを設定します。 | - | ○ | |
選択構成の場合,選択条件ノードに設定されている要素は単純内容要素か。 | 選択条件ノードとして単純内容要素のノードを設定します。 | ○ | ○ | |
選択構成の場合,各構成要素に選択条件値が設定されているか(ただし,一つだけは選択条件値を設定しなくてもよい)。 | 各構成要素に選択条件値を設定し,選択条件値が設定されていない構成要素を一つ以下にします。 | - | ○ | |
選択構成の場合,選択条件ノードに設定されている単純内容要素のデータ種別と,各構成要素の選択条件値に指定した値が一致するか。 | 選択条件ノードに設定されている単純内容要素のデータ種別によって検証の内容と対処が異なります。詳細については「表4-8 選択条件値に指定した値に関する検証内容と対処」を参照してください。 | ○ | ○ | |
選択構成の場合,各構成要素の選択条件値に重複はないか。 | 選択条件値が重複した構成要素に,ほかの構成要素で設定されていない選択条件値を設定します。 | - | ○ | |
選択構成の場合,選択条件ノード,およびそのすべての祖先ノードの出現回数が固定で,かつ1回か。 | 選択条件ノードとその祖先ノードの出現回数を1回固定になるように設定します。 | - | ○ | |
選択構成の場合,選択条件ノードのサイズが固定か。 | 選択条件ノードのサイズを固定に設定します。 | - | ○ | |
選択構成の場合,選択条件ノードのパスが正しいか。 | 選択条件ノードを示すパスが不正であるおそれがあります。対処方法については「表4-9 パスが不正である場合の原因と対処」を参照してください。 | ○ | ○ | |
選択構成の場合,選択条件ノードのパスに選択構成の複合内容要素が含まれていないか(ただし,パスが絶対パスの場合,設定元のノードの祖先ノードは除く)。 | 選択条件ノードが実際のバイナリデータで出現しないおそれがあります。実際のバイナリデータで選択条件ノードに該当するデータが出現するか確認します。 | - | ○ | |
選択構成の場合,コード変換ライブラリが使用できるか(クラスをロードできるか)。 | uCosminexus 日立コード変換 - Development Kitのjarファイルを正しく設定したあと,Eclipseを再起動します。 | ○ | ○ | |
コード変換テーブルのパスが正しく設定されているか。 | コード変換テーブルパスに日立コード変換の変換用テーブルのパスを正しく指定してください。 | ○ | ○ | |
選択構成の場合,構成要素に設定されている単純内容要素の数は一つ以下か。 | 構成要素に設定する単純内容要素を一つ以下にします。 | - | ○ | |
選択構成の場合,各構成要素(複合内容要素)に開始セパレータが設定されているか(ただし,構成要素に単純内容要素が設定されていない場合,一つだけは開始セパレータを設定しなくてもよい)。 | 構成要素に単純内容要素が設定されている場合,各構成要素に開始セパレータを設定します。構成要素に単純内容要素が設定されていない場合,開始セパレータが設定されていない構成要素を一つ以下にします。 | - | ○ | |
選択構成の場合,各構成要素に設定されている開始セパレータの値に重複はないか。 | 開始セパレータが重複した構成要素に,ほかの構成要素で設定されていない開始セパレータの値を設定します。 | - | ○ | |
構成要素 | 出現回数が固定の場合,指定した出現回数は次の式を満たすか。 0<出現回数≦2,147,483,647 | 出現回数を1~2,147,483,647の範囲で設定します。 | ○ | - |
出現回数が「出現回数ノード」の場合,出現回数ノードが設定されているか。 | 該当する構成要素に出現回数ノードを設定します。 | - | ○ | |
出現回数が「出現回数ノード」の場合,出現回数ノードのデータ種別が数値型か(数値型とは,整数,実数,固定小数部数値,ゾーン形式数値,パック形式数値,符号付き2進整数,または符号なし2進整数)。 | 出現回数ノードには,データ種別が数値型の単純内容要素を設定します。 | ○ | ○ | |
出現回数が「出現回数ノード」の場合,出現回数ノード,およびそのすべての祖先ノードの出現回数が固定,かつ1回か。 | 出現回数ノードとその祖先ノードの出現回数を1回固定になるように設定します。 | - | ○ | |
出現回数が「出現回数ノード」の場合,出現回数ノードのパスが正しいか。 | 出現回数ノードを示すパスが不正であるおそれがあります。対処方法については「表4-9 パスが不正である場合の原因と対処」を参照してください。 | ○ | ○ | |
出現回数が「出現回数ノード」の場合,出現回数ノードのパスに選択構成の複合内容要素が含まれていないか(ただし,パスが絶対パスの場合,設定元のノードの祖先ノードは除く)。 | 出現回数ノードが実際のバイナリデータで出現しないおそれがあります。実際のバイナリデータで出現回数ノードに該当するデータが出現するか確認します。 | - | ○ | |
再帰構造になっていないか。 | 再帰的に設定されている構成要素を削除します。 | ○ | - | |
構成要素が単純内容要素の場合で,サイズが「サイズノード」のとき,サイズノードが設定されているか。 | 該当する構成要素にサイズノードを設定します。 | - | ○ | |
構成要素が単純内容要素の場合で,サイズが「サイズノード」のとき,サイズノードのデータ種別が数値型か(数値型とは,整数,実数,固定小数部数値,ゾーン形式数値,パック形式数値,符号付き2進整数,または符号なし2進整数)。 | サイズノードには,データ種別が数値型の単純内容要素を設定します。 | ○ | ○ | |
構成要素が単純内容要素の場合で,サイズが「サイズノード」のとき,サイズノード,およびそのすべて祖先ノードの出現回数が固定,かつ1回か。 | サイズノードとその祖先ノードの出現回数を1回固定になるように設定します。 | - | ○ | |
構成要素が単純内容要素の場合で,サイズが「サイズノード」のとき,サイズノードのパスが正しいか。 | サイズノードを示すパスが不正であるおそれがあります。対処方法については「表4-9 パスが不正である場合の原因と対処」を参照してください。 | ○ | ○ | |
構成要素が単純内容要素の場合で,サイズが「サイズノード」のとき,サイズノードのパスに選択構成の複合内容要素が含まれていないか(ただし,パスが絶対パスの場合,設定元のノードの祖先ノードは除く)。 | サイズノードが実際のバイナリデータで出現しないおそれがあります。実際のバイナリデータでサイズノードに該当するデータが出現するか確認します。 | - | ○ | |
構成要素が単純内容要素の場合で,出現回数が「データの終端まで」の場合,出現の終わりを示すセパレータが設定されていること。 | 出現回数が可変の要素で,出現の終わりを示すセパレータを指定します。 | ○ | ○ | |
構成要素が単純内容要素の場合で,サイズが「データの終端まで」の場合,データの終了を示すセパレータが設定されていること。 | サイズが可変長の要素で,データの終了を示すセパレータを指定します。 | ○ | ○ | |
構成要素が複合内容要素の場合で,出現回数が「データの終端まで」の場合,出現の終わりを示すセパレータが設定されていること。 | 出現回数が可変の要素で,出現の終わりを示すセパレータを指定します。 | ○ | ○ |
表4-8 選択条件値に指定した値に関する検証内容と対処
データの種別 | 検証内容 | 対処 |
---|---|---|
文字列 | 次の式を満たすか。 文字コード変換後のサイズ≦指定のサイズ | 選択条件値のバイトサイズが選択条件ノードのサイズ以下になるように指定してください。 |
整数 | 指定した文字列の形式はnか。※1※2 | 選択条件値に選択条件ノードのデータ種別と一致した文字列を指定してください。 |
次の式を満たすか。 文字コード変換後のサイズ≦指定のサイズ | 選択条件値のバイトサイズが選択条件ノードのサイズ以下になるように指定してください。 | |
符号の有無が「なし」の場合,0≦値か。 | 選択条件値に正の値を指定してください。 | |
整数は34桁以下か。 | 選択条件値に有効桁数が34桁以内の数値を指定してください。 | |
実数 | 指定した文字列の形式はnまたはn.mか。※1※2 | 選択条件値に選択条件ノードのデータ種別と一致した文字列を指定してください。 |
次の式を満たすか。 文字コード変換後のサイズ≦指定のサイズ | 選択条件値のバイトサイズが選択条件ノードのサイズ以下になるように指定してください。 | |
符号の有無が「なし」の場合,0≦値か。 | 選択条件値に正の値を指定してください。 | |
整数部桁+小数部桁が34桁以下の実数か。 | 選択条件値に有効桁数が34桁以内の数値を指定してください。 | |
固定小数部数値 | 指定した文字列の形式はnまたはn.mか。※1※2 | 選択条件値に選択条件ノードのデータ種別と一致した文字列を指定してください。 |
次の式を満たすか。 暗黙的小数部付き数値に変換後のサイズ≦指定のサイズ | 選択条件値のバイトサイズが選択条件ノードのサイズ以下になるように指定してください。 | |
符号の有無が「なし」の場合,0≦値か。 | 選択条件値に正の値を指定してください。 | |
整数部桁+小数部桁が34桁以下の実数か。 | 選択条件値に有効桁数が34桁以内の数値を指定してください。 | |
小数部桁は「小数部桁数」に指定した範囲内か。 | 選択条件値の小数部の桁数を小数部桁数以下で指定してください。 | |
ゾーン形式数値 | 指定した文字列の形式はnまたはn.mか。※1 | 選択条件値に選択条件ノードのデータ種別と一致した文字列を指定してください。 |
次の式を満たすか。 ゾーン形式に変換後のサイズ≦指定のサイズ | 選択条件値のバイトサイズが選択条件ノードのサイズ以下になるように指定してください。 | |
整数部桁+小数部桁が34桁以下の実数か。 | 選択条件値に有効桁数が34桁以内の数値を指定してください。 | |
小数部桁は「小数部桁数」に指定した範囲内か。 | 選択条件値の小数部の桁数を小数部桁数以下で指定してください。 | |
単純内容要素の符号の設定が「カスタム」,かつ符号の有無が「なし」の場合に,条件値に負の値を設定していないか。 | 選択条件値に正の値を指定してください。 | |
パック形式数値 | 指定した文字列の形式はnまたはn.mか。※1 | 選択条件値に選択条件ノードのデータ種別と一致した文字列を指定してください。 |
次の式を満たすか。 パック形式に変換後のサイズ≦指定のサイズ | 選択条件値のバイトサイズが選択条件ノードのサイズ以下になるように指定してください。 | |
整数部桁+小数部桁が34桁以下の実数か。 | 選択条件値に有効桁数が34桁以内の数値を指定してください。 | |
小数部桁は「小数部桁数」に指定した範囲内か。 | 選択条件値の小数部の桁数を小数部桁数以下で指定してください。 | |
単純内容要素の符号の設定が「カスタム」,かつ符号の有無が「なし」の場合に,条件値に負の値を設定していないか。 | 選択条件値に正の値を指定してください。 | |
符号付き2進整数 | 指定した文字列の形式はnまたは-nか。※1 | 選択条件値に選択条件ノードのデータ種別と一致した文字列を指定してください。 |
サイズが1バイトの場合,次の式を満たす整数か。 -27≦値≦27-1 | 選択条件値に有効な値を指定してください。 | |
サイズが2バイトの場合,次の式を満たす整数か。 -215≦値≦215-1 | 選択条件値に有効な値を指定してください。 | |
サイズが4バイトの場合,次の式を満たす整数か。 -231≦値≦231-1 | 選択条件値に有効な値を指定してください。 | |
サイズが8バイトの場合,次の式を満たす整数か。 -263≦値≦263-1 | 選択条件値に有効な値を指定してください。 | |
符号なし2進整数 | 指定した文字列の形式はnか。※1 | 選択条件値に選択条件ノードのデータ種別と一致した文字列を指定してください。 |
サイズが1バイトの場合,次の式を満たす整数か。 0≦値<28 | 選択条件値に有効な値を指定してください。 | |
サイズが2バイトの場合,次の式を満たす整数か。 0≦値<216 | 選択条件値に有効な値を指定してください。 | |
サイズが4バイトの場合,次の式を満たす整数か。 0≦値<232 | 選択条件値に有効な値を指定してください。 | |
サイズが8バイトの場合,次の式を満たす整数か。 0≦値<264 | 選択条件値に有効な値を指定してください。 | |
バイト列 | 指定した文字列の形式は0~9,a~f,A~Fか。 | 選択条件値に選択条件ノードのデータ種別と一致した文字列を指定してください。 |
次の式を満たすか。 バイト変換後のサイズ=指定のサイズ | 条件値のバイトサイズが選択条件ノードのバイトサイズと同じになるように定義してください。 | |
日付時刻 | 形式がCCYYMMDDの場合,指定した文字列形式はCCYYMMDDか。 | 選択条件値に選択条件ノードのデータ種別と一致した文字列を指定してください。 |
形式がYYMMDDの場合,指定した文字列形式はYYMMDDか。 | 選択条件値に選択条件ノードのデータ種別と一致した文字列を指定してください。 | |
形式がhhmmssの場合,指定した文字列形式はhhmmssか。 | 選択条件値に選択条件ノードのデータ種別と一致した文字列を指定してください。 | |
形式がCCYYMMDDhhmmssの場合,指定した文字列形式はCCYYMMDDhhmmssか。 | 選択条件値に選択条件ノードのデータ種別と一致した文字列を指定してください。 | |
形式がYYMMDDhhmmssの場合,指定した文字列形式はYYMMDDhhmmssか。 | 選択条件値に選択条件ノードのデータ種別と一致した文字列を指定してください。 | |
秒小数点の指定は,秒小数点の桁数と一致するか。 | 選択条件値の秒小数点桁数と選択条件ノードに指定した値を一致させてください。 | |
指定した日付時刻は正しい日付時刻か。 | 選択条件値に正しい日付時刻を指定してください。 |
表4-9 パスが不正である場合の原因と対処
パス不正の原因 | 対処 |
---|---|
選択条件,出現回数,またはサイズノードに指定したパスのノードが定義上から削除されている。 | 選択条件,出現回数,またはサイズノードを指定し直してください。 |
選択条件,出現回数,またはサイズノードを指定したあとに,階層構造が変更された。 | 選択条件,出現回数,またはサイズノードを指定し直してください。 |
選択条件,出現回数,またはサイズノードに指定したパスが,設定先の要素よりもあとに出現する。 | 選択条件,出現回数,またはサイズノードに,設定先より前に出現する要素を指定してください。 |
ノードパス設定先のノードを参照する構成要素が複数定義されている。 | ノードパス設定先を参照する構成要素を一つにしてください。 |
絶対パスの最上位要素がルート要素ではない。 | ルート要素を絶対パスの最上位要素に設定するか,パスを設定し直してください。 |
設定元のノードの祖先に基準ノードが存在しない。 | ノードパスを設定し直してください。 |
基準パスの基準ノードが逐次構成の要素ではない。 | 基準ノードが逐次構成になるパスを設定してください。 |
パスと設定元のノードの共通の親が,選択構成の複合内容である。 | パスと設定元のノードの共通の親を逐次構成の複合内容に設定してください。 |
検証方法には,次の二つがあります。検証方法によって検証される内容は異なります。詳細については,「4.4.6(1) 検証内容」を参照してください。
検証結果の表示については,「4.4.6(3) 検証結果の表示」を参照してください。
検証を実施した結果は,画面およびダイアログ上に表示されます。
ダイアログの入力時の自動検証の結果は,バイナリフォーマット定義に関連するダイアログの[インフォメーション]に表示されます。問題がない場合は,何も表示されません。
バイナリフォーマット定義に関連するダイアログについては,マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.1 バイナリフォーマット定義画面」を参照してください。
検証の結果が画面に表示されます。
画面の表示内容については,次の個所を参照してください。