다음 표는 COBOL 정의가 메시지 모델에서 XML 스키마 설정값에 영향을 미치는 방식을 표시합니다.
COBOL 절 | XML 스키마 데이터 유형 | 참고 |
---|---|---|
PIC A | xsd:string - | |
PIC G | xsd:string - | 이를 처리하려면 컴파일 시간 로케일 이름을 Windows - 환경설정 - 임포터 - COBOL에서 ja_JP로 설정하십시오. |
PIC N | xsd:string - | 이를 처리하려면 컴파일 시간 로케일 이름을 Windows - 환경설정 - 임포터 - COBOL에서 ja_JP로 설정하십시오. |
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진수(External Decimal) | 길이 = n 길이 단위 = 바이트 |
조정 = 오른쪽 맞추기 패딩 문자 = '0' 사인됨 = Unticked 사인 방향 = 후미 문자 |
PIC 9(n) COMP, COMP-4, COMP-5 or BINARY | 정수 | 길이 = n에 근거한 2, 4 또는 8 길이 단위 = 바이트 |
사인됨 = Unticked 사인 방향 = 공백 |
PIC 9(n) COMP-3 n=1-18 | Packed Decimal | 길이 = CEILING((n+1)/2) 길이 단위 = 바이트 |
사인됨 = Unticked 사인 방향 = 공백 |
PIC S9(n) DISPLAY n=1-31 | 외부 10진수(External Decimal) | 길이 = n 길이 단위 = 바이트 |
사인됨 = Ticked 사인 방향 = 후미 문자 *주 1 참조 |
PIC S9(n) COMP 또는 COMP-3 n=1-18 |
정수 또는 Packed Decimal | 길이 = 위의 COMP 및 COMP-3 정의 참조 길이 단위 = 바이트 |
사인됨 = Ticked 사인 방향 = 공백 |
PIC 9(m)V9(n) DISPLAY n=1-31 | 외부 10진수(External Decimal) | 길이 = n+m 길이 단위 = 바이트 |
사인됨 = Unticked 사인 방향 = 후미 문자 가상 소수점 = n |
PIC 9(m)V9(n) COMP 또는 COMP-3 | 정수 또는 Packed Decimal | 길이 = COMP-3의 CEILING((n+m+1)/2) 길이 = COMP의 2, 4 또는 8 길이 단위 = 바이트 |
사인됨 = Unticked 사인 방향 = 공백 가상 소수점 = n |
COMP-1 | Float | 길이 = 4 길이 단위 = 바이트 |
사인됨 = Ticked 사인 방향 = 공백 |
COMP-2 | Float | 길이 = 8 길이 단위 = 바이트 |
사인됨 = Ticked 사인 방향 = 공백 |
SYNC | Float, 정수 또는 Packed Decimal | 적절한 선두 문자 건너뛰기 수 적절한 후미 문자 건너뛰기 수 적절한 바이트 맞추기 *주 2 참조 |
|
선두 문자 건너뛰기 수 및 후미 문자 건너뛰기 수는 SYNC 절과는 별도로 임포터로 들여온 각 요소별로 계산됩니다. SYNC 절이 있는 경우 0이 아닌 값을 갖습니다.
반복 요소가 있고 선두 문자 건너뛰기 수 및 후미 문자 건너뛰기 수가 반복 요소의 첫 번째 발생항목에 사용되는 경우, 후속 발생항목에 대해서는 후미 문자 건너뛰기 수만 사용됩니다.
바이트 맞추기를 필요로 하는 필드에 대한 자세한 내용은 COBOL 참조 자료를 참조하십시오.
WebSphere Message Broker의 사용자 정의 Wire 형식(CWF) 구성요소는 External Decimal(Zoned Decimal이라고도 함) 데이터 형식을 사용한 숫자 데이터 모델화 지원을 제공합니다. 이 형식에서, 숫자는 내부적으로 10진수 문자 데이터로 저장됩니다. 예를 들면, EBCDIC 코드를 사용하는 시스템에서 4바이트 External Decimal 필드에 저장된 숫자 1234는 문자열 "1234"로 저장되고 실제 내부 16진 표현은 F1F2F3F4가 됩니다.
부호가 있는 External Decimal 숫자에서 첫 번째 또는 마지막 바이트의 전반부를 수정함으로써 부호를 실제 데이터에 포함시킬 수 있습니다(부호 선두 문자 또는 부호 후미 문자 표현을 사용하는지 여부에 따라 다름). 일반적으로, '0xC'는 양수를 표현하는 데 사용되고 '0xD'는 음수를 표현하는 데 사용되며, '0xF'는 부호가 없는 숫자를 표현하는 데 사용됩니다.
ASCII 시스템에는 External Decimal 데이터의 내부 표현에 사용되는 여러 메커니즘이 있습니다. IBM의 pSeries 시스템에 의해 사용되는 한 가지 표현('부호 ASCII')은, 부호가 없는 숫자와 양수의 첫 번째/마지막 숫자에 대해서는 정상 ASCII 코드("0" [hex 30] - "9" [hex 39])를 사용하고, 음수에 대해서는 "p" [hex 70] - "y" [hex 79]를 사용합니다.
일부 다른 ASCII 기반 시스템에서는 대체 메소드(부호 EBCDIC 사용자 정의)가 사용됩니다. 이 메소드는 실제 내부 16진 표현이 다른 경우에도 EBCDIC 기반 시스템과 같은 문자를 사용합니다. 이 기술을 사용하면 EBCDIC 및 ASCII 플랫폼에 대한 캐릭터 문자열이 동일합니다. EBCDIC 플랫폼에서 메시지를 수신할 수도 있으며(PIC XXX 및 PIC S999와 같은 항목을 포함하는 COBOL 사본으로부터 작성됨), 전체 메시지를 ASCII로 변환하거나 반대로 변환할 수도 있습니다. 메시지의 External Decimal 필드를 표현하는 캐릭터 문자열 (ASCII/EBCDIC 변환 후)은 10진수의 올바른 부호를 나타내는 코드 포인트로 맵핑됩니다. 이 메소드에 제한사항이 있음을 유의해야 합니다. 중괄호 문자는 가변적입니다. (즉, 다른 EBCDIC 코드페이지에서 다른 코드 포인트를 갖습니다.) 이 메커니즘은 중괄호 문자 '{' 및 '}'(부호가 있는 0을 표현하는 데 사용)가 정확히 코드 포인트 x'C0' 및 x'D0'를 갖는 EBCDIC 코드 페이지에서만 작동합니다. 예를 들면, 코드 페이지 500에서는 작동하지만 중괄호 코드 포인트가 X'8E' 및 X'9C인 코드 페이지 871에서는 작동하지 않습니다.
ASCII 환경에서(런타임 시 CCSID 등록 정보에 의해 판별), 입력 및 출력의 디폴트값은 '부호 ASCII' 표현입니다. CWF 물리적 계층에서 10진수, Float 및 정수 유형의 로컬 속성 및 로컬 요소에 적용되는 표현을 지정할 수 있습니다.
아래 표는 각각 선두 문자 또는 후미 문자가 포함된(임베드된) External Decimal 숫자의 첫 번째 또는 마지막 숫자에 대한 내부 표현(문자 및 실제 16진 값)을 보여줍니다. (주: 테이블에서 ASCII의 경우 0x30-0x39이고 EBCDIC의 경우 0xF0-0xF9인 부호가 없는 값에 대한 표현은 제공하지 않습니다.)
양의 부호 값 | 음의 부호 값 | ||||||
ASCII 환경 | EBCDIC 환경 | ASCII 환경 | EBCDIC 환경 | ||||
숫자 | 부호 ASCII | 부호 EBCDIC 사용자 정의 | 부호 ASCII | 부호 EBCDIC 사용자 정의 | |||
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진수 값 | 부호 ASCII | 부호 EBCDIC 사용자 정의 | 부호 ASCII | 부호 EBCDIC 사용자 정의 | ||
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 |