識別子、演算子およびリテラル
このセクションでは、予約されたキーワードとフレーズとその使用方法を示します。 サポートされている演算子が定義され、XML抽出フィールドを参照し、リテラルを使用するためのルールが定義されています。
キーワード
キーワードとキーワード・フレーズには、いくつかのカテゴリがあります:
-
コマンドおよび列ヘッダーのキーワード
-
コマンド・パラメータおよび関数パラメータのキーワード
-
フィールド・レベルのキーワード
-
式キーの単語
コマンドおよび列ヘッダーのキーワード
コマンドおよび列ヘッダーのキーワードは、次に示す形式で使用する必要があります: <> sで囲み、すべての大文字で太字フォントで囲みます。
-
<LEVEL> - データ表の最初のエントリ。 表をXML要素に関連付け、表の階層を指定します。
-
<END LEVEL> - 現在のレベルの終わりを宣言します。 表の末尾またはスタンドアロン表で使用できます。
-
<POSITION> - データ・フィールド行の最初の列の列ヘッダー。レコード内のデータ・フィールドの開始位置を指定します。
-
<LENGTH> - データ・フィールド行の2番目の列の列ヘッダー。データ・フィールドの長さを指定します。
-
<FORMAT> - データ・フィールド行の3列目の列ヘッダー。データ型と書式の設定を指定します。
-
<PAD> - データ・フィールド行の4番目の列の列ヘッダー。パディング・スタイルとパディング文字を指定します。
-
<DATA> - データ・ソースを指定するデータ・フィールド行の5番目の列の列ヘッダー。
-
<COMMENT> - データ・フィールド行の6列目の列ヘッダー。自由形式のコメントを使用できます。
-
<NEW RECORD> - 新しいレコードを指定します。
-
<DISPLAY CONDITION> - レコードを印刷する条件を指定します。
-
<TEMPLATE TYPE> - テンプレートのタイプ(FIXED_POSITION_BASEDまたはDELIMITER_BASED)を指定します。
-
<OUTPUT CHARACTER SET> - 出力の生成時に使用される文字セットを指定します。
-
<NEW RECORD CHARACTER> - 実行時に明示的および暗黙的な新規レコードを示すために使用するcharacter(s)を指定します。
-
<DEFINE LEVEL> - テンプレートの書式固有のレベルを定義します。
-
<BASE LEVEL> - 定義レベルおよび定義連結コマンドのサブコマンド。
-
<GROUPING CRITERIA> - define levelコマンドのサブコマンド。
-
<END DEFINE LEVEL> - レベルの終わりを示します。
-
<DEFINE SEQUENCE> - テンプレート・フィールドで使用するレコードまたは抽出エレメント・ベースの連番を定義します。
-
<RESET AT LEVEL> - define sequenceコマンドのサブコマンド。
-
<INCREMENT BASIS> - define sequenceコマンドのサブコマンド。
-
<START AT> - define sequenceコマンドのサブコマンド。
-
<MAXIMUM> - define sequenceコマンドのサブコマンド。
-
<MINIMUM> - define sequenceコマンドのサブコマンド。
-
<MAXIMUM LENGTH> - データ・フィールド行の最初の列の列ヘッダー。データ・フィールドの最大長を指定します。 DELIMITER_BASEDテンプレートの場合のみ。
-
<END DEFINE SEQUENCE> - 、sequenceコマンドの終了を示します。
-
<DEFINE CONCATENATION> - 親レベル・フィールドで文字列として参照できる子レベル要素の連結を定義します。
-
<ELEMENT> - 連結定義コマンドのサブコマンド。
-
<DELIMITER> - 連結定義コマンドのサブコマンド。
-
<END DEFINE CONCATENATION> - 連結定義コマンドの終わりを示します。
-
<SORT ASCENDING> - レベルのインスタンスのフォーマット固有のソート。
-
<SORT DESCENDING> - レベルのインスタンスのフォーマット固有のソート。
-
<SORT ASCENDING NUMBER> - レベルのインスタンスの数値ソート。
-
<SORT DESCENDING NUMBER> - レベルのインスタンスの数値ソート。
コマンド・パラメータおよびファンクション・パラメータのキーワード
コマンド・パラメータと関数パラメータのキーワードは、すべて大文字で太字以外のフォントで入力する必要があります。
-
PERIODIC_SEQUENCE - define sequenceコマンドのレベルでのresetサブコマンドで使用されます。 連番はテンプレート外でリセットされることを示します。
-
FIXED_POSITION_BASED, DELIMITER_BASED - template typeコマンドで使用するテンプレートのタイプを指定します。
-
RECORD, LEVEL - シーケンス定義コマンドの増分基準サブコマンドで使用されます。 RECORDは、新しいレコードで使用されるたびにシーケンスを増分します。 LEVELは、レベルの新しいインスタンスに対してのみ順序を増分します。
フィールド・レベルのキーワード
このセクションでは、キーワードのリストを示し、それぞれのデータ型を指定します。
-
アルファ -
<FORMAT>
列で、データ型が英数字であることを指定します。 -
番号 -
<FORMAT>
列で、データ型が数値であることを指定します。 -
整数 -
<FORMAT>
列で、Numberキーワードとともに使用されます。 数値の整数部分を取得します。 これはINTEGER関数と同じ機能を持ちますが、INTEGER関数は式で使用され、INTEGERキーワードは<FORMAT>
列でのみ使用されます。 -
小数 -
<FORMAT>
列で、Numberキーワードとともに使用されます。 数値の小数部分を取得します。 これはDECIMAL関数と同じ機能を持ちますが、DECIMAL関数は式で使用され、DECIMALキーワードは<FORMAT>
列でのみ使用されます。 -
日付 -
<FORMAT>
列で、データ型がdateを指定します。 -
<PAD>
列のL、R- は、パディングの側面(左または右)を指定します。
式キーワード
式で使用するキーワードとフレーズは、大文字と太字のフォントである必要があります。
-
IF THEN ELSE IF THEN ELSE END IF - これらのキーワードは、常にグループとして使用されます。 "IF"制御構造式を指定します。
-
IS NULL, IS NOT NULL - これらのフレーズはIF制御構造で使用されます。 式がNULLまたはNULLでないかどうかをテストするブール述語の一部を形成します。
演算子
2つの演算子グループがあります: ブール・テスト演算子および式演算子。
ブール・テスト演算子は次のとおりです: "="、" <> "、" <", "> "、">="、"<="。 IF制御構造でのみ使用できます。 式演算子には次のものが含まれます: "()、||、+、-および*。 これらは任意の式で使用できます。
次の表に、演算子とその使用方法を示します。
記号 | 使用方法 |
---|---|
= |
testと等しい。 IF制御構造でのみ使用されます。 |
<> |
テストと等しくない。 IF制御構造でのみ使用されます。 |
→▲ |
テストより大きい。 IF制御構造でのみ使用されます。 |
< |
テストより小さい。 IF制御構造でのみ使用されます。 |
>= |
テスト以上。 IF制御構造でのみ使用されます。 |
<= |
テスト以下。 IF制御構造でのみ使用されます。 |
() |
関数引数および式グループ・デリミタ。 "() "内の式グループは、常に最初に評価されます。"() "はネストできます。 |
| |
|
|| |
文字列連結演算子。 |
+ |
加算演算子。 オペランドのいずれかが数値でない場合、暗黙的な型変換を実行できます。 |
- |
減算演算子。 オペランドのいずれかが数値でない場合、暗黙的な型変換を実行できます。 |
* |
乗算演算子。 オペランドのいずれかが数値でない場合、暗黙的な型変換を実行できます。 |
DIV |
除算オペランド。 オペランドのいずれかが数値でない場合、暗黙的な型変換を実行できます。 "/"はXPATH構文の一部であるため使用されないことに注意してください。 |
IN |
Equal-to-any-member-of test. |
次に含まれない |
IN演算子を否定します。 Not-Equal-to-any-member-of test. |
XML抽出フィールドおよびXPATH構文の参照
XML要素は任意の式で使用できます。
実行時、XML要素は対応するフィールド値に置き換えられます。 フィールド名では大文字と小文字が区別されます。
テンプレートでXML抽出フィールドを使用する場合は、XPATH構文に従う必要があります。 これは、「パブリッシャ」がXML要素を正しく解釈できるようにするために必要です。
「パブリッシャ」書式設定プロセスでは、常にコンテキスト要素とみなされる抽出要素があります。 「パブリッシャ」が表のデータ行を処理する場合、表のレベル要素はコンテキスト要素です。 たとえば、「パブリッシャ」が支払表のデータ行を処理する場合、Paymentはコンテキスト要素です。 抽出要素を参照するために使用する相対XPATHは、コンテキスト要素で指定されます。
たとえば、支払データ表のPayeeName要素を参照するには、次の相対パスを指定します:
Payee/PayeeInfo/PayeeName
XML要素階層の各レイヤーは、バックスラッシュ(/)で区切られます。 この表記は、ネストされた要素に使用します。 レベルの直接の子要素の相対パスは、要素名そのものです。 たとえば、TransactionID要素名をPayment表と同じように使用できます。
子レベル表の親レベル要素を参照するには、../表記法を使用できます。 たとえば、支払表でBatchName要素を参照する必要がある場合は、../BatchName
を指定できます。 "../"はコンテキストとしてバッチを提供します。このコンテキストでは、BatchName要素名を直接使用できます。BatchNameはバッチの直接の子です。 この表記は、親要素の任意のレベルまで表示されます。 たとえば、支払データ表のRequesterParty要素(RequestHeader内)を参照する必要がある場合は、次を指定できます:
../../TrxnParties/RequesterParty
絶対パスを使用して、テンプレート内の任意の場所に抽出要素を参照できます。 絶対パスはバックスラッシュ(/)で始まります。 前述の支払表の例のPayeeNameには、次の絶対パスがあります: /BatchRequest/Batch/Payment/Payee/PayeeInfo/PayeeName
絶対パス構文を使用すると、パフォーマンスが向上します。
定義レベル、定義順序、連結の定義など、設定コマンドによって定義される識別子は、グローバルとみなされます。 テンプレート内の任意の場所で使用できます。 絶対パスまたは相対パスは必要ありません。 設定コマンドの基本レベルとレベルでリセットを指定することもできます。 「パブリッシャ」では、適切なコンテキストを見つけることができます。
相対パス構文を使用する場合は、次のコマンドでベース・レベルに対する相対パスを指定する必要があります:
-
連結定義コマンドの要素サブコマンド
-
レベル定義コマンドのグループ化基準サブコマンド
define sequenceコマンドのstart atサブコマンドの抽出フィールド参照は、絶対パスで指定する必要があります。
levelコマンドの抽出要素を参照するルールは、データ・フィールドのルールと同じです。 たとえば、バッチ・レベル表とネストされた支払レベル表がある場合は、支払表にそのまま支払要素名を指定できます。 支払表のレベル・コマンドを評価するためのコンテキストはバッチであるためです。
ただし、支払レベルをスキップし、バッチ表のすぐ下に請求書レベルの表がある場合は、請求書表のレベル要素として支払/請求書を指定する必要があります。
テンプレートに必要なXPATH構文は、UNIX/LINUXディレクトリ構文と非常によく似ています。 context要素は現在のディレクトリと同じです。 現在のディレクトリに相対的なファイルを指定することも、「/」で始まる絶対パスを使用することもできます。
最後に、define levelコマンドのgrouping criteriaサブコマンドの結果として抽出フィールド参照を単一引用符で指定する必要があります。 これにより、抽出フィールドをグループ化基準として使用するように「パブリッシャ」エンジンに指示され、値には表示されません。
ブラウザからのeText出力の表示に関するノート
レポート・データに簡体字中国語文字が含まれ、<OUTPUT CHARACTER SET>がGBKに設定されている場合、gbk2312エンコーディングのInternet Explorer 7では中国語文字が正しく表示されません。
この問題は、ネイティブの日本語や韓国語など、英語以外のエンコーディングでも発生する可能性があります。 出力は、eTextテンプレートで文字セットをGBKに設定し、ブラウザ・エンコーディングをGBKまたはGB2312に設定するときに、Firefox 3.5で適切にレンダリングされます。 この問題を回避するには、<OUTPUT CHARACTER SET>をutf-8に設定します。 これはブラウザ表示の問題のみであることに注意してください。 テキスト・ファイルが正しく生成されます。