ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Service Bus開発者ガイド
11gリリース1 (11.1.1.6.2)
B61435-05
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

21 Format Builderのサポート対象のデータ型

この章では、Format Builderでサポートされるデータ型について説明します。

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

21.1 MFLのデータ型

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

表21-1 サポートされるMFLデータ型

データ型 説明

Binary (Base64エンコーディング)

任意の文字の値を入力できます。長さ、長さフィールド、デリミタ、またはデリミタ・フィールドが必要です。このフィールドの変換後のXMLデータはbase-64でエンコードされています。

Binary (16進数エンコーディング)

任意の文字の値を入力できます。長さ、長さフィールド、デリミタ、またはデリミタ・フィールドが必要です。このフィールドの変換後の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バイト、ビッグ・エンディアン

IEEE標準754に準拠する4バイト・ビッグ・エンディアンの浮動小数点数。

FloatingPoint: 4バイト、リトル・エンディアン

IEEE標準754に準拠する4バイト・リトル・エンディアンの浮動小数点数。

FloatingPoint: 8バイト、ビッグ・エンディアン

IEEE標準754に準拠する8バイト・ビッグ・エンディアンの浮動小数点数。

FloatingPoint: 8バイト、リトル・エンディアン

IEEE標準754に準拠する8バイト・リトル・エンディアンの浮動小数点数。

Integer: 符号付き、1バイト

1バイトの符号付き整数(例: 56は0x38)。

Integer: 符号なし、1バイト

1バイトの符号なし整数(例: 128は0x80)。

Integer: 符号付き、2バイト、ビッグ・エンディアン

ビッグ・エンディアン・フォーマットの2バイトの符号付き整数(例: 4660は0x1234)。

Integer: 符号付き、4バイト、ビッグ・エンディアン

ビッグ・エンディアン・フォーマットの4バイトの符号付き整数(例: 4660は0x00001234)。

Integer: 符号付き、8バイト、ビッグ・エンディアン

ビッグ・エンディアン・フォーマットの8バイトの符号付き整数(例: 4660は0x0000000000001234)。

Integer: 符号なし、2バイト、ビッグ・エンディアン

ビッグ・エンディアン・フォーマットの2バイトの符号なし整数(例: 65000は0xFDE8)。

Integer: 符号なし、4バイト、ビッグ・エンディアン

ビッグ・エンディアン・フォーマットの4バイトの符号なし整数(例: 65000は0x0000FDE8)。

Integer: 符号なし、8バイト、ビッグ・エンディアン

ビッグ・エンディアン・フォーマットの8バイトの符号なし整数(例: 65000は0x000000000000FDE8)。

Integer: 符号付き、2バイト、リトル・エンディアン

リトル・エンディアン・フォーマットの2バイトの符号付き整数(例: 4660は0x3412)。

Integer: 符号付き、4バイト、リトル・エンディアン

リトル・エンディアン・フォーマットの4バイトの符号付き整数(例: 4660は0x34120000)

Integer: 符号付き、8バイト、リトル・エンディアン

リトル・エンディアン・フォーマットの8バイトの符号付き整数(例: 4660は0x3412000000000000)。

Integer: 符号なし、2バイト、リトル・エンディアン

リトル・エンディアン・フォーマットの2バイトの符号なし整数(例: 65000は0xE8FD)。

Integer: 符号なし、4バイト、リトル・エンディアン

リトル・エンディアン・フォーマットの4バイトの符号なし整数(例: 65000は0xE8FD0000)。

Integer: 符号なし、8バイト、リトル・エンディアン

リトル・エンディアン・フォーマットの8バイトの符号なし整数(例: 65000は0xE8FD000000000000)。

Literal

value属性の内容によって決定されるリテラル値。非XMLデータからXMLへの変換時、指定されたリテラルが非XMLデータに存在するかどうかがWLXTによって検証されます。リテラルは読み込まれるがXMLデータには変換されません。XMLデータから非XMLフォーマットへの変換で、リテラルが非XMLフォーマットの一部として定義されている場合、リテラルは変換後の非XMLバイト・ストリームに書き込まれます。

Numeric

数値(0 - 9)のみの文字列。長さ、長さフィールド、デリミタ、またはデリミタ・フィールドが必要です。

Packed Decimal: 符号付き

IBMの符号付きパック形式。長さ、長さフィールド、デリミタ、またはデリミタ・フィールドを指定する必要があります。長さまたは長さフィールドでは、このフィールドのサイズをバイト単位で指定する必要があります。

Packed Decimal: 符号なし

IBMの符号なしパック形式。長さ、長さフィールド、デリミタ、またはデリミタ・フィールドを指定する必要があります。長さまたは長さフィールドでは、このフィールドのサイズをバイト単位で指定する必要があります。

String

文字列。長さ、長さフィールド、デリミタ、またはデリミタ・フィールドが必要です。Stringデータ型に長さ、長さフィールド、デリミタのいずれも指定されていない場合は、「\x00」(NUL文字)が指定されているものと見なされます。

String: NULで終了

固定長フィールド内に含まれ、必要に応じて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: 先行符号

符号付きゾーン10進数形式(US-ASCIIまたはEBCDIC)。符号は最初のニブルに含まれます。長さ、長さフィールド、デリミタ、またはデリミタ・フィールドを指定する必要があります。長さまたは長さフィールドでは、このフィールドのサイズをバイト単位で指定する必要があります。

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

Zoned Decimal: 先行分離符号

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

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

Zoned Decimal: 符号付き

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

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

Zoned Decimal: 後続分離符号

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

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

Zoned Decimal: 符号なし

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

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


21.2 COBOL Copybook Importerのデータ型

表21-2は、COBOLのデータ型とImporterによるサポートの有無を示します。これらのデータ型のサポートには制限があります。次のフォーマット:

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

は、4バイトの符号なし整数に変換されます。一方、以下のフォーマットではエラーが生成されます:

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

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

表21-2 COBOLのデータ型

COBOLの型 サポート

BLANK WHEN ZERO (ゾーン10進数)

サポートされます

COMP-1、COMP-2(浮動小数点)

サポートされます

COMP-3、PACKED-DECIMAL

サポートされます

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型のフィールド

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

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