2.3 データ定義言語(DDL)の文法
2.3.6 AttrItem 要素
AttrItem 要素は,XML 要素の属性を COBOL データ項目に対応づけます。
AttrItem 要素は,要素内容が EMPTY と宣言された要素に対しても指定できます。要素内容が EMPTY で ある要素に対して指定した場合,属性に対するデータ項目だけが生成されます。
形式
<AttrItem elemName="XML の要素名"
attrName="属性名"
〔cobName="AttrItem 要素に対応する名称"〕
〔type="type 属性値"〕
〔size="けた数"〕
〔fractionalDigits="けた数"〕
〔emptyValue="type 属性値に対応した COBOL の定数"〕
〔sign="符号種別"〕
〔trim="データ項目の整形の有無"〕
〔nameOfFlagVar="アクセス情報フラグの名称"〕
〔nameOfLengthVar="データ長の名称"〕
〔emptyContentValue="type 属性値に対応した COBOL の定数"〕
〔invalidCharValue="type 属性値に対応した COBOL の定数"〕
〔overflowValue="type 属性値に対応した COBOL の定数"〕
/>
規則
• DTD の属性に指定されたデフォルト値より小さい値を AttrItem 要素の size 属性に指定した場合,
COBOL 原始プログラムの生成時にエラーとなります。
• DTD の属性に指定できるデフォルト値の最大値は,英数字項目および日本語項目の場合は 160 文 字,数字項目の場合は 18 けた(符号,小数点は含まない)です。最大値を超える値を指定した場 合,COBOL 原始プログラムの生成時にエラーとなります。
指定例
(DTD の例)
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE table [
<!ELEMENT table (sale)*>
<!ELEMENT sale (brand, style)>
<!ATTLIST sale color (black | white | brown) #REQUIRED >
<!ATTLIST style age (child | adult) #REQUIRED >
<!ELEMENT brand (#PCDATA)>
<!ELEMENT style (#PCDATA)>
]>
(DDF の例)
<?xml version="1.0" encoding="Shift_JIS"?>
<Interface interfaceName="EXAMPLE">
<BaseElement elemName="sale">
<Group elemName="sale">
<AttrItem elemName="sale" attrName="color"
cobName="colorname" type="alphanumeric"
size="10"/>
<Item elemName="style" size="100"/>
<AttrItem elemName="style" attrName="age"
type="alphanumeric" size="5"/>
</Group>
</BaseElement>
</Interface>
(生成される COBOL データ項目)
01 sale.
02 colorname PIC X(10).
02 style PIC X(100).
02 style-age PIC X(5).
(1) elemName 属性
形式
elemName="XML の要素名"
機能
AttrItem 要素で対応づける属性が関連づけられている XML 要素の名称を指定します。
elemName 属性の規則,指定例については,「2.3.4(1) elemName 属性」を参照してください。
(2) attrName 属性
形式
attrName="属性名"
機能
AttrItem 要素で対応づける XML 要素の属性の名称を指定します。
規則
• AttrItem 要素に指定する属性の名称は,elemName 属性で指定した要素の属性として DTD 内で宣 言されている必要があります。
• cobName 属性を省略した場合,elemName 属性の値と attrName 属性の値を'-'(ハイフン)でつ ないだ名称が COBOL データ項目名になります。
elemName 属性値の長さと attrName 属性値の長さの合計は 29 文字以下でなければなりません。
(3) cobName 属性
形式
cobName="COBOL データ項目名"
機能
attrName 属性の値の代わりに COBOL データ項目の名称を指定します。attrName 属性に指定する XML 要素の名称が,COBOL データ項目名に使用できない場合などに指定します。
規則
二つ以上の異なる属性を,同じ COBOL データ項目に対応づけられません。
cobName 属性の指定例については,「2.3.4(2) cobName 属性」を参照してください。
(4) type 属性
形式
type="type 属性値"
機能
AttrItem 要素に対応する COBOL データ項目の形式を指定します。
type 属性に指定できる値と,type 属性の値に対応する COBOL データ項目を表 2-11 に示します。
表 2‒11 type 属性に指定できる値
type 属性の値 COBOL データ項目
alphanumeric 英数字項目
national 日本語項目
numeric 数字項目(外部 10 進形式)
規則
• type 属性を省略した場合,type="alphanumeric"が仮定されます。
• type 属性に表 2-11 に示した type 属性値以外を指定した場合,COBOL 原始プログラムの生成時 にエラーとなります。
type 属性の指定例については,「2.3.4(3) type 属性」を参照してください。
(5) その他の属性
次に示す属性の形式,機能,規則,指定例については,「2.3.4 Item 要素(要素の対応づけの定義)」を参 照してください。ただし,Item 要素と記載されている部分は AttrItem 要素と読み替えてください。
• size 属性
• fractionalDigits 属性
• emptyValue 属性
• sign 属性
• trim 属性
• nameOfFlagVar 属性
• nameOfLengthVar 属性
• emptyContentValue 属性
• invalidCharValue 属性
• overflowValue 属性