uCosminexus Interschema ユーザーズガイド

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

6.4.2 出力コンポーネントの制御

コンポーネントの出現数によって,コンポーネントデータの作成が繰り返されます。固定回出現のコンポーネントを除いて,通常は,マップ式の評価結果で出現の有無が判定されます。マップ式の評価結果が%UNDEFとなった時点で終了となります。マップ式を定義していない場合は,最大出現数まで繰り返されます。出現回数決定式を定義した場合は,出現回数決定式が評価された結果の値が出現数となります。

出力コンポーネントの制御の流れを図6-6に示します。

図6-6 出力コンポーネントの制御の流れ

[図データ]

まず,出現判定でコンポーネントが1回出現したと判定された場合,構造のコンポーネント及び型のコンポーネントが作成されます。

逐次構造のコンポーネントでは,コンポーネントに定義したマップ式,及び構造下のXML属性を評価します。マップ式の評価結果が%UNDEFの場合,XML属性の評価以降は処理されません。評価した後,構造に定義した子の順番に従って,子コンポーネントが評価及び作成されます。評価遅延(%delay)を指定した場合,子コンポーネントは評価されません。%delay %nextを指定した場合は,次の兄弟コンポーネントが処理された後に評価されます。%delay nを指定した場合は,ここでは評価されないで,nが指すコンポーネントの評価後に評価されます。

選択構造のコンポーネントでは,コンポーネントに定義したマップ式,及び構造下のXML属性を評価します。順序決定式を定義した場合は,評価された後,対応する順序決定値を持つ子コンポーネントが処理されます。順序決定式を定義していない場合,子コンポーネントが順番に評価され,最初に処理対象に該当した子コンポーネントが処理されます。

構造の子コンポーネントの処理が完了した時点で,構造の条件式が判定されます。

型コンポーネントでは,コンポーネントに定義したマップ式が評価され,コンポーネントのデータ型(「6.7.1 データ型」で示すデータ型)が求められます。値をチェックする場合は,値定義が判定されます。サイズ決定式を定義した場合は,サイズ決定式が評価された結果の値が型のサイズとなります。その後,出力データの形式に整形されます。出力データの整形後,型の下のXML属性が評価されます。

構造のコンポーネント及び型のコンポーネントの処理が完了したら,コンポーネントに定義した条件式の判定,変数式の評価,%delay nの指定で遅延されているコンポーネントの処理,及びカウンタの指定が処理されます。