COBOL2002 XML連携機能ガイド


3.2.2 データ長

データ長には,XMLドキュメントの入力時に要素に対応したデータ長が格納されます。また,出力時にデータ長を設定すると,出力する要素の出力長を設定できます。データ長は9けたの2進形式の数字項目として,cblxmlコマンドが生成するXMLアクセス用データ定義に生成されます。

データ長のCOBOLデータ項目名称

Item要素またはAttrItem要素のnameOfLengthVar属性に指定した名称が,データ長のCOBOLデータ項目の名称になります。

nameOfLengthVar属性の指定がない場合はcobName属性(省略時はelemName属性)の名称に"-LEN"を追加した名称が,データ長のCOBOLデータ項目名称になります。

〈この項の構成〉

(1) 入力時のデータ長

XMLドキュメント入力時に,データ長に格納される値を表3-5に示します。

表3‒5 入力時のデータ長

XMLドキュメント

データ長に入力される値

要素(Item要素)

XMLドキュメント内にある要素の内容のバイト数

属性(AttrItem要素)

XMLドキュメント内にある属性値のバイト数

実体参照がある場合の入力時のデータ長は,実体参照に対応する文字列へ変換された値の長さになります。

(2) 出力時のデータ長

XMLドキュメント出力時に,データ長に設定する値を表 3-6に示します。

表3‒6 出力時のデータ長

XMLドキュメント

データ長に設定する値

要素(Item要素)

要素の内容に出力するデータのバイト数

属性(AttrItem要素)

属性値に出力するデータのバイト数

  • XMLドキュメント出力時に0またはsize属性で指定した値よりも大きいバイト数をデータ長に指定した場合,size属性で指定したけた数が最大長として出力されます。このとき,type属性の指定に関係なく,左端からの長さが出力されます。

  • 日本語項目の場合,出力される文字の長さはデータ長に格納される値のバイト数の半分になります。端数は切り捨てになります。

  • 数字項目の場合,データ長には0が仮定されます。データ長に0が指定されると,size属性で指定したけた数で出力されます。

(3) nameOfLengthVar属性の指定例

入出力データ情報定義機能を使用した場合のnameOfLengthVar属性の指定例を次に示します。

指定例
(DTDの例)
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE root [
  <!ELEMENT root (item01)>
  <!ELEMENT item01  (#PCDATA)>
]>
<root/>
(DDFの例)
<?xml version="1.0" encoding="Shift_JIS"?>
<Interface interfaceName="EXAMPLE" accessInfo="yes">
  <BaseElement elemName="item01">
    <Item elemName="item01" nameOfLengthVar="I01L"
          type="alphanumeric" size="10"/>
  </BaseElement>
</Interface>
(生成されるCOBOLデータ項目)
  01 item01-BASE.
   02 item01 PIC X(10).
* Access Information
   02 item01-FLAG PIC 1(32) USAGE BIT.
   02 I01L PIC 9(9) USAGE COMP.