minimal-template 仕様書
この文書はテンプレートに記述する処理命令に関する仕様書です。 minimal-templateは雛形となる文書に処理命令を埋め込み、処理命令で処理系より文字列を挿入するものです。雛形となる文章はテキストファイルであれば、HTML文書、XML文書、テキスト文書などなんでも構いません。 minimal-templateで使用する処理命令はXMLの処理命令に準拠しています。XML文書で使用しても整形式を崩すことはありません。 minimal-templateで使用する処理命令は少ない種類と平易記述を特徴としています。
定義
処理命令
文章に埋め込む文字列を指定する一連の記号です。
minimal-template の処理命令は全て で始まり ?> で終わります。ただし で始まり ?> で終わるものが全て minimal-template の処理命令になるわけではありません。
処理命令はXMLの処理命令に準拠しています。
テンプレート
雛形となる文書に処理命令を埋め込んだものをテンプレートといいます。
処理系により処理命令のある場所に文字が挿入されます。
処理命令が一つも埋め込まれていなくてもテンプレートになる場合もあります。そのような場合は結果の文章はテンプレートと同じものになります。
式
変数、定数、関数、演算子、括弧()の組み合わせたもので、式全体で1つの数値、文字列、または論理値を現します。
数値を現すものを数値式といいます。
例 Yar*10000+Mon+100+Day
文字列を現すものを文字列式といいます。
例 FirstName+SecondName+"様"
論理値を現すものを論理式または条件式といいます。
例 Amount > 1500
処理命令
概要
minimal-templateで使用される処理命令は次の4つの命令だけです。
- 1.挿入命令
- 2.繰返し命令
- 3.条件付き挿入命令
- 4.変数設定命令
1.挿入命令
- 機能
- 処理命令の位置に文字列を挿入します。
- 書式
- <$insert value="式"$>
- 説明
- <$insert....$>の位置に文字列を挿入します。
挿入する文字列はvalue記述値が式として実行時に評価されて決まります。
式が評価が数値の場合は数値を文字に変換して挿入します。
式が評価が文字列の場合は文字列の場合はそのまま挿入します。
式が評価が論理値の場合はtrueまたはfalseという文字列を挿入します。
2.繰返し命令
- 機能
- 文字列を指定回数、繰り返して挿入します。
- 書式
- <$repeat id="文字列" times="数値式"$>
文字列
<$end-repeat$> - id記述値
- 一意の文字列です(省略可)。省略した場合は後述のプロパティは使用できません。
- times記述値
- 繰返し回数を表す数値式です(必須)。
- 説明
- repeat処理命令とend-repeat処理命令の間の文字列を指定された繰返回数挿入します。
繰返回数はrepeat記述値の数値式が実行時に評価されて決まります。
挿入文字列に別のminimal-template処理命令があれば、その処理命令は機能します。
繰返し処理中に、現在状態を表す次のプロパティを参照することができます。
indexプロパティ 現在の処理の繰返し回数を表す数値変数です。0からカウントアップされます。
firstプロパティ 現在の処理が繰返しの最初であるかを表す論理変数です。最初の場合に真になります。
lastプロパティ 現在の処理が繰返しの最後であるかを表す論理変数です。最後の場合に真になります。
これらのプロパティはid記述値にピリオドを付けて使用します。例えば id="line" の場合 line.index などとします。
id記述が省略された場合は、id記述値はなく.indexなどとなります。
3.条件付き挿入命令
- 機能
- 条件により文字列を挿入します。
- 書式
- <$if test="論理式"$>
文字列
<$else$>
文字列
<$end-if$> - 説明
- 条件の真偽はtest記述値の論理式が実行時に評価されて決まります。
条件が真の場合はif処理命令とelse処理命令の間の文字列を挿入します。
条件が偽の場合はelse処理命令とend-if処理命令の間の文字列を挿入します。
条件が偽の場合に挿入する文字列がなければelse処理命令を省略します。
挿入文字列に別のminimal-template処理命令があれば、その処理命令は機能します。
4.変数設定命令
- 機能
- 変数名と変数値を設定します。
- 書式
- <$assign varname="文字列" value="式" local="true"$>
- 説明
- varname記述で変数名を指定します。
変数値はvalue記述値の式が実行時に評価されて決まります。
式が数値式か文字列指式か論理式かによって変数値の形式も決まります。
変数にはスコープがあります。スコープとは変数が利用できる範囲です。
テンプレートファイルは一つのスコープです。またrepea処理命令〜end-repeat処理命令、if処理命令〜elde処理命令、else処理命令〜end-if処理命令はその間が一つのスコープです。
スコープ内にスコープがある場合は、現在の最も内側のスコープが現在のスコープです。
同じ変数名が既存でない場合は、その変数は変数が定義されたスコープでのみ有効です。
変数名が既存の場合でもlocal記述を省略するかlocal記述値をtrueにすると、このスコープでのみ有効な変数が作られ、既存の変数は影響されません。
変数名が既存の場合ででlocal記述値がfalseの場合は既存の変数の値が変更されます。