COBOL2002 XML連携機能ガイド

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

7.4.4 概算式の計算例

次に示すXMLドキュメントでの概算式の計算例を示します。ほかのプラットフォームの場合は,概算式に各単価を当てはめて算出してください。

このXMLドキュメントは,サイズが7,284バイトで,シフトJISの2バイトコードが4,000バイト(2,000文字)あります。2バイトコードの占有率が約55%となっています。

この例では,改行文字を「↓」と表記しています。

(XMLドキュメント)
<?xml version="1.0" encoding="Shift_JIS"?>↓
<root>↓                                               …1
    <e1>abcdefghij</e1>↓                              …2
    <e2>klmnopqrst<e3>uvw</e3>xyz</e2>↓               …3
<!--comment-->↓                                       …4
    <e4></e4>↓                                        …5
    <e5 a1="abc" a2=""/>↓                             …6
    <e5 a1="12345"/>↓                                 …7
    <e5>↓
 <?pi-target pi-data?>↓
       <e6>xxxxxx ...(3000文字)... xxxxxx<e6/>↓
       <e6>あああ ...(2000文字)... あああ<e6/>↓
    </e5>↓
</root>

データ定義ファイル(DDF)はBaseElement要素をrootに対応づけし,e1をItem要素に対応づけします。

(DDF)
<?xml version="1.0" encoding="Shift_JIS"?>↓
<Interface interfaceName="EXAMPLE">↓
 <BaseElement elemName="root" cobName="BE">↓
  <Item elemName="e1" size="10"/>↓
 </BaseElement>↓
</Interface>

このXMLドキュメントをXML連携機能で解析する場合のメモリ所要量の概算値は次のようになります。ここでは,PC(x86)の場合の例を示します。ほかのプラットフォームの場合は,それぞれの概算式に各単価を当てはめて算出してください。

(計算例)
上限値=DT+MA+(NS+2×(XC×2.6+MC×5))×1.2+MC+ML+UP
上限値は,302,670バイトです。
DT=0        …DTDがない場合,0バイト。
MA=220×1,024    …固定値(220キロバイト)
NS=240×10     …要素数=10(root,e1,e2,e3,e4,e5×3,e6×2)
  +160×3     …属性数=3(a1×2,a2)
  +60×21     …連続するテキストの数=21
  +60×1     …コメント数=1
  +60×1     …処理命令数=1
  +260      …XMLドキュメント
  =4,520
XC=XS×(100−DR/2)/100
  =7,284×(100−55/2)/100
  ≒5,281     …XMLドキュメントの文字数。
            XMLドキュメントのサイズ7,284バイト,
            2バイトコード占有率55%として換算。
MC=3,000      …最大長のテキストデータxxx...xxx(3,000文字)
ML=Σ(2×2+8)   …DDFでBaseElement要素をrootに対応づけし,
  =12               e1をItem要素に対応づけした場合,12バイト。
            マッピングしたタグ名のサイズ(e1)=2
                      BaseElementからのパス名のサイズ(/root/e1)=8
UP=0        …更新しない場合,0バイト。

注※
タグの前後の改行や空白文字もテキストデータとして扱われます。
  • 1.の改行と,続く2.のインデントは合わせて1つの連続するテキストデータとして扱われます。
  • 4.の改行と5.のインデントも合わせて1つの連続するテキストデータとして扱われます。
  • 3.の改行も1つのテキストデータとして扱われます。
  • 3.の klmnopqrst,uvw,xyzはそれぞれ独立したテキストデータとして扱われます。
  • 5.の空のタグ間テキストはテキストデータとして扱われません。
  • 6.,7.の各属性の値は独立したテキストデータとして扱われます。
  • 6.の属性a2の属性値は空文字列ですが,5.の空のタグ間テキストと異なり,テキストデータとして扱われます。