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要素と読み替えてください。