以下の表は、COBOL 定義がメッセージ・モデル内の XML スキーマ設定値にどのような影響を与えるかを示しています。
COBOL 文節 | XML スキーマのデータ・タイプ | 注 |
---|---|---|
PIC A | xsd:string - | |
PIC G | xsd:string - | これを処理するには、コンパイル時のロケール名を ja_JP に設定します (「ウィンドウ」-「設定」-「インポーター」-「COBOL」)。 |
PIC N | xsd:string - | これを処理するには、コンパイル時のロケール名を ja_JP に設定します (「ウィンドウ」-「設定」-「インポーター」-「COBOL」)。 |
PIC X | xsd:string - | |
PIC 9(n) n = 1-4 | xsd:short - | DISPLAY、COMP、または COMP-3 |
PIC 9(n) n = 5-9 | xsd:int - | DISPLAY、COMP、または COMP-3 |
PIC 9(n) n = 10-18 | xsd:long - | DISPLAY、COMP、または COMP-3 |
PIC 9(n) n = 19-31 | xsd:integer - | DISPLAY、COMP、または COMP-3 |
PIC 9(n)V9(m) | xsd:decimal - | DISPLAY、COMP、または COMP-3 の任意の仮想小数点値 |
COMP-1 | xsd:float - | |
COMP-2 | xsd:double - | |
任意の編集済みストリング | xsd:string - | |
任意の編集済み数値 | xsd:string - | 例えば、PIC Z |
VALUE | すべて | 非 88 レベルの VALUE 文節は、スキーマ・デフォルト値 (インポート・ウィザードでのオプション) としてインポートできます。 |
以下の表は、COBOL 定義がメッセージ・モデル内で生成されたエレメントの物理 CWF 特性にどのような影響を与えるかを示しています。
COBOL キーワード | CWF 物理タイプ | CWF 長さ特性 | その他の CWF 特性 |
---|---|---|---|
PIC X(n)
PIC A(n) |
固定長ストリング | 長さ = n
長さの単位 = バイト |
位置調整 = 左そろえ 埋め込み文字 = SPACE |
PIC G(n) PIC N(n) |
固定長ストリング | 長さ = n
長さの単位 = 文字 |
位置調整 = 左そろえ 埋め込み文字 = SPACE |
PIC 9(n) DISPLAY n=1-31 | 外部 10 進数 | 長さ = n
長さの単位 = バイト |
位置調整 = 右そろえ 埋め込み文字 = '0' 記号 = 印なし 記号の方向 = 末尾 |
PIC 9(n) COMP、COMP-4、COMP-5、または BINARY | 整数 | 長さ = n に基づいて 2、4 または 8 長さの単位 = バイト |
記号 = 印なし
記号の方向 = ブランク |
PIC 9(n) COMP-3 n=1-18 | パック 10 進数 | 長さ = CEILING((n+1)/2)
長さの単位 = バイト |
記号 = 印なし
記号の方向 = ブランク |
PIC S9(n) DISPLAY n=1-31 | 外部 10 進数 | 長さ = n
長さの単位 = バイト |
記号 = 印あり
記号の方向 = 末尾 * 注 1 を参照 |
PIC S9(n) COMP または COMP-3
n=1-18 |
整数またはパック 10 進数 | 長さ = 上記の COMP および COMP-3 定義を参照
長さの単位 = バイト |
記号 = 印あり
記号の方向 = ブランク |
PIC 9(m)V9(n) DISPLAY n=1-31 | 外部 10 進数 | 長さ = n+m
長さの単位 = バイト |
記号 = 印なし
記号の方向 = 末尾 仮想小数点 = n |
PIC 9(m)V9(n) COMP または COMP-3 | 整数またはパック 10 進数 | 長さ = COMP-3 の場合、CEILING((n+m+1)/2)
長さ = COMP の場合、2、4 または 8 長さの単位 = バイト |
記号 = 印なし
記号の方向 = ブランク 仮想小数点 = n |
COMP-1 | Float | 長さ = 4
長さの単位 = バイト |
記号 = 印あり
記号の方向 = ブランク |
COMP-2 | Float | 長さ (Length) = 8
長さの単位 = バイト |
記号 = 印あり
記号の方向 = ブランク |
SYNC | 浮動、整数、またはパック 10 進数 | 適切な、先頭スキップ・カウント
適切な、末尾スキップ・カウント 適切な、バイト位置合わせ * 注 2 を参照 |
|
先頭スキップ・カウントおよび末尾スキップ・カウントは、SYNC 文節に関係なく、インポーターによりインポートされる各エレメントごとに 計算されます。 SYNC 文節が存在する場合はゼロでない値はありません。
反復エレメントがある場合、先頭スキップ・カウントおよび末尾スキップ・カウントが反復エレメントの最初の発生に使用され、後続する発生には末尾スキップ・カウントのみが使用されます。
バイト位置合わせの必要なフィールドの詳細については、COBOL の参照資料を参照してください。
WebSphere Message Broker のカスタム・ワイヤー形式 (CWF) コンポーネントは、外部 10 進 (ゾーン 10 進とも呼ばれる) データ形式を使用する数値データのモデリングのサポートを提供します。 この形式では、数値は 10 進文字データとして内部的に保管されます。 例えば、EBCDIC コードを使用するシステムでは、4 バイトの外部 10 進フィールドで保管される数値 1234 は、文字ストリング "1234" として保管され、その実際の内部 16 進表記は F1F2F3F4 になります。
符号付き外部 10 進数を使用すると、最初または最後のバイト (符号を先頭に付ける表記か、最後に付ける表記かによって異なる) の最初の部分を修正することによって、実際のデータに符号を取り込むことができます。 通常、'0xC' は正の数値、'0xD' は 負の数値、および '0xF' は符号なしの数値を表記するのに使用されます。
ASCII マシンでは、外部 10 進データの内部表記用に、多くのメカニズムがあります。 IBM の pSeries マシンが使用する 1 つの表記 ('Sign ASCII') は、符号なしおよび正の数値の両方で、最初/最後の桁に通常の ASCII コード ("0" [hex 30] から "9" [hex 39]) を、負の数値に文字 "p" [hex 70] から "y" [hex 79] を使用します。
その他の ASCII ベースのマシンでは、別の方法 (Sign EBCDIC Custom) が使用されます。 これは、実際の内部 16 進表記が異なる場合でも、EBCDIC ベースのマシンと同じ文字を使用します。 この技法を使用すると、EBCDIC および ASCII プラットフォームの両方の文字ストリングは等しくなります。 EBCDIC プラットフォームからのメッセージ (PIC XXX および PIC S999 などのエントリーを含む COBOL コピーブックから作成) を受け取って、メッセージ全体を ASCII または他の方法で変換することもおそらく可能です。 メッセージ中の外部 10 進フィールドを表す文字ストリング (ASCII/EBCDIC 変換後) は、10 進数の正しい符号を表すコード・ポイントにマップします。 このメソッドには制限があることに注意する必要があります。 中括弧文字は可変です (つまり、異なる EBCDIC コード・ページでは、コード・ポイントが異なります。)このメカニズムは、中括弧 '{' および '}' (符号付き 0 を表すのに使用) のコード・ポイントが正確に x'C0' および x'D0' である EBCDIC コード・ページでのみ有効です。例えば、コード・ページ 500 では有効ですが、中括弧のコード・ポイントが X'8E' および X'9C であるコード・ページ 871 には無効です。
ASCII 環境 (ランタイムに CCSID のプロパティーにより決定) では、入出力両方のデフォルトは 'Sign ASCII' 表記です。 タイプ 10 進、浮動、および整数のローカル属性およびローカル・エレメント用に、CWF 物理層で適用可能な表記を指定できます。
以下の表は、それぞれ組み込み (埋め込み) 先頭または末尾記号を持つ外部 10 進数値の最初または最後の桁の内部表記 (文字と実際の 16 進値の両方) を示しています。 (注: 表では、ASCII の場合は 0x30-0x39、EBCDIC の場合は 0xF0-0xF9 である符号なしの値の表記は指定しません)
正符号付きの値 | 負符号付きの値 | ||||||
ASCII 環境 | EBCDIC 環境 | ASCII 環境 | EBCDIC 環境 | ||||
桁 | Sign ASCII | Sign EBCDIC Custom | Sign ASCII | Sign EBCDIC Custom | |||
0 | 0(30) | {(7B) | {(C0) | p(70) | }(7D) | }(D0) | |
1 | 1(31) | A(41) | A(C1) | q(71) | J(4A) | J(D1) | |
2 | 2(32) | B(42) | B(C2) | r(72) | K(4B) | K(D2) | |
3 | 3(33) | C(43) | C(C3) | s(73) | L(4C) | L(D3) | |
4 | 4(34) | D(44) | D(C4) | t(74) | M(4D) | M(D4) | |
5 | 5(35) | E(45) | E(C5) | u(75) | N(4E) | N(D5) | |
6 | 6(36) | F(46) | F(C6) | v(76) | O(4F) | O(D6) | |
7 | 7(37) | G(47) | G(C7) | w(77) | P(50) | P(D7) | |
8 | 8(38) | H(48) | H(C8) | x(78) | Q(51) | Q(D8) | |
9 | 9(39) | I(49) | I(C9) | y(79) | R(52) | R(D9) |
次の表は、これらのアプローチを使用して伝送または受信可能なものを表す、単純な数値の範囲の例を示します。
先頭の符号 | 末尾の符号 | |||||
ASCII 環境 | EBCDIC 環境 | ASCII 環境 | EBCDIC 環境 | |||
10 進値 | Sign ASCII | Sign EBCDIC Custom | Sign ASCII | Sign EBCDIC Custom | ||
1234 | 31 32 33 34 |
31 32 33 34 |
F1 F2 F3 F4 |
31 32 33 34 |
31 32 33 34 |
F1 F2 F3 F4 |
+1234 | 31 32 33 34 |
41 32 33 34 |
C1 F2 F3 F4 |
31 32 33 34 |
31 32 33 44 |
F1 F2 F3 C4 |
-1234 | 71 32 33 34 |
4A 32 33 34 |
D1 F2 F3 F4 |
31 32 33 74 |
31 32 33 4D |
F1 F2 F3 D4 |
7890 | 37 38 39 30 |
37 38 39 30 |
F7 F8 F9 F0 |
37 38 39 30 |
37 38 39 30 |
F7 F8 F9 F0 |
+7890 | 37 38 39 30 |
47 38 39 30 |
C7 F8 F9 F0 |
37 38 39 30 |
37 38 39 7B |
F7 F8 F9 C0 |
-7890 | 77 38 39 30 |
50 38 39 30 |
D7 F8 F9 F0 |
37 38 39 70 |
37 38 39 7D |
F7 F8 F9 D0 |