• 検索結果がありません。

アクセス情報フラグ

ドキュメント内 COBOL2002 XML連携機能ガイド (ページ 88-91)

3.2  入出力データ情報項目

3.2.1  アクセス情報フラグ

アクセス情報フラグには,入力した要素および属性の状態が格納されます。また,出力時にアクセス情報フ ラグを設定すると,要素および属性の出力状態を設定できます。アクセス情報フラグは 32 けたのブール項 目として,cblxml コマンドが生成する XML アクセス用データ定義に生成されます。

アクセス情報フラグに対応する COBOL のデータ項目の名称

Group 要素,Item 要素,または AttrItem 要素の nameOfFlagVar 属性に指定した名称が,アクセス 情報フラグに対応する COBOL のデータ項目の名称になります。

nameOfFlagVar 属性の指定を省略した場合は,cobName 属性(省略時は elemName 属性)の名称 に"-FLG"を追加した名称が,アクセス情報フラグに対応する COBOL のデータ項目の名称になります。

次に,アクセス情報フラグの値について,説明します。

(1) 入力時のアクセス情報フラグ

入力時に設定されるアクセス情報フラグの詳細を,表 3-3 に示します。なお,XML ドキュメント入力時に は,複数のフラグ値が設定される場合があります。

表 3‒3 入力時のアクセス情報フラグ 登録集原文"CBLXMLRC.cbl"の定義名

(78 レベル) アクセス情報フラグ値 アクセス情報フラグの意味

CBLXML-FLAG-MISSING B'100000〜0' 要素または属性がない。

CBLXML-FLAG-EMPTY B'010000〜0' 要素または属性の値が空である。※1

CBLXML-FLAG-INVAL-CHAR B'001000〜0' 要素または属性の値に Item 要素の type 属性に指定し た COBOL データ形式で無効な文字が含まれている。

※2

CBLXML-FLAG-OVERFLOW B'000100〜0' 要素,属性の値の長さが Item 要素の size 属性に指定し た値を超えている。※3

注※1

開始タグと終了タグ間の内容が空白文字(スペース,タブおよび改行)だけの場合でも空要素とみなし ません。空要素とみなすのは,空タグ,および開始タグと終了タグ間の内容がない(<Item></

Item>)場合だけです。

注※2

無効な文字と判定される条件を次に示します。

• type 属性に"national"を指定して,COBOL データ項目に 1 バイト文字を入力した場合

(不当な 1 バイト文字は,「 」(げた記号)に置き換えられます。「 」(げた記号)は 2 バイト 文字であるため,size 属性で指定した長さを超えて CBLXML-FLAG-OVERFLOW が同時に設定 される場合があります)

不当文字については「9.2 入出力時に不当な文字をチェックする機能」の「表 9-3 入力時にチェッ クする文字」を参照してください。

• type 属性に"numeric","packed","binary","float",または"double"を指定して,COBOL デー タ項目に数値以外の値を入力した場合

• sign 属性に"unsigned"を指定して,負値を入力した場合

(ただし,-0 は+0 が仮定されるため,このフラグは設定されません)

注※3

要素,属性の値の長さと Item 要素の size 属性に指定した値を比較する場合の条件を次に示します。

• 数字項目("numeric","packed","binary")については,数値の左側の 0 を削除したけた数と size 属性のけた数を比較して大小を判定します。ただし,符号はけた数に含みません。

• 浮動小数点数("float","double")については,システムで定義した浮動小数点数の絶対値を超え た場合に size 属性の値を超えたと判定されます。システムで定義した浮動小数点数の絶対値につい ては,ご使用のシステムのマニュアルを参照してください。

(2) 出力時のアクセス情報フラグ

出力時に設定するアクセス情報フラグの詳細を表 3-4 に示します。

表 3‒4 出力時のアクセス情報フラグ 登録集原文"CBLXMLRC.cbl"の定義名

(78 レベル) アクセス情報フラグ値 アクセス情報フラグの意味

CBLXML-FLAG-OK B'00000〜0' 要素または属性を出力する。

登録集原文"CBLXMLRC.cbl"の定義名

(78 レベル) アクセス情報フラグ値 アクセス情報フラグの意味

CBLXML-FLAG-MISSING B'10000〜0' 要素を出力しない。 CBLXML-FLAG-EMPTY B'01000〜0' 空要素を出力する。

注※

対応づけた要素が省略できる場合,または Array 要素の直下に Item 要素を対応づけた場合は,要素を 出力しません。ただし,次の場合は要素,属性,または空要素を出力します。

• 対応づけた要素が省略できない要素である場合,または対応づけた属性に#REQUIRED を指定した 場合

(CBLXML-FLAG-OK が仮定されて,要素を出力します)

• CBLXML-FLAG-MISSING と CBLXML-FLAG-EMPTY が同時に指定されている場合

(CBLXML-FLAG-EMPTY が仮定されて,空要素を出力します)

(3) nameOfFlagVar 属性の指定例

入出力データ情報定義機能を使用した場合の nameOfFlagVar 属性の指定例を次に示します。

指定例

(DTD の例)

<?xml version="1.0" encoding="Shift_JIS"?>

<!DOCTYPE root [

<!ELEMENT root (group01)>

<!ELEMENT group01 (item01)>

<!ELEMENT item01 (#PCDATA)>

]>

<root/>

(DDF の例)

<?xml version="1.0" encoding="Shift_JIS"?>

<Interface interfaceName="EXAMPLE" accessInfo="yes">

<BaseElement elemName="group01">

<Group elemName="group01"

nameOfFlagVar="G01-FLAG">

<Item elemName="item01"

nameOfFlagVar="I01-FLAG"

type="alphanumeric" size="10"/>

</Group>

</BaseElement>

</Interface>

(生成される COBOL データ項目)

01 group01-BASE.

02 group01.

03 item01 PIC X(10).

* Access Information.

02 G01-FLAG PIC 1(32) USAGE BIT.

02 group01-GROUP.

03 I01-FLAG PIC 1(32) USAGE BIT.

03 item01-LEN PIC 9(9) USAGE COMP.

(COBOL 原始プログラムでのアクセス情報フラグの判定例)

:

01 CHECK-FLAG PIC 1(32) BIT.

:

COMPUTE CHECK-FLAG = I01-FLAG AND CBLXML-FLAG-MISSING.

IF CHECK-FLAG = CBLXML-FLAG-MISSING THEN DISPLAY 'CBLXML-FLAG-MISSING'

END-IF.

COMPUTE CHECK-FLAG = I01-FLAG AND CBLXML-FLAG-EMPTY.

IF CHECK-FLAG = CBLXML-FLAG-EMPTY THEN DISPLAY 'CBLXML-FLAG-EMPTY'

END-IF.

COMPUTE CHECK-FLAG = I01-FLAG AND CBLXML-FLAG-INVAL-CHAR.

IF CHECK-FLAG = CBLXML-FLAG-INVAL-CHAR THEN DISPLAY 'CBLXML-FLAG-INVAL-CHAR'

END-IF.

COMPUTE CHECK-FLAG = I01-FLAG AND CBLXML-FLAG-OVERFLOW.

IF CHECK-FLAG = CBLXML-FLAG-OVERFLOW THEN DISPLAY 'CBLXML-FLAG-OVERFLOW'

END-IF.

:

ドキュメント内 COBOL2002 XML連携機能ガイド (ページ 88-91)