CFPROCESSINGDIRECTIVE  
説明

現在のページの処理方法に関して ColdFusion に以下の情報を与えます。

  • ColdFusion によってタグ本文に生成された内容から余分な空白文字を削除するかどうかを指定します。
  • ページ内容の文字エンコード (文字セット) を指定します。
 
カテゴリ

データ出力タグ、ページ処理タグ

 
シンタックス
<cfprocessingdirective
   pageencoding = "page-encoding literal string" />
または
<cfprocessingdirective
   suppressWhiteSpace = "yes"、"no"
   pageEncoding = "page-encoding literal string">
   CFML タグ
</cfprocessingdirective>
 
関連項目

cfcol、cfcontent、cfoutput、cfsetting、cfsilent、cftable、SetEncoding、『ColdFusion MX 開発ガイド』の第17章の「グローバル化アプリケーションの開発」

 
ヒストリ

ColdFusion MX:

  • suppresswhitespace 属性値の動作が変更されました。suppresswhitespace 属性値を文字列変数として指定できます。ColdFusion 5 では、この属性の値は定数として設定する場合のみサポートされていました。
  • pageEncoding 属性が追加されました。

 
使用方法

cfprocssingdirective タグには、使用する属性に依存する制限があります。このため、cfprocessingdirective タグでは、pageencoding 属性または suppresswhitespace 属性のいずれか一方だけを使用することをお勧めします。両方の値を指定する場合は、別々のタグを使用します。

ColdFusion コンポーネント (.cfc ファイル) では、cfprocessingdirective タグは cfcomponent タグの後に続く必要があります。

pageEncoding 属性を使用する場合は、次のルールが適用されます。

  • このタグはページの最初の 4096 バイト内に配置する必要があります。cfsetting または cfsilent タグの後に配置できます。
  • cfinclude タグや cfmodule タグ、カスタムタグの呼び出しなどを使って他のページをインクルードしているページでこのタグを使用する場合、インクルードしたページにはこのタグの設定は適用されません。
  • pageEncoding 属性は、ページの実行時ではなくコンパイル時に評価されるため、タグを条件論理式に埋め込むことはできません。たとえば、次のコードでは cfprocessingdirective タグは既に評価されているため、実行時に何の影響も与えません。
  • <cfif dynEncoding is not "dynamic encoding is not possible">
       <cfprocessingdirective pageencoding=#dynEncoding#>
    </cfif> 
    
  • pageEncoding 属性を指定する cfprocessingdirective タグが 1 ページ内に複数ある場合は、指定する値をすべて同じにする必要があります。値が異なる場合は、エラーが発生します。
  • pageencoding 属性のみを指定する場合は、単独の終了タグを使用しないでください。
  • ColdFusion では、Java プラットフォームでサポートされる文字エンコード名を使用できます。無効な名前が指定された場合は、InvalidEncodingSpecification エラーが発生します。
  • ページに BOM があり、pageencoding 属性で指定したエンコードが BOM と異なる場合は、エラーが発生します。

suppressWhiteSpace 属性を使用する場合は、次のルールが適用されます。

  • suppresswhitespace 属性値は、定数または変数として指定することができます。変数を使用するには、変数 (たとえば、whitespaceSetting) を定義し、これに値 yes または no を割り当て、次のようにステートメントのコードを作成します。
  • <!--- ColdFusion によって、実行時に削除オプションを設定できるようにする --->
    <cfprocessingdirective suppresswhitespace=#whitespaceSetting#>
        設定値がどの出力に適用されるのかをコーディングします。
    </cfprocessingdirective>
    
  • suppresswhitespace 属性は、<cfprocessingdirective> 開始タグと </cfprocessingdirective> 終了タグの間に配置するコードにのみ適用されます。

次の例では、ネストされた cfprocessingdirective タグの使い方を示します。外側のタグは、大きなテーブルの計算時に不要な空白を削除します。内側のタグは空白を保持して、書式設定済みのテーブルを出力します。

 
<cfprocessingdirective suppressWhiteSpace = "Yes">
   <!--- CFML コード --->
   <cfprocessingdirective suppressWhiteSpace = "No">
      <cfoutput>#table_data#
      </cfoutput>
   </cfprocessingdirective>
</cfprocessingdirective> 

次の例では、pageencoding 属性の使い方を示します。

<cfprocessingdirective pageencoding = "shift_jis">
SUPPRESSWHITESPACE  
  オプション
 

ブール値です。cfprocessingdirective ブロック内の空白文字を削除するかどうかを指定します。空白文字は CFML タグによって生成され、HTML の外観にはほとんど影響しません。この設定は、HTML コード内の空白には適用されません。

PAGEENCODING  
  オプション
 
Default value: "文字エンコードはページの BOM (Byte Order Mark) によって識別され、BOM がない場合はシステムのデフォルトのエンコードが使用される"

文字列リテラルです。変数は使用できません。現在の CFML ページの文字エンコードを指定します。この属性は、cfprocessing タグ本文だけでなく、ページ全体に適用されます。この値を一重引用符または二重引用符で囲むこともできますが、囲まなくても問題ありません。

一般的に使用される値を次に示します。

  • utf-8
  • iso-8859-1
  • windows-1252
  • us-ascii
  • shift_jis
  • iso-2022-jp
  • euc-jp
  • euc-kr
  • big5
  • euc-cn
  • utf-16

文字エンコードの詳細については、www.w3.org/International/O-charset.html を参照してください。