uCosminexus Interschema ユーザーズガイド
サイズ決定式は,型コンポーネントのサイズが動的に決まる場合に,コンポーネントのサイズを定義する式です。サイズ決定式の評価結果によって,対応するコンポーネントのサイズが決まります。レングスタグ構造を持つデータなどに適用されます。サイズ決定式を評価した値は,正の整数でなければなりません。
サイズ決定式は通常入力側のコンポーネントに用いる式で,[サイズ決定式]ダイアログに記述します。[サイズ決定式]ダイアログは,式を定義するコンポーネントの[コンポーネントのプロパティ]ダイアログで[サイズ決定式]ボタンをクリックすると表示されます。
図6-9 [サイズ決定式]ダイアログ
サイズ決定式は,テキストを直接入力したり,ダイアログから演算子,関数などを選択したりして記述します。
次に例を示します。
図6-10 サイズ決定式の例
入力フォーマットである場合,トランスレータはコンポーネントLENの値をコンポーネントDATAのサイズと認識します。逆に,出力フォーマットの場合,LENの値をDATAの固定サイズとして処理します。出力フォーマットでDATAのサイズ決定式がない場合は,コンポーネントDATAのサイズは代入される値によって決まります。
出力フォーマットでは,可変長コンポーネントのサイズは,代入元のデータのサイズに従うのが一般的です。レングスタグ構造の長さコンポーネントは,評価順序遅延指定のマップ式でデータ長を代入します。図6-10の例では,マップ式は次のようになります。
LENの式 %delay %next = LENGTH(\1@DATA); DATAの式 (任意の式);
All Rights Reserved, Copyright (C) 2000, Information-technology Promotion Agency, Japan.
All Rights Reserved. Copyright (C) 2005, 2008, Hitachi, Ltd.
All Rights Reserved, Copyright (C) 1985-1998, Microsoft Corporation.