MOVE 30 TO AGE
7.2 実行時の動作に関する注意事項
7.2.9 属性の入出力
DDF の定義例 COBOL データ項目
COBOL
データ項目の値 XML データに出力される値 size="5"
trim="yes"
SPACE <na1></na1>
type="national"
size="5"
trim="no"
N(5) N'あいう' <na1>あいう▲▲</na1>
SPACE <na1>▲▲▲▲▲</na1>
(凡例)
△:半角空白文字
▲:全角空白文字
ATTLIST 属 性のデフォ ルト指定
AttrItem 要素の emptyValue 属性,
emptyContentValue 属性,accessInfo 属
性 入力 XML ドキュメン
トの属性値
COBOL データ項目(アクセス情報 フラグ)の入力値 emptyVa
lue
emptyConte ntValue
accessInfo
="yes"
属性なし emptyValue 属性の指定値※2
○ ○ × 属性あり(値あり) 属性値
属性あり(値なし) emptyContentValue 属性の指定 値
属性なし emptyValue 属性の指定値※2
× × ○ 属性あり(値あり) 属性値
(CBLXML-FLAG-OK)
属性あり(値なし) type 属性の指定によって,英数字 と日本語は SPACE,数値は ZERO※1
(CBLXML-FLAG-EMPTY)
属性なし type 属性の指定によって,英数字
と日本語は SPACE,数値は ZERO※1
(CBLXML-FLAG-MISSING)
#IMPLIED ○ × × 属性あり(値あり) 属性値
属性あり(値なし) type 属性の指定によって,英数字 と日本語は SPACE,数値は ZERO※1
属性なし emptyValue 属性の指定値※2
○ ○ × 属性あり(値あり) 属性値
属性あり(値なし) emptyContentValue 属性の指定 値
属性なし emptyValue 属性の指定値※2
× × ○ 属性あり(値あり) 属性値
(CBLXML-FLAG-OK)
属性あり(値なし) type 属性の指定によって,英数字 と日本語は SPACE,数値は ZERO※1
(CBLXML-FLAG-EMPTY)
属性なし type 属性の指定によって,英数字
と日本語は SPACE,数値は ZERO※1
(CBLXML-FLAG-MISSING)
値 ○ × × 属性あり(値あり) 属性値
ATTLIST 属 性のデフォ ルト指定
AttrItem 要素の emptyValue 属性,
emptyContentValue 属性,accessInfo 属
性 入力 XML ドキュメン
トの属性値
COBOL データ項目(アクセス情報 フラグ)の入力値 emptyVa
lue
emptyConte ntValue
accessInfo
="yes"
属性あり(値なし) type 属性の指定によって,英数字 と日本語は SPACE,数値は ZERO※1
属性なし ATTLIST 属性に指定したデフォ
ルト値
○ ○ × 属性あり(値あり) 属性値
属性あり(値なし) emptyContentValue 属性の指定 値
属性なし ATTLIST 属性に指定したデフォ
ルト値
× × ○ 属性あり(値あり) 属性値
(CBLXML-FLAG-OK)
属性あり(値なし) type 属性の指定によって,英数字 と日本語は SPACE,数値は ZERO※1
(CBLXML-FLAG-EMPTY)
属性なし ※3
#FIXED 値 ○ × × 属性あり(値あり) ATTLIST 属性に指定したデフォ
属性あり(値なし) ルト値
属性なし
○ ○ × 属性あり(値あり) ATTLIST 属性に指定したデフォ
属性あり(値なし) ルト値
属性なし
× × ○ 属性あり(値あり) ATTLIST 属性に指定したデフォ
ルト値
(CBLXML-FLAG-OK)
属性あり(値なし) ※4
属性なし ※5
(凡例)
○:指定あり
×:指定なし
注
• emptyValue 属性と accessInfo 属性を同時に指定した場合,accessInfo 属性の指定値が優先され,
emptyValue 属性の指定は無効となります。
• emptyContentValue 属性と accessInfo 属性を同時に指定した場合,accessInfo 属性の指定値が 優先され,emptyContentValue 属性の指定は無効となります。
注※1
type 属性の指定が"alphanumeric"または"national"の場合は SPACE が設定されます。
type 属性の指定が"numeric","packed","binary","float",または"double"の場合は ZERO が設定 されます。
注※2
emptyValue 属性の指定がない場合,emptyValue 属性の省略値が設定されます。
注※3 DTD あり
ATTLIST 属性に指定したデフォルト値
(CBLXML-FLAG-OK)
DTD なし
cblxml コマンドに指定した XML ドキュメントの ATTLIST 属性に指定したデフォルト値
(CBLXML-FLAG-MISSING)
注※4 DTD あり
ATTLIST 属性に指定したデフォルト値
(CBLXML-FLAG-EMPTY)
DTD なし
cblxml コマンドに指定した XML ドキュメントの ATTLIST 属性に指定したデフォルト値
(CBLXML-FLAG-EMPTY)
注※5 DTD あり
ATTLIST 属性に指定したデフォルト値
(CBLXML-FLAG-OK)
DTD なし
cblxml コマンドに指定した XML ドキュメントの ATTLIST 属性に指定したデフォルト値
(CBLXML-FLAG-MISSING)
(2) 属性のデフォルト指定値と属性の出力
表 7‒4 属性のデフォルト指定値と属性の出力動作
ATTLIST 属性のデ フォルト指定
AttrItem 要素の emptyValue 属性,
emptyContentValue 属性,accessInfo 属性 COBOL データ項目
(アクセス情報フラ グ)の出力値
出力 XML ド キュメントでの emptyValue emptyContent 属性
Value
accessInfo="y es"
#REQUIRED ○ × × emptyValue 属性の
指定値以外の値
指定した値の属 性を出力する emptyValue 属性の
指定値※
空の属性を出力 する
○ ○ × emptyValue 属性,
emptyContentValu e 属性の指定値以外 の値
指定した値の属 性値
emptyContentValu e 属性の指定値
空の属性値
emptyValue 属性の 指定値※
空の属性値
emptyContentValu e 属性と
emptyValue 属性が 同じ指定値
空の属性値
× × ○ 値(アクセス情報フラ
グに CBLXML-FLAG-OK が設定さ れる)
指定した値の属 性値
値(アクセス情報フラ グに CBLXML-FLAG-EMPTY が設 定される)
空の属性値
値(アクセス情報フラ グに CBLXML-FLAG-MISSING が 設定される)
空の属性値
#IMPLIED ○ × × emptyValue 属性の
指定値以外の値
指定した値の属 性値
emptyValue 属性の 指定値※
出力しない
○ ○ × emptyValue 属性,
emptyContentValu e 属性の指定値以外 の値
指定した値の属 性値
ATTLIST 属性のデ フォルト指定
AttrItem 要素の emptyValue 属性,
emptyContentValue 属性,accessInfo 属性 COBOL データ項目
(アクセス情報フラ グ)の出力値
出力 XML ド キュメントでの emptyValue emptyContent 属性
Value
accessInfo="y es"
emptyContentValu e 属性の指定値
空の属性値
emptyValue 属性の 指定値
出力しない
emptyContentValu e 属性と
emptyValue 属性が 同じ指定値
出力しない
× × ○ 値(アクセス情報フラ
グに CBLXML-FLAG-OK が設定さ れる)
指定した値の属 性値
値(アクセス情報フラ グに CBLXML-FLAG-EMPTY が設 定される)
空の属性値
値(アクセス情報フラ グに CBLXML-FLAG-MISSING が 設定される)
出力しない
値 ○ × × emptyValue 属性の
指定値以外の値
指定した値の属 性値
emptyValue 属性の 指定値※
出力しない
○ ○ × emptyValue 属性,
emptyContentValu e 属性の指定値以外 の値
指定した値の属 性値
emptyContentValu e 属性の指定値
空の属性値
emptyValue 属性の 指定値※
出力しない
emptyContentValu e 属性と
emptyValue 属性が 同じ指定値
出力しない
× × ○ 値(アクセス情報フラ
グに CBLXML-FLAG-OK が設定さ れる)
指定した値の属 性値
ATTLIST 属性のデ フォルト指定
AttrItem 要素の emptyValue 属性,
emptyContentValue 属性,accessInfo 属性 COBOL データ項目
(アクセス情報フラ グ)の出力値
出力 XML ド キュメントでの emptyValue emptyContent 属性
Value
accessInfo="y es"
値(アクセス情報フラ グに CBLXML-FLAG-EMPTY が設 定される)
空の属性値
値(アクセス情報フラ グに CBLXML-FLAG-MISSING が 設定される)
出力しない
#FIXED 値 ○ × × emptyValue 属性の
指定値以外の値
属性のデフォル ト指定値 emptyValue 属性の
指定値※
出力しない
○ ○ × emptyValue 属性,
emptyContentValu e 属性の指定値以外 の値
属性のデフォル ト指定値
emptyContentValu e 属性の指定値
空の属性値
emptyValue 属性の 指定値※
出力しない
emptyContentValu e 属性と
emptyValue 属性が 同じ指定値
出力しない
× × ○ 値(アクセス情報フラ
グに CBLXML-FLAG-OK が設定さ れる)
属性のデフォル ト指定値
値(アクセス情報フラ グに CBLXML-FLAG-EMPTY が設 定される)
空の属性値
値(アクセス情報フラ グに CBLXML-FLAG-MISSING が 設定される)
出力しない
(凡例)
○:指定あり
×:指定なし
注
• emptyValue 属性と accessInfo 属性を同時に指定した場合,accessInfo 属性の指定値が優先され,
emptyValue 属性の指定は無効となります。
• emptyContentValue 属性と accessInfo 属性を同時に指定した場合,accessInfo 属性の指定値が 優先され,emptyContentValue 属性の指定は無効となります。
注※
emptyValue 属性の指定がない場合,emptyValue 属性の省略値を設定します。
(3) 属性が DDF で対応づけされていない場合の属性の入出力
表 7‒5 属性が DDF で対応づけされていない場合
ATTLIST 属性のデフォルト指定 XML ドキュメントの入力 XML ドキュメントの出力
#REQUIRED※ 無視する。 空の属性値(attr = "")を出力する。
#IMPLIED 無視する。 属性を出力しない。
値 無視する。 属性を出力しない。
#FIXED 値 無視する。 属性を出力しない。
注※
属性値のデフォルト指定が#REQUIRED の場合は,必ずその属性を DDF で対応づけてください。
DDF で対応づけていない場合,適正な属性値が出力されません。
DDF で対応づけた属性のデフォルト指定に#REQUIRED を使用した場合の指定例については,「(4) 属性のデフォルト指定時の注意事項」を参照してください。
(4) 属性のデフォルト指定時の注意事項
属性のデフォルト指定を使用する場合の注意事項を次に示します。
• 属性値の入出力は,属性の型には依存しません。属性値として記述された文字列は属性の型には関係な く COBOL データ項目に入出力されます。
• ATTLIST 属性のデフォルト指定では,英数字項目および日本語項目の場合は 160 文字,数字項目の場 合は 18 けた(符号,小数点は含まない)を指定してください。
• XML ドキュメント妥当性チェック機能で属性値が適正かどうかをチェックできるのは,属性値の入力 時だけです。属性値の出力時に値が適正かどうかをチェックすることはできません。
XML ドキュメント妥当性チェック機能については,「7.2.8 入力 XML ドキュメントの妥当性チェック 機能」を参照してください。
• 属性のデフォルト指定に#REQUIRED を使用して属性値に空文字列が出力されると,出力された属性 値が不正と判断される属性があります。常に適正な属性値を出力するために,#REQUIRED でデフォ ルト指定をする場合は,その属性を DDF で対応づける必要があります。
DDF で対応づけた属性を#REQUIRED で指定した場合の指定例を次に示します。
(DTD の例)
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE table [
<!ELEMENT table (item1, item2, item3, item4, item5)>
<!ELEMENT item1 EMPTY>
<!ELEMENT item2 EMPTY>
<!ELEMENT item3 EMPTY>
<!ELEMENT item4 EMPTY>
<!ELEMENT item5 EMPTY>
<!ATTLIST item1 attr11 CDATA #REQUIRED>
<!ATTLIST item1 attr12 CDATA #IMPLIED>
<!ATTLIST item1 attr13 CDATA "abc" >
<!ATTLIST item1 attr14 CDATA #FIXED "def">
<!ATTLIST item2 attr21 ID #IMPLIED >
<!ATTLIST item2 attr22 IDREF #IMPLIED>
<!ATTLIST item2 attr23 IDREFS #IMPLIED>
<!ATTLIST item2 attr24 NMTOKEN #IMPLIED>
<!ATTLIST item2 attr25 NMTOKENS #IMPLIED>
<!ATTLIST item3 attr31 (blue|red|yellow) #IMPLIED>
<!ATTLIST item4 attr41 CDATA #IMPLIED>
<!ATTLIST item5 attr51 CDATA #REQUIRED>
<!ATTLIST item5 attr52 CDATA #IMPLIED>
]>
<table/>
(DDF の例)
<?xml version="1.0" encoding="Shift_JIS"?>
<Interface interfaceName="EXAMPLE">
<BaseElement elemName="table">
<Group cobName="grp1">
<AttrItem elemName="item1" attrName="attr11"
type="alphanumeric" size="10"/>
<AttrItem elemName="item1" attrName="attr12"
type="alphanumeric" emptyValue="xxx" size="10"/>
<AttrItem elemName="item1" attrName="attr13"
type="alphanumeric" emptyValue="yyy" size="10"/>
<AttrItem elemName="item1" attrName="attr14"
type="alphanumeric" size="10"/>
<AttrItem elemName="item2" attrName="attr21"
type="alphanumeric" size="10"/>
<AttrItem elemName="item2" attrName="attr22"
type="alphanumeric" size="10"/>
<AttrItem elemName="item2" attrName="attr23"
type="alphanumeric" size="10"/>
<AttrItem elemName="item2" attrName="attr24"
type="alphanumeric" size="10"/>
<AttrItem elemName="item2" attrName="attr25"
type="alphanumeric" size="10"/>
<AttrItem elemName="item3" attrName="attr31"
type="alphanumeric" size="10"/>
<AttrItem elemName="item4" attrName="attr41"
type="numeric" trim="no" size="4"/>
</Group>
</BaseElement>
</Interface>
(生成される COBOL データ項目)
01 grp1.
02 item1-attr11 PIC X(10).
02 item1-attr12 PIC X(10).
02 item1-attr13 PIC X(10).
02 item1-attr14 PIC X(10).
02 item2-attr21 PIC X(10).
02 item2-attr22 PIC X(10).
02 item2-attr23 PIC X(10).
02 item2-attr24 PIC X(10).
02 item2-attr25 PIC X(10).
02 item3-attr31 PIC X(10).
02 item4-attr41 PIC 9(4).
(5) 属性値の入力動作についての注意事項
• type 属性に"alphanumeric"を指定し,入力する値の空白文字(スペース,タブおよび改行)はスペー ス(X'20')に置き換えて COBOL データ項目に読み込まれます。
• type 属性に"numeric","packed","binary","float","double"を指定し,入力する数値の前後に空白 文字(スペース,タブおよび改行)がある場合,空白文字(スペース,タブおよび改行)を無視して数 値だけが読み込まれます。