本章では、フォーマットファイルについて説明します。
5.1 フォーマットファイル
フォーマットファイルは、WebScriptがデータベースと接続し、情報をやり取りするためのファイルです。
フォーマットファイルは、wit_fmtrなどのWebScriptコマンドによってWebScriptセションに渡されます。WebScriptセション は、受け取ったフォーマットファイルに対して、以下の処理を行い、結果をHTML文書として、Webサーバに返却します。
・ 拡張タグの処理
・ 変数の置換
フォーマットファイルは、上記の処理が行われることを除いて、HTML文書と同じです。
なお、上記の処理の行われる順序および処理の詳細は、“付録B WebScriptフォーマットファイル解釈の詳細”を参照し てください。
5.2 拡張タグ
フォーマットファイル中では、一般のHTMLで定義されているタグのほかに、WebScriptが独自に定義しているタグを使用 することができます。拡張タグには、以下の5種類があります。
・ フォーマットファイルの実行を制御するタグ
・ データベースにアクセスするタグ
・ 表示を行うタグ
・ 変数を制御するタグ
・ そのほかのタグ
【例】
以下に示すタグは、指定されたSQL文を実行して、結果を変数rsltに代入しています。
<!DO "SELECT NAME FROM SCM.TBL1 WHERE AGE < 40" RESULT=rslt>
WebScript拡張タグの表記
WebScript拡張タグは、先頭の文字が「!」になっているため、一般のHTMLタグと容易に区別することができます。拡張タ グの詳細は、“第6章 WebScript拡張タグ”を参照してください。
WebScript拡張タグのパラメタ
WebScript拡張タグのパラメタには、通常のHTMLタグと同様に通常の文字列を記述することができます。WebScript拡張 タグのパラメタの多くは、WebScript言語で定義されている表現も、記述することができます。WebScript言語の詳細 は、“第7章 WebScript言語”を参照してください。
WebScript拡張タグのパラメタに、単なる文字列を記述する場合は、パラメタを二重引用符(")で囲んでください。WebScript 言語の表現を記述する場合は、パラメタを引用符(')で囲んでください。パラメタ中の文字が、英数字だけからなる場合 は、引用符は省略することができます。
【例】
以下の表現は、変数strの長さに関する比較の結果を判定しています。
<!IF 'length(str) > 10'> 長すぎます <!/IF>
5.3 変数の置換
WebScriptセションは、変数に値を設定し、値を保持する機能をもっています。
フォーマットファイルの中では、この変数の値を参照することができます。すなわち、フォーマットファイルの中に書かれた 変数をその値で置き換えることができます。
変数の種類
変数には、WebScriptセション中で定義されたもの、ブラウザなどから送られたものまたはシステムが定義するものなど複 数の種類があります。詳細は、“7.3 変数”を参照してください。
変数の参照
フォーマットファイルの中に記述されたタグのパラメタの位置で、変数の値を参照することができます。参照することので きる表現を以下に示します。
・ 変数
・ 変数の後ろに、リスト要素を表す演算子[ ]または{ }がいくつかついたもの[ ]の中は、定数で表現します。
【例】
var0 var1[30]
var2{key_a}[4]{key_b}
変数の置換方法
変数の置換を行うためには、置換を行う表現の直前に「$(」を、直後に「)」を記述してください。空白を入れないでくださ い。
【例】
変数myVar0の値がリスト(10,20,30)である場合、(1)と(2)は同じことを意味しています。
(1) <INPUT TYPE="hidden" VALUE="$(myVar0[1])">
(2) <INPUT TYPE="hidden" VALUE="20">
さらに、置換を行う表現が、以下に示す表現をすべて満たしている場合は、「(」と「)」を省略できます。
・ リスト要素を表す演算子を含まない単純な変数
・ 変数の直後にある文字が、英数字またはアンダースコア(_)でない
【例】
変数myVar1の値が文字列「myfile.html」である場合、(1)と(2)は同じことを意味しています。
(1) <A HREF="$myVar1">表示したい文書</A>
(2) <A HREF="myfile.html">表示したい文書</A>
5.4 フォーマットファイルの注意事項
フォーマットファイルの表記についての注意事項を説明します。
5.4.1 特殊文字のエスケープ
WebScript言語の表現中には、二重引用符(")や引用符(')が頻繁に使用されます。また、変数の置換には、ドル記号
($)が使用されます。
このため、これらの文字を本来の意味で使用するときは、別の表記方法が必要になります。表記方法の規則を、以下に 示します。
・ 二重引用符で囲まれた文字列中に、二重引用符を記述する場合は、二重引用符の直前に円記号(\)を付けます。
・ 引用符で囲まれた文字列中に引用符を記述する場合は、引用符の直前に円記号を付けます。
・ 変数の置換を意味しないドル記号を記述する場合は、ドル記号の直前に円記号を付けます。
・ 円記号に上述の特別な意味をもたせないためには、円記号の直前に円記号を付けます。
5.4.2 URLの指定
<A>タグ、<IMG>タグなどでURLを参照する場合、URLのパスは、仮想ディレクトリからの相対パスで指定してください。