ZIETrans のコンポーネント・タグおよび属性

ZIETrans は、ZIETrans Toolkit の変換構成中に行われる ホスト・コンポーネントウィジェット (widget) の選択を反映した JavaServer Pages (JSP) ページを作成します (また、.jsp ファイルに情報を書き込みます)。ZIETrans は、この構成を <ZIETrans:Component> タグの一連の属性として書き込みます。<ZIETrans:Component> タグは、ホスト・コンポーネント を定義し、ウィジェット (widget) 出力を指定するコードを呼び出します。ZIETrans プロジェクトの変換を表示または編集するには、「ZIETrans プロジェクト」ビューでプロジェクトを展開し、「Web コンテンツ/変換 」の中を参照します。

この JSP コードの例は、 <ZIETrans:Component> タグのフォーマットを示しています。
<ZIETrans:Component type="<fully qualified component class name>" 
   widget="<fully qualified widget class name>" 
   row="1" col="1" erow="24" ecol="80" componentSettings="" widgetSettings="" 
   textReplacement=""  />
<ZIETrans:Component> タグの属性データにより、どのホスト・コンポーネントウィジェット (widget)のクラスを呼び出し、該当するウィジェット (widget)をどのように HTML 出力で表示するのかが決定されます。<ZIETrans:Component> タグの type 属性は、選択されたホスト画面コンポーネントを認識する際に使用するコンポーネント認識クラスを指定します。widget 属性は、HTML 出力を生成する際に使用するレンダリング・クラスを指定します。次のリストに、その他の属性を示します。
row
ホスト・コンポーネント認識の開始行の位置。
col
ホスト・コンポーネント認識の開始カラムの位置。
erow
ホスト・コンポーネント認識の終了行の位置。ホスト画面上の最後の行を示すには、-1 を指定します。
ecol
ホスト・コンポーネント認識の終了カラムの位置。ホスト画面上の最後の列を示すには、-1 を指定します。
componentSettings
コンポーネント・クラスに送信された一連のキーおよび値の組。componentSettings 値を指定する場合、key:value の形式で指定してください。複数の key:value 組を指定する場合は、分割垂直バー ( | ) で区切ってください。たとえば、<.. componentSettings="key1:value1|key2:value2" ... > です。

componentSettings 属性は、コンポーネントの拡張カスタマイズに使用できます。リスト全体を 引用符で囲みます。例えば、コマンド行がトークンに ==> の代わりに >>> を使用した場合、このコンポーネント設定値をここで渡すことができます。

widgetSettings
ウィジェット (widget)・クラスに送信された一連のキーおよび値の組。widgetSettings 値を指定する場合、key:value の形式で指定してください。複数の key:value 組を指定する場合は、分割垂直バー ( | ) で区切ってください。リスト全体を 引用符で囲みます。たとえば、<... widgetSettings="key1:value1|key2:value2" ... > です。

widgetSettings 属性は、ウィジェット (widget)の拡張カスタマイズに使用できます。例えば、一定のカラム数を含んだテーブルが必要な場合、ここでウィジェット (widget)設定を渡すことができます。

textReplacement
コンポーネントの使用でのテキスト置換の定義設定。テキスト置換の属性はプロジェクト・レベルのテキスト置換の定義と同じです。属性の説明については、<replace> タグを参照してください。
テキスト置換を定義する際、特殊文字を置換する場合は、以下の設定を使用する必要があります。
@vb.
| (分割垂直バー)
@cm.
, (コンマ)
@dq.
" (二重引用符)
@lt.
< (より小さい)
@gt.
> (より大きい)
@eq.
= (等号)
例えば、ABC というストリングを "ABC" というストリングに置換するには、次のようにテキスト置換を指定します。
textreplacement="ABC=@dq.ABC@dq." 
ZIETrans は次の手順に従って、JSP ページで検出した各 <ZIETrans:Component> タグを処理します。
  1. ZIETrans は、タグの type 属性によって指定されたコンポーネントのインスタンスの生成を試みます。この属性に指定できるのは、ZIETrans によって提供されるコンポーネント、またはユーザーによって作成されたコンポーネントの完全修飾クラス名です。
    注: ユーザーは com.company.division.product.MyComponent のように完全修飾パスを指定する必要があります。ZIETrans Toolkit でカスタム・コンポーネントを処理できるようにするには、WEB-INF/classes ディレクトリーまたは WEB-INF/lib ディレクトリー内の jar ファイルにクラス・ファイルを置きます。必要に応じて、プロジェクトのソース・ディレクトリーに ソース (.java) ファイルをインポートできます。カスタム・コンポーネントをテストしたが ZIETrans Toolkit では処理しない場合は、WebSphere® Application Server へのインストール時に、ZIETrans アプリケーションが .jar ファイルを使用できるようにする必要があります。
  2. ZIETrans は、タグの ウィジェット (widget) 属性によって指定された ウィジェット (widget) オブジェクトのインスタンスの生成を試みます。
    注: com.company.division.product.MyWidget のように、完全修飾パスを指定する必要があります。ZIETrans Toolkit でカスタム・ウィジェットを処理できるようにするには、WEB-INF/classes ディレクトリーまたは WEB-INF/lib ディレクトリー内の jar ファイルにクラス・ファイルを置きます。必要に応じて、プロジェクトのソース・ディレクトリーに ソース (.java) ファイルをインポートできます。カスタム・ウィジェットをテストしたが ZIETrans Toolkit では処理しない場合は、WebSphere Application Server へのインストール時に、ZIETrans アプリケーションが jar ファイルを使用できるようにする必要があります。
  3. ZIETrans は、コンポーネント・オブジェクトの recognize() メソッドを呼び出します。

    各コンポーネントには、recognize() メソッドの異なるインプリメンテーションがあります。recognize() メソッドは、パターン認識論理やホスト画面データの位置指定を実行します。コンポーネント・クラスは、com.ibm.hats.transform.ComponentElement オブジェクトの配列を戻します。この配列は、指定された設定で指定された領域においてこのコンポーネントが 認識した内容を論理的に表したものです。

  4. ZIETransは、コンポーネント・オブジェクトの recognize() メソッドによって戻される配列内の各 ComponentElement オブジェクトで doTextReplacement() メソッドを呼び出すことによって、テキスト置換を実行します。
  5. ZIETrans は、ウィジェット (widget)drawHTML() メソッドを呼び出します。適当な drawHTML() メソッドが見つからない場合は、ウィジェットの draw() メソッドが呼び出されます。このメソッドは、コンポーネントによって戻されるコンポーネント・エレメント配列内の各コンポーネント・エレメントにおける 連結された toString() 呼び出しだけを戻します (サブクラスによってオーバーライド されない場合)。

    drawHTML() メソッドは、コンポーネント・エレメントの配列を HTML 出力形式でレンダリングします。drawHTML() メソッドは、提供されたコンポーネント・エレメント配列のレンダリングを含む StringBuffer オブジェクトを戻すことによってこれを実行します。コンポーネントに使用したウィジェットによって、コンポーネント・エレメントがレンダリングされる方法が決まります。また、2 つのウィジェットが同じタイプの入力データを使用することができます。例えば、Link ウィジェットと Button ウィジェットはどちらも同じタイプの入力データを使用しますが、それぞれの drawHTML() メソッドは異なる HTML コンテンツを生成します。

次の図は、ホスト画面の領域からコンポーネントやウィジェットを経由して Web ページに流れるデータのフローを示したものです。
図 1. ホスト画面から Web ページまでのデータのフロー
ホスト画面から Web ページまでのデータのフロー