SLAX プロセッサーの使用方法(slaxproc)
SLAX プロセッサー(slaxproc)は、SLAX スクリプト構文の検証、SLAX と XSLT のフォーマット間の変換、SLAX スクリプトのフォーマットまたは実行が可能なコマンドライン ツールです。slaxproc モードは、プロセッサーが実行する機能を定義します。次のセクションでは、一般的に使用されるモードについて概説します。slaxproc モードの完全な一覧については、 SLAX プロセッサーについて(slaxproc)を参照してください。
SLAXスクリプト構文の検証
SLAX プロセッサには、SLAX スクリプトの構文を確認するオプションがあります。
SLAXスクリプトの構文を確認するには、 または
-cモードオプションと--checkスクリプトファイル名で コマンドを発行slaxprocします。$ slaxproc --check script1.slax OR $ slaxproc -c script1.slax
スクリプト構文が正しい場合、SLAX プロセッサは「スクリプト チェックに成功しました」というメッセージを発行します。それ以外の場合、プロセッサーはスクリプト解析中に検出されたエラー・メッセージのリストを出します。示されたエラーを修正し、チェックを繰り返します。
XSLT と SLAX 形式間のスクリプト変換
SLAX プロセッサーは、SLAX と XSLT フォーマット間のスクリプト変換をサポートしています。スクリプトを変換する場合、ファイル引数を正確に参照するか、コマンドライン ファイル オプションを使用するか、 または -i --output -oを使用して元--inputの入力スクリプトと変換された出力スクリプトをそれぞれ指定できます。コマンド ライン ファイル オプションを使用する場合は、コマンド ライン上でファイルを任意の順序で参照でき、そのファイル オプションを他のコマンド ライン オプションに分散させることができます。
入力ファイルまたは出力ファイルを指定する引数を指定しない場合は、標準入力または標準出力が使用されます。標準入力を使用する場合は、Ctrl+dを押してファイルの終わりを知らせます。
SLAX スクリプトを XSLT に変換するには、 または -x モード オプションを使用して slaxproc コマンドを--slax-to-xslt発行します。ファイルを位置的に参照するには、最初の引数として入力 SLAX ファイルを指定し、変換された XSLT スクリプトの出力パスとファイル名を 2 番目の引数として指定します。コマンドライン ファイル オプションを使用してファイルを参照するには、ファイル オプションを任意の順序で含めます。例えば:
$ slaxproc --slax-to-xslt test/script2.slax test/script2.xsl OR $ slaxproc -x -i test/script2.slax -o test/script2.xsl
XSLT スクリプトを SLAX に変換するには、 または -s モード オプションを指定して slaxproc コマンドを--xslt-to-slax発行します。ファイルを位置的に参照するには、最初の引数として入力 XSLT ファイルを指定し、変換された SLAX スクリプトの出力パスとファイル名を 2 番目の引数として指定します。コマンドライン ファイル オプションを使用してファイルを参照するには、ファイル オプションを任意の順序で含めます。
オプションとして、XSLT から SLAX にスクリプトを変換する場合は、 または -w オプションを含--write-versionめ、変換されたスクリプトの SLAX バージョンを指定します。許容される値は 1.0、1.1、1.2 です。デフォルトバージョンはSLAXの最新バージョンです。出力に -p SLAX スクリプト定型プレートが不要な場合は、部分入力の オプションを使用します。
次の例では、XSLT スクリプト スクリプト 1.xsl を SLAX スクリプト スクリプト 1.slax に変換します。SLAX スクリプトには、スクリプトの 1 行目として ステートメント "version 1.0;" が含まれます。
$ slaxproc --xslt-to-slax -w 1.0 test/script1.xsl test/script1.slax OR $ slaxproc -s -w 1.0 -i test/script1.xsl -o test/script1.slax
このオプションを使用した -p slaxproc --xslt-to-slax モードは、Junos OS 階層を XML 形式から SLAX に迅速に変換する場合に便利です。次の例では、JUNOS OS [edit policy-options] 階層を XML 形式で SLAX プロセッサーへの入力として提供しています。オプションは-p、完全なスクリプトとは対照的に、スクリプト入力の一部を示しています。
$ slaxproc -s -p
<policy-options>
<policy-statement>
<name>export-policy</name>
<term>
<name>term1</name>
<from>
<route-filter>
<address>10.0.4.4/30</address>
<prefix-length-range>/30-/30</prefix-length-range>
</route-filter>
</from>
<then>
<accept/>
</then>
</term>
</policy-statement>
</policy-options>
[Ctrl+d]
SLAX プロセッサは、 階層の SLAX フォーマットを返します。
<policy-options> {
<policy-statement> {
<name> "export-policy";
<term> {
<name> "term1";
<from> {
<route-filter> {
<address> "10.0.4.4/30";
<prefix-length-range> "/30-/30";
}
}
<then> {
<accept>;
}
}
}
}
SLAX スクリプトの実行
SLAX プロセッサは、コマンド ラインからの SLAX スクリプトの実行をサポートします。これはデフォルトのslaxprocモードです。このモードを明示的に使用するには、 または -r コマンドライン モード オプションで コマンドを--run発行slaxprocします。
スクリプトを実行する場合は、ファイル引数を位置的に参照するか、コマンドライン ファイル オプションまたは 、 または --output -o-n-i--input 、 または を使用して、 --name SLAX スクリプト ファイルと入力ファイルと出力ファイルをそれぞれ指定できます。コマンド ライン ファイル オプションを使用する場合は、コマンド ライン上でファイルを任意の順序で参照でき、そのファイル オプションを他のコマンド ライン オプションに分散させることができます。
入力ファイルが必要ない場合は、 オプションを -E 使用して空の入力文書を示します。さらに、入力または出力引数の値が"-"の場合、標準入力または標準出力が使用されます。標準入力を使用する場合は、Ctrl+dを押してファイルの終わりを知らせます。
スクリプトを実行するための構文は次のとおりです。
$ slaxproc script input-file output-file OR $ slaxproc (--name | -n) script (--input | -i) input-file (--output | -o) output-file
slaxproc コマンドライン ツールを使用してスクリプトを実行するには、次の手順に沿います。
SLAX スクリプトのフォーマット
SLAX プロセッサには、くぼみと希望するスタイルへのスペーシングを修正するスクリプトの書式を設定するオプションが用意されています。スクリプトをフォーマットする場合、ファイル引数を位置的に参照するか、コマンドライン ファイル オプションを使用するか、 または または -oを-i--output使用して、--inputフォーマットされていない入力ファイルとフォーマットされた出力ファイルをそれぞれ指定することができます。コマンド ライン ファイル オプションを使用する場合、そのファイルはコマンド ライン上で任意の順序で参照できます。
SLAX スクリプトをフォーマットするには、 または -F モード オプションをslaxproc使用して コマンドを--format発行します。ファイルを位置的に参照するには、フォーマットされていないSLAXスクリプトを最初の引数として指定し、2番目の引数としてフォーマットされたSLAXスクリプトの出力パスとファイル名を指定します。コマンドライン ファイル オプションを使用してファイルを参照するには、ファイル オプションを任意の順序で含めます。例えば:
$ slaxproc --format script1.slax script1-format.slax OR $ slaxproc -F -i script1.slax -o script1-format.slax
次の未フォーマット SLAX スクリプトを入力として指定します。
version 1.1;
decimal-format default-format {
decimal-separator "." ;
digit "#" ;
grouping-separator "," ;
infinity "Infinity" ;
minus-sign "-" ;
nan "NaN";
pattern-separator ";" ;
percent "%";
per-mille "\x2030";
zero-digit "0" ;
}
match / {
var $number = -14560302.5;
expr format-number($number, "###,###.00", "default-format");
}
SLAX プロセッサは、次のフォーマットされた SLAX スクリプトを出力します。
version 1.1;
decimal-format default-format {
decimal-separator ".";
digit "#";
grouping-separator ",";
infinity "Infinity";
minus-sign "-";
pattern-separator ";";
percent "%";
per-mille " 30";
zero-digit "0";
nan "NaN";
}
match / {
var $number = -14560302.5;
expr format-number($number, "###,###.00", "default-format");
}