3.2.2 データ長
データ長には,XMLドキュメントの入力時に要素に対応したデータ長が格納されます。また,出力時にデータ長を設定すると,出力する要素の出力長を設定できます。データ長は9けたの2進形式の数字項目として,cblxmlコマンドが生成するXMLアクセス用データ定義に生成されます。
- データ長のCOBOLデータ項目名称
-
Item要素またはAttrItem要素のnameOfLengthVar属性に指定した名称が,データ長のCOBOLデータ項目の名称になります。
nameOfLengthVar属性の指定がない場合はcobName属性(省略時はelemName属性)の名称に"-LEN"を追加した名称が,データ長のCOBOLデータ項目名称になります。
(1) 入力時のデータ長
XMLドキュメント入力時に,データ長に格納される値を表3-5に示します。
XMLドキュメント |
データ長に入力される値 |
---|---|
要素(Item要素) |
XMLドキュメント内にある要素の内容のバイト数 |
属性(AttrItem要素) |
XMLドキュメント内にある属性値のバイト数 |
- 注
-
実体参照がある場合の入力時のデータ長は,実体参照に対応する文字列へ変換された値の長さになります。
(2) 出力時のデータ長
XMLドキュメント出力時に,データ長に設定する値を表 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.