Wizard Markup Language (WIZML) を使うと、ウィザードによって生成されたファイルをカスタマイズすることができます。WIZML は、ウィザードで指定されたデータをベースにしてダイナミックにファイルを作成するためにテンプレート内で使用されます。たとえば、ウィザードを使って 1 つの属性 FILEPATH を持つ <GIZMO> と呼ばれるタグを生成する場合、テンプレートは次のような簡略化されたものとなります。
<GIZMO FILEPATH="$${txtFilePath}">
上記のコード例は、1 つの <GIZMO> タグを持つファイルを生成します。ウィザードでユーザによって入力された実際の値を FilePath の値に組み込むには、構文 $${variablename}
を使います。
WIZML 出力テンプレートでは、CFML のように動作するハイレベルのマークアップ構文を使います。サポートされるタグには、WIZSET、WIZELSE/WIZELSEIF、WIZLOOP、および WIZINCLUDE があります。さらに、ColdFusion 式構文および関数ライブラリのサブセットである単純な式構文が出力テンプレート内でサポートされています。
ColdFusion のテンプレートが Form および URL パラメータの値によって決まるように、出力テンプレートはパラメータの値によって決まります。パラメータは、直接出力したり、生成される出力のタイプのカスタマイズに使ったりすることができます。これらのウィザード パラメータの値は、次の項目から派生します。
テンプレートにパラメータの値を出力するには、二重ドル記号のエスケープ シーケンスを使います。たとえば Color という名前の変数の値を出力するには、$${Color} という構文を使います。これは推奨する構文ですが、WIZ タグの属性内のパラメータ値の場合は、より簡単なフォームを使うことができます。たとえば、<WIZIF Color= "black">
を使うことができます。
簡単なパラメータ値の出力と操作のほかに、式構文も指定します。数式の値を出力するには、次のように中かっこのセットを $$ に追加し、中かっこ内に式を配置します。
$${ 'この色は次のとおりです。' & Color }
$$( '22 を 7 で割った結果は次のとおりです。' & 7/22 }
$$( Left( 'FooBar', 3 ) }
単一引用符を使って文字列を区切ります。算術演算子と連結演算子 (+、-、*、/、&) がサポートされています。比較演算子 LT、LTE、GT EQ、および NEQ がサポートされており、AND、NOT、および OR を使った論理比較もサポートされています。
現在サポートされている関数の主なカテゴリは、文字列とランタイムの 2 つです。
これら関数のすべての構文と動作は、引数として直接変数参照でなく文字列を必要とする ParameterExists を除き、ColdFusion の同名の関数と同じです。
ウィザード出力テンプレートの動作は、テンプレート内の WIZ タグの使用によって制御されます。これらのタグは ColdFusion タグに似ていますが、ColdFusion ではなく WIZ という文字の接頭辞を持つ点が異なります。
出力テンプレート タグ属性内で使用される文字列では、特殊文字をエスケープ処理するために C 言語の表記規則 (\) を使います。たとえば、次の属性では改行文字を使って値を 2 行に分割します。
CAPTION="This is line one\nThis is line two"
それ以外の注意すべき特殊文字は、改行 (\r)、タブ (\t)、および円記号 (\\) です。たとえば、次の属性は現在のディレクトリより 2 つ上のレベルのディレクトリにあるテンプレートを参照します。
TEMPLATE="..\\..\\Header.wml"
この節では、すべての Wizard Markup Language 構文を示します。
WIZSET は、ColdFusion の CFSET タグと同様に機能します。
例は次のとおりです。
<WIZSET Color = 'Red'>
<WIZSET Pi = 7/22>
<WIZSET ShortName = Left( LongName, 5 )>
属性 | 説明 |
---|---|
TEMPLATE | 必須。現在実行中のテンプレートに追加されるテンプレートの相対パス。 |
WIZLOOP タグでは、次の種類のループがサポートされています。
WIZLOOP タグの属性は、次のとおりです。
WIZLOOP タグの属性 | |
---|---|
属性 | 説明 |
INDEX | 各繰り返し時に設定するループ変数の名前 (インデックスおよびリスト ベースのループに必要)。カウンタとして機能します。 |
FROM | ループの開始位置のインデックス。 |
TO | ループの終了位置のインデックス。 |
STEP | 増加ステップの値 (正または負の値)。 |
CONDITION | ループを実行するかどうかを制御する条件式。 |
LIST | CommaText フォーマットのリスト。これは、テキスト形式表現を保存するために Delphi ベースの文字列リストで使うフォーマットです。 |
STRINGLIST | TStringList タイプの SetObjectParameter 関数を使って作成されたパラメータの名前。 |
WIZBREAK および WIZCONTINUE タグには属性がないので、WIZLOOP タグ内のどこででも使うことができます。ループを終了したり (WIZBREAK)、次のループを継続したり (WIZCONTINUE) することができます。
WIZIF、WIZELSEIF、および WIZELSE タグは対応する CFML タグと同様に機能します。有効なブール式を WIZIF および WIZELSEIF タグ内で使うことができます。
<WIZIF sDocType eq "HTML 4.0">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<wizelse sDocType eq "HTML 3.2">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<wizelse sDocType eq "HTML 2.0">
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
</WIZIF>
<HTML>
<HEAD>
<TITLE>$${sTitle}</TITLE>
<WIZIF bMetaDescr eq "true">
<META NAME="description" CONTENT="$${sMetaDescr}">
</WIZIF>
<WIZIF bMetaKeywords eq "true">
<META NAME="keywords" CONTENT="$${sMetaKeywords}">
</WIZIF>
</HEAD>
<BODY>
</BODY>
</HTML>