コンテキスト・コマンドを使用した命令の配置の制御
「パブリッシャ」構文は簡略化されたXSL命令です。 この構文は、テンプレートで使用できるネイティブXSLコマンドとともに、実行時にXSL-FOに変換されます。 変換されたスタイル・シート内でのこれらの指示の配置によって、テンプレートの動作が決まります。
「パブリッシャ」のRTFプロセッサは、これらの指示を最も一般的なコンテキストに従ってXSL-FOスタイル・シート内に配置します。 ただし、特定の動作を作成するには、命令のコンテキストを異なる方法で定義する必要がある場合があります。 この要件をサポートするために、「パブリッシャ」には、処理命令のコンテキスト(または配置)を定義できる一連のコンテキスト・コマンドが用意されています。 たとえば、コンテキスト・コマンドを使用すると、次のことができます:
-
セル、行、列または表全体を参照する
if
文を表に指定します。 -
現在のデータまたは完全なセクションを繰り返すfor-eachループを指定します(新しいヘッダーおよびフッターを作成してページ番号を再開するため)
-
現在のループまたはドキュメントの先頭で変数を定義します。
「パブリッシャ」構文とネイティブXSLを使用する処理コマンドの両方にコンテキストを指定できます。
-
簡易「パブリッシャ」構文を使用して処理コマンドのコンテキストを指定するには、単純に構文命令に@contextを追加します。 たとえば:
-
<?for-each@section:INVOICE?>
- グループINVOICEが出現ごとに新しいセクションを開始することを指定します。 セクション・コンテキストを追加することで、ヘッダーとフッター、ページの番号付けをリセットできます。ページ番号付けを再開しない場合は、コマンドを追加 : @sectionコマンドの後に
<?initial-page-number:'auto'?>
を指定すると、セクション間のページ番号付けが続行されます。 -
<?if@column:VAT?>
-if
文をVAT列にのみ適用することを指定します。
-
-
XSLコマンドのコンテキストを指定するには、タグにxdofo:ctx="context"属性を追加して、命令の挿入のコンテキストを指定します。 コンテキストの値によって、コードが配置される場所が決まります。
たとえば:
<xsl:for-each xdofo:ctx="section" select ="INVOICE">
<xsl:attribute xdofo:ctx="inblock" name="background-color">red</xsl:attribute>
「パブリッシャ」は、次の表で説明するコンテキスト・タイプをサポートしています:
コンテキスト | 説明 |
---|---|
セクション |
この文は、ヘッダーおよびフッターを含むセクション全体に影響します。 たとえば、for-each@sectionコンテキスト・コマンドは、出現ごとに新しいセクションを作成 - 再起動されたページ番号、ヘッダーおよびフッター。 |
カラム |
この文は、表の列全体に影響します。 このコンテキストは通常、データに応じて表の列を表示および非表示にするために使用されます。 例については、「列の書式設定」を参照してください。 |
セル |
この文は、表のセルに影響を与えます。 多くの場合、ピボット表の@columnとともに使用して、動的な列数を作成します。 例については、「ピボット表の挿入」を参照してください。 |
block |
この文は、複数の完全なfo:blocks (RTF段落)に影響します。 このコンテキストは通常、 |
inline |
コンテキストは、fo:inlineブロック内の単一の文になります。 このコンテキストは変数に使用されます。 |
コンテキスト内 |
この文は、前後の文の直後に挿入されます。 これは、最初の要素として周囲のfor-eachに従う必要がある |
ブロック |
この文は、fo:block (RTF段落)内の単一の文になります。 これは通常、制御文( |
インライン |
この文は、複数の完全なインライン・セクションに影響します。 インライン・セクションは、太字でレンダリングされた単語のグループなど、同じ書式設定を使用するテキストです。 「ボイラープレート・テキストでのIf文の使用」を参照してください。
|
始める |
文はXSLスタイル・シートの先頭に配置されます。 これはグローバル変数に必要です。 「パラメータの設定」を参照してください。 |
end |
文はXSLスタイル・シートの最後に配置されます。 |
次の表に、「パブリッシャ」コマンドのデフォルト・コンテキストを示します:
コマンド | コンテキスト |
---|---|
apply-template |
inline |
属性 |
inline |
call-template |
ブロック |
選択 |
block |
for-each |
block |
if |
block |
インポート |
始める |
param |
始める |
ソート |
コンテキスト内 |
テンプレート |
end |
value-of |
inline |
変数 |
end |