COBOL2002 XML連携機能ガイド

[目次][用語][索引][前へ][次へ]

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属性
(2) attrName属性
(3) cobName属性
(4) type属性
(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要素と読み替えてください。