Format Builder の使用

     前  次    新しいウィンドウで目次を開く     
ここから内容

サポート対象のデータ型

この節では、以下のトピックを扱います。

 


MFL のデータ型

表 A-1 は、データ トランスフォーマでサポートされている MFL のデータ型を示します。これらのデータ型は FieldFormat 要素の "type" 属性で指定します。

表 A-1 サポート対象の MFL のデータ型
データ型
説明
Binary (Base64 encoding)
任意の文字の値を入力できる。長さ、長さフィールド、区切り記号、または区切り記号フィールドが必要。このフィールドの変換後の XML データは base-64 でエンコードされている。
Binary (Hex encoding)
任意の文字の値を入力できる。長さ、長さフィールド、区切り記号、または区切り記号フィールドが必要。このフィールドの変換後の XML データは base-16 でエンコードされている。
Date: DD-MMM-YY
日付を定義する文字列 (例 : 22-JAN-00)。
Date: DD-MMM-YYYY
日付を定義する文字列 (例 : 22-JAN-2000)。
Date: DD/MM/YY
日付を定義する文字列 (例 : 22/01/00)。
Date: DD/MM/YYYY
日付を定義する文字列 (例 : 22/01/2000)。
Date: DDMMMYY
日付を定義する文字列 (例 : 22JAN00)。
Date: DDMMMYYYY
日付を定義する文字列 (例 : 22JAN2000)。
Date: MM/DD/YY
日付を定義する文字列 (例 : 01/22/00)。
Date: MM/DD/YYYY
日付を定義する文字列 (例 : 01/22/2000)。
Date: MMDDYY
日付を定義する 6 桁の数字列 (例 : 012200)。
Date: MMDDYYYY
日付を定義する 8 桁の数字列 (例 : 01222000)。
Date: MMM-YY
日付を定義する文字列 (例 : JAN-00)。
Date: MMM-YYYY
日付を定義する文字列 (例 : JAN-2000)。
Date: MMMDDYYYY
日付を定義する文字列 (例 : JAN222000)。
Date: MMMYY
日付を定義する文字列 (例 : JAN00)。
Date: MMMYYYY
日付を定義する文字列 (例 : JAN2000)。
Date: Wed Nov 15 10:55:37 CST 2000
Java プラットフォームのデフォルトの日付フォーマット (例 : 'WED NOV 15 10:55:37 CST 2000')。
Date: YY-MM-DD
日付を定義する文字列 (例 : 00/01/22。この文字列で定義される日付は 2000 年 1 月 22 日)。
Date: YY/MM/DD
日付を定義する文字列 (例 : 00/01/22。この文字列で定義される日付は 2000 年 1 月 22 日)。
Date: YYMMDD
日付を定義する文字列 (例 : 000122。この文字列で定義される日付は 2000 年 1 月 22 日)。
Date: YYYY-MM-DD
日付を定義する文字列 (例 : 2000/01/22。この文字列で定義される日付は 2000 年 1 月 22 日)。
Date: YYYY/MM/DD
日付を定義する文字列 (例 : 2000/01/22。この文字列で定義される日付は 2000 年 1 月 22 日)。
Date: YYYYMMDD
YYYYMMDD フォーマットの 8 バイトの数字列。文字エンコーディングを表す String または EBCDIC の基本データ型を指定できる。
DateTime: DD/MM/YY hh:mm
日付と時刻を定義する文字列 (例 : 22/01/00 12:24)。
DateTime: DD/MM/YY hh:mm AM
日付と時刻を定義する文字列 (例 : 22/01/00 12:24 AM)。
DateTime: DD/MM/YY hh:mm:ss
日付と時刻を定義する文字列 (例 : 22/01/00 12:24:00)。
DateTime: DD/MM/YY hh:mm:ss AM
日付と時刻を定義する文字列 (例 : 22/01/00 12:24:00 AM)。
DateTime: MM/DD/YY hh:mm
日付と時刻を定義する文字列 (例 : 01/22/00 12:24)。
DateTime: MM/DD/YY hh:mi AM
日付と時刻を定義する文字列 (例 : 01/22/00 12:24 AM)。
DateTime: MM/DD/YY hh:mm:ss
日付と時刻を定義する文字列 (例 : 01/22/00 12:24:00)。
DateTime: MM/DD/YY hh:mm:ss AM
日付と時刻を定義する文字列 (例 : 01/22/00 12:24:00 AM)。
DateTime: MMDDYYhhmm
日付と時刻を定義する数字列 (例 : 0122001224)。
DateTime: YYYYMMDDhhmmss
YYYYMMDDHHMISS フォーマットの 14 バイトの数字列。基本データ型を指定できる。
DateTime: MMDDYYhhmmss
日付と時刻を定義する数字列 (例 : 012200122400)。
EBCDIC
IBM の Extended Binary Coded Decimal Interchange Code の文字列。長さ、長さフィールド、区切り記号、または区切り記号フィールドが必要。
Filler
XML に変換されないバイト シーケンス。非 XML データから XML への変換では、このフィールドはスキップされる。XML から非 XML データへの変換では、このフィールドはスペースのシーケンスとしてバイナリ出力ストリームに書き込まれる。
FloatingPoint: 4 bytes, Big-Endian
IEEE 標準 754 に準拠する 4 バイト ビッグ エンディアンの浮動小数点数。
FloatingPoint, 4 bytes, Little-Endian
IEEE 標準 754 に準拠する 4 バイト リトル エンディアンの浮動小数点数。
FloatingPoint: 8 bytes, Big-Endian
IEEE 標準 754 に準拠する 8 バイト ビッグ エンディアンの浮動小数点数。
FloatingPoint: 8 bytes, Little-Endian
IEEE 標準 754 に準拠する 8 バイト リトル エンディアンの浮動小数点数。
Integer: Signed, 1 byte
1 バイトの符号付き整数 (例 : 56 は 0x38)。
Integer: Unsigned, 1 byte
1 バイトの符号なし整数 (例 : 128 は 0x80)。
Integer: Signed, 2 byte, Big-Endian
ビッグ エンディアン フォーマットの 2 バイトの符号付き整数 (例 : 4660 は 0x1234)。
Integer: Signed, 4 byte, Big-Endian
ビッグ エンディアン フォーマットの 4 バイトの符号付き整数 (例 : 4660 は 0x00001234)。
Integer: Signed, 8 bytes, Big-Endian
ビッグ エンディアン フォーマットの 8 バイトの符号付き整数 (例 : 4660 は 0x0000000000001234)。
Integer: Unsigned, 2 byte, Big-Endian
ビッグ エンディアン フォーマットの 2 バイトの符号なし整数 (例 : 65000 は 0xFDE8)。
Integer: Unsigned, 4 byte, Big-Endian
ビッグ エンディアン フォーマットの 4 バイトの符号なし整数 (例 : 65000 は 0x0000FDE8)。
Integer: Unsigned, 8 bytes, Big-Endian
ビッグ エンディアン フォーマットの 8 バイトの符号なし整数 (例 : 65000 は 0x000000000000FDE8)。
Integer: Signed, 2 bytes, Little-Endian
リトル エンディアン フォーマットの 2 バイトの符号付き整数 (例 : 4660 は 0x3412)。
Integer: Signed, 4 bytes, Little-Endian
リトル エンディアン フォーマットの 4 バイトの符号付き整数 (例 : 4660 は 0x34120000)
Integer: Signed, 8 bytes, Little-Endian
リトル エンディアン フォーマットの 8 バイトの符号付き整数 (例 : 4660 は 0x3412000000000000)。
Integer: Unsigned, 2 bytes, Little-Endian
リトル エンディアン フォーマットの 2 バイトの符号なし整数 (例 : 65000 は 0xE8FD)。
Integer: Unsigned, 4 bytes, Little-Endian
リトル エンディアン フォーマットの 4 バイトの符号なし整数 (例 : 65000 は 0xE8FD0000)。
Integer: Unsigned, 8 bytes, Little-Endian
リトル エンディアン フォーマットの 8 バイトの符号なし整数 (例 : 65000 は 0xE8FD000000000000)。
Literal
value 属性の内容によって決定されるリテラル値。非 XML データから XML への変換時、指定されたリテラルが非 XML データに存在するかどうかが WLXT によって検証される。リテラルは読み込まれるが XML データには変換されない。XML データから非 XML フォーマットへの変換で、リテラルが非 XML フォーマットの一部として定義されている場合、リテラルは変換後の非 XML バイト ストリームに書き込まれる。
Numeric
数値 (0 ~ 9) のみの文字列。長さ、長さフィールド、区切り記号、または区切り記号フィールドが必要。
Packed Decimal: Signed
IBM の符号付きパック形式。長さ、長さフィールド、区切り記号、または区切り記号フィールドを指定する必要がある。長さまたは長さフィールドでは、このフィールドのサイズをバイト単位で指定する必要がある。
Packed Decimal: Unsigned
IBM の符号なしパック形式。長さ、長さフィールド、区切り記号、または区切り記号フィールドを指定する必要がある。長さまたは長さフィールドでは、このフィールドのサイズをバイト単位で指定する必要がある。
String
文字列。長さ、長さフィールド、区切り記号、または区切り記号フィールドが必要。String データ型に長さ、長さフィールド、区切り記号のいずれも指定されていない場合は、「\x00」(NUL 文字) が指定されているものと見なされる。
String: NUL terminated
固定長フィールド内に含まれ、必要に応じて NUL (\x00) で終了される文字列。このフィールドのデータ型には、読み込むデータ量を決定する長さ属性または長さフィールドが必要。このデータの NUL 区切り記号の有無が調べられる。区切り記号が検出されるとそれ以降のデータが破棄される。NUL 区切り記号が存在しない場合、固定長データがフィールドの値として使用される。
Time: hhmmss
時刻を定義する文字列 (例 : 122400)。
Time: hh:mm AM
時刻を定義する文字列 (例 : 12:24 AM)。
Time: hh:mm
時刻を定義する文字列 (例 : 12:24)。
Time: hh:mm:ss AM
時刻を定義する文字列 (例 : 12:24:00 AM)。
Time: hh:mm:ss
時刻を定義する文字列 (例 : 12:24:00)。
Zoned Decimal: Leading sign
符号付きゾーン 10 進数形式 (US-ASCII または EBCDIC)。符号は最初のニブルに含まれる。長さ、長さフィールド、区切り記号、または区切り記号フィールドを指定する必要がある。長さまたは長さフィールドでは、このフィールドのサイズをバイト単位で指定する必要がある。

注意 : このデータ型は Message Format Language バージョン 2.02 の US-ASCII データでのみサポートされる。

Zoned Decimal: Leading separate sign
符号付きゾーン 10 進数形式 (US-ASCII または EBCDIC)。符号は最初のバイトに含まれる。最初のバイトには符号のみが含まれ、数値とは分離されている。長さ、長さフィールド、区切り記号、または区切り記号フィールドを指定する必要がある。長さまたは長さフィールドでは、このフィールドのサイズをバイト単位で指定する必要がある。

注意 : このデータ型は Message Format Language バージョン 2.02 の US-ASCII データでのみサポートされる。

Zoned Decimal: Signed
符号付きゾーン 10 進数形式 (US-ASCII または EBCDIC)。長さ、長さフィールド、区切り記号、または区切り記号フィールドを指定する必要がある。長さまたは長さフィールドでは、このフィールドのサイズをバイト単位で指定する必要がある。

注意 : このデータ型は Message Format Language バージョン 2.02 の US-ASCII データでのみサポートされる。

Zoned Decimal: Trailing separate sign
符号付きゾーン 10 進数形式 (US-ASCII または EBCDIC)。符号は最後のバイトに含まれる。最後のバイトには符号のみが含まれ、数値とは分離されている。長さ、長さフィールド、区切り記号、または区切り記号フィールドを指定する必要がある。長さまたは長さフィールドでは、このフィールドのサイズをバイト単位で指定する必要がある。

注意 : このデータ型は Message Format Language バージョン 2.02 の US-ASCII データでのみサポートされる。

Zoned Decimal: Unsigned
符号なしゾーン 10 進数形式 (US-ASCII または EBCDIC)。長さ、長さフィールド、区切り記号、または区切り記号フィールドを指定する必要がある。長さまたは長さフィールドでは、このフィールドのサイズをバイト単位で指定する必要がある。

注意 : このデータ型は Message Format Language バージョン 2.02 の US-ASCII データでのみサポートされる。

 


COBOL Copybook Importer のデータ型

表 A-2 は、COBOL のデータ型と Importer によるサポートの有無を示します。これらのデータ型のサポートには制限があります。以下のフォーマットは 4 バイトの符号なし整数に変換されます。

05 pic 9(5) comp-5
05 pic 9(5) comp-x

一方、以下のフォーマットではエラーが生成されます。

05 pic X(5) comp-5
05 pic X(5) comp-x

これらの例では、pic x(5) の代わりに pic9(5) を使用できます。

表 A-2 COBOL のデータ型
COBOL のデータ型
サポート
BLANK WHEN ZERO (ゾーン 10 進数)
サポート対象
COMP-1、COMP-2 (浮動小数点)
サポート対象
COMP-3、パック 10 進数
サポート対象
COMP、COMP-4、バイナリ (整数)
サポート対象
COMP、COMP-4、バイナリ (固定長)
サポート対象
COMP-5、COMP-X
サポート対象
DISPLAY (英数字)
サポート対象
DISPLAY 数値 (ゾーン 10 進数)
サポート対象
編集済み英数字
サポート対象
編集済み浮動小数点値
サポート対象
編集済み数値
サポート対象
グループ レコード
サポート対象
INDEX
サポート対象
JUSTIFIED RIGHT
無視
OCCURS (固定配列)
サポート対象
OCCURS DEPENDING (可変長)
サポート対象
OCCURS INDEXED BY
無視
OCCURS KEY IS
無視
POINTER
サポート対象
PROCEDURE-POINTER
サポート対象
REDEFINES
サポート対象
SIGN IS LEADING SEPARATE (ゾーン 10 進数)
サポート対象
SIGN IS TRAILING (ゾーン 10 進数)
サポート対象
SIGN IS TRAILING SEPARATE (ゾーン 10 進数)
サポート対象
SIGN IS LEADING (ゾーン 10 進数)
サポート対象
SYNCHRONIZED
無視
66 RENAMES
サポート対象外
66 RENAMES THRU
サポート対象外
77 レベル
サポート対象
88 レベル (条件付き)
無視

この表でのサポートの定義は次のとおりです。

Importer では、ベンダ固有の一部の拡張が認識されませんが、ANSI 標準 COBOL に準拠するコピーブック文はすべて正しく解析されます。Importer のデフォルトのデータ モデルは IBM のメインフレーム モデルに基づいており、Format Builder で変更することによって文字セットとデータの「エンディアン特性」を補正できます。

コピーブックのインポート時、フィールドは一般的なデータ型として識別されますが、目視で調べるとより詳細なデータ型を簡単に特定できる場合があります。そのため、Copybook Importer では、コピーブックで検出された各フィールドにコメントが作成されます。この情報は、MFL データを編集して元のコピーブックのデータをより適切に表す場合に役立ちます。以下に例を示します。

元のコピーブックのエントリ :

05 birth-date    picxx/xx/xx

インポート後 :

8 バイト長の EBCDIC 型のフィールド

詳しく調べると、このフィールドが日付フォーマットであり、以下のデータ型のフィールドとして定義できることがわかります。

Date: MM/DD/YY 型のフィールドまたは Data: DD/MM/YY 型のフィールド

 


サポートされていない C 言語機能

C Struct Importer ユーティリティでは、匿名ユニオン、ビット フィールド、またはインライン アセンブラ コードを含むファイルは解析されません。ここでは、#include <windows.h> 文を含む hello.c ファイルのプリプロセッサ出力の一部を例にサポートされていない機能を示します。


  ページの先頭       前  次