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属性

形式

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