Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

SLAXステートメントの概要

このセクションでは、一般的に使用されるいくつかの SLAX ステートメントを、簡単な例と XSLT の同等のステートメントと共にリストします。

for-eachステートメント

SLAX for-each ステートメントは、 <xsl:for-each> 要素と同様に機能します。ステートメントは、 for-each キーワード、括弧で区切られた式、および中括弧で区切られたブロックで構成されます。 for-each ステートメントは、一連のノードを集めて 1 つずつ処理するようにプロセッサに指示します。ノードは、指定された XPath 式により選択されます。その後、各ノードは、 for-each コードブロックに保持されている命令に従って処理されます。

for-each 命令内のコードは、XPath 式に一致する各ノードに対して再帰的に評価されます。つまり、現在のコンテキストは for-each 句によって選択された各ノードに移動され、処理はその現在のコンテキストに対して相対的に行われます。

次の例では、inventory変数に在庫階層が格納されます。for-each ステートメントは、chassis ノードの子である chassis-module の子である各 chassis-sub-module ノードを再帰的に処理します。指定した部品番号と等しい値を持つpart-numberを含むchassis-sub-module要素ごとに、シャーシ モジュールの名前とシャーシ サブモジュールの名前と説明を含むmessage要素が作成されます。

これに相当する XSLT は、以下の通りです。

if、else if、および else ステートメント

SLAX は、 ifelse ifelse ステートメントをサポートしています。 if ステートメントは、指定された XPath 式が true と評価された場合に命令が処理される条件構造です。 if コンストラクトには 1 つ以上の else if 句が関連付けられており、それぞれが XPath 式をテストします。 if ステートメントの式が false と評価された場合、プロセッサは各 else if 式をチェックします。ステートメントが true と評価された場合、スクリプトは関連するブロック内の命令を実行し、後続の else if ステートメントと else ステートメントをすべて無視します。オプションの else 句は、関連付けられているすべての if 式と else-if 式が false と評価された場合に実行される既定のコードです。すべての if ステートメントと else if ステートメントが false と評価され、 else ステートメントが存在しない場合、アクションは実行されません。

括弧内に表示される式は拡張 XPath 式であり、XPath の 1 つの等号 (=) の代わりに二重等号 (==) をサポートします。

スクリプト処理中に、else if または else ステートメントが関連付けられていない if ステートメントは、<xsl:if> 要素に変換されます。else if 句または else 句が存在する場合は、if ステートメントと関連する else if ブロックと else ブロックが <xsl:choose> 要素に変換されます。

これに相当する XSLT は、以下の通りです。

match ステートメント

基本的な一致テンプレートを指定するには、 match ステートメントを使用し、その後にテンプレートを許可するタイミングを指定する式と、一組の中括弧で囲まれたステートメントのブロックが続きます。

これに相当する XSLT は、以下の通りです。

一致テンプレートの構築の詳細については、「 SLAX テンプレートの概要」を参照してください。

nsステートメント

名前空間の定義は、SLAX ns ステートメントを使用して指定します。これは、 ns キーワード、プレフィックス文字列、等号、および名前空間の Uniform Resource Identifier (URI) で構成されます。既定の名前空間を定義するには、 ns キーワードと名前空間 URI のみを使用します。

nsステートメントは、versionステートメントの後、スタイルシートの先頭または任意のブロックの先頭に記述できます。

スタイルシートの先頭に表示される場合、 ns ステートメントには exclude または extension キーワードを含めることができます。キーワードは、 exclude-result-prefixes 属性または extension-element-prefixes 属性に名前空間プレフィックスを追加するようにパーサーに指示します。

これに相当する XSLT は、以下の通りです。

version ステートメント

すべての SLAX スタイル シートは、SLAX 言語のバージョン番号を指定する version ステートメントで始まる必要があります。サポートされているバージョンは、1.0、1.1、1.2 です。