SLAX プロセッサーについて(slaxproc)
slaxproc の概要
libslax ディストリビューションには、SLAX ライターと SLAX パーサー、デバッガ、プロファイラ、SLAX プロセッサー(slaxproc)が組み込まれている libslax ライブラリが含まれています。SLAX プロセッサは、SLAX スクリプト構文の検証、SLAX と XSLT の形式間の変換、SLAX スクリプトのフォーマット、デバッグ、実行が可能なコマンドライン ツールです。
SLAX プロセッサーは、 コマンドを使用して slaxproc
コマンド行で呼び出されます。コマンドは slaxproc
、プロセッサーのモード、動作オプション、および必要な入出力ファイルを指定するコマンド行引数を受け入れます。
コマンドの slaxproc
構文は次のとおりです。
slaxproc [mode] [options] [script] [files]
slaxproc モードは、プロセッサーが実行する機能を定義します。slaxproc オプションには、ファイル オプションと一般的なオプションが含まれます。ファイル オプションを使用して、スクリプト ファイル、入力ファイル、出力ファイル、トレース ファイルを指定します。一般的なオプションには、詳細デバッグ出力など、SLAX プロセッサーが提供する追加機能があります。
または -h
オプションを付けて コマンドをslaxproc
発行すると、slaxproc のヘルプに--help
アクセスできます。
$ slaxproc -h
SLAX プロセッサーの詳細については、 slaxproc: SLAX プロセッサーを参照してください。
slaxproc モード
slaxproc モードは、プロセッサーが実行する機能を定義します。デフォルト モードは --run
または -r
です。モードを明示的に指定しない場合、SLAX プロセッサはスクリプトを実行します。 表 1 は、slaxproc モードとその機能の概要を示しています。
モード |
説明 |
---|---|
|
SLAXスクリプトで構文とコンテンツチェックを実行し、エラーを報告します。このモードは、Junos OS を実行するデバイスにスクリプトをインストールまたはアップロードする前に、オフボックス構文チェックを行う場合に便利です。 |
|
SLAX スクリプトをフォーマットし、インデントと、望ましいスタイルへの間の間隔を修正します。 |
|
http://juniper.github.io/libslax/slax-manual.html#json-elements で定義された表記規則を使用して、JSON 入力を XML に変換します。 |
|
SLAX スクリプトを実行します。これはデフォルト モードです。スクリプト名、入力ファイル名、出力ファイル名は、コマンドライン オプション、定位置引数、またはその両方を組み合わせて使用して提供できます。入力はデフォルトで標準入力で、出力はデフォルト値は標準出力です。 |
|
入力ドキュメントからの XPath 選択項目を表示します。このモードは、外部消費のためのスクリプトから選択項目を抽出するために使用されます。これにより、コンシューマーは SLAX パーサーを回避できますが、まだスクリプトの内容を可視化できます。 |
|
グローバル変数の内容を表示します。このモードは、外部消費のための静的変数コンテンツを抽出するために使用されます。これにより、データのコンシューマーは SLAX パーサーを回避できますが、変数などの |
|
SLAX スクリプトを XSLT 形式に変換します。スクリプトファイル名と出力ファイル名は、コマンドラインオプション、定位置引数、またはその両方を組み合わせて使用して提供されます。 |
|
xml を JSON に変換するには、http://juniper.github.io/libslax/slax-manual.html#json-elements で定義された規則を使用します。 |
|
指定された XPath 式に一致する入力ドキュメントからデータを選択します。 |
|
XSLT スクリプトを SLAX 形式に変換します。スクリプトファイル名と出力ファイル名は、コマンドラインオプション、定位置引数、またはその両方を組み合わせて使用して提供されます。 |
slaxproc オプション
slaxproc オプションには、ファイル オプションと一般的なオプションが含まれています。ファイル オプションを使用して、スクリプト ファイル、入力ファイル、出力ファイル、トレース ファイルを指定します。一般的なオプションには、詳細デバッグ出力など、SLAX プロセッサーによって提供される追加の機能やオプションがあります。 表 2 は、slaxproc の一般的なオプションとファイル オプションを示しています。
オプション |
説明 |
---|---|
|
SLAX/XSLT デバッガを有効にします。 |
|
空の文書を入力データ・セットとして指定します。これは、意味のある入力を期待しない、または必要のないスクリプトに役立ちます。 |
|
SLAX 式を XPATH 式に変換します。またはその逆は、--slax-to-xslt または --xslt-to-slax の存在に応じて変換します。 |
|
一連の標準的な拡張機能を提供する EXSLT ライブラリを有効にします。詳細については 、「 http://www.exslt.org 」を参照してください。 |
|
ヘルプメッセージを表示して終了します。 |
|
XML とは異なる HTML パーサーを使用して入力データを解析します。 |
|
それ以上の引数は処理しないでください。これを と |
|
include および import ファイルの使用時に検索されるディレクトリーのリストにディレクトリーを追加します。または、SLAXPATH 環境変数を定義して、コロンで区切られた検索ディレクトリのリストを指定することもできます。 |
|
出力をインデントします。このオプションは、 によって |
|
指定されたファイルからの入力を読み取ります。 |
|
入力がXMLに変換されるにつれて、json属性でJSON要素をタグ付けします。これにより、モードを |
|
ミニ テンプレートからスクリプトを構築する場合、通常のテキストを破棄するテンプレートを追加しないでください。デフォルトでは、XSLT は一致しないテキスト データを表示します。このオプションは、破棄アクションに置き換えるのではなく、デフォルトの動作を保持します。 |
|
拡張ライブラリを使用するときに検索されるディレクトリのリストにディレクトリを追加します。 または、SLAXEXTPATH 環境変数を定義して、検索する拡張ライブラリの場所のコロン区切りのリストを指定することもできます。 |
|
指定したファイルにログ データを書き込みます。 |
|
コマンド ラインから単純なスクリプトを渡します。引数は、通常、名前付きテンプレートや一致テンプレートなどのテンプレートです。 |
|
指定されたファイルから SLAX スクリプトを読み取ります。 |
|
slaxproc モード |
|
乱数ジェネレータは初期化しないでください。これは、スクリプトが一連の呼び出しで同一のデータを返す場合に便利です。このオプションは通常、テスト中にのみ使用されます。 |
|
SLAXデバッガやその他のtty関連の入力ニーズにはttyを使用しないでください。 |
|
指定されたファイルに出力を書き込みます。 |
|
指定された名前と値のペアを使用して、パラメーターをスクリプトに渡します。すべてのパラメータは文字列パラメータであるため、通常のクォートルールが適用されます。 |
|
入力データに部分的な SLAX スクリプトを含めることを許可します。このスクリプトは、 または |
|
SLAX スタイルの XML を使用して結果を作成します。 |
|
トレース データを指定されたファイルに書き込みます。 |
|
関数への呼び出しを含め、トレース・データ出力に詳細な内部デバッグ出力を |
|
バージョン情報を表示して終了します。 |
|
または このオプションを使用して、特定のバージョンの SLAX でのみ機能を使用するように変換を制限できます。許容される値は 1.0、1.1、1.2 です。このオプションを指定しない場合、SLAX スクリプトのバージョンはデフォルトで最新バージョンになります。 |
slaxproc ファイルの引数処理
以外 check
のすべてのモードでは、ファイル引数を位置的に参照するか、ファイル・オプションを使用して入出力ファイルを指定するオプションがあります。ファイル オプションを使用する場合は、コマンド ライン上でファイルを任意の順序で参照でき、そのファイル オプションを他のコマンド ライン オプションに散らやすことができます。
入力ファイルが必要ない場合は、 オプションを -E
使用して空の入力文書を示します。さらに、入力または出力オプション引数に値"-"がある場合は、標準入力または標準出力ファイルが使用されます。標準入力を使用する場合は、Ctrl+dを押してファイルの終わりを知らせます。
コマンド ライン上で位置的にファイルを参照するには、そのモードに必要な場合はスクリプト ファイルを最初に指定し、次に入力ファイルを指定し、最後に出力ファイルを指定します。ファイルを位置的に参照することで、slaxproc を xsltproc とプラグ互換にできます。
$ slaxproc script.slax input.xml output.xml
明示的なファイル オプション値を使用してファイルを参照するには、 を含める --name
または -n
--input
、 、-i
および --output
-o
を使用して、SLAX スクリプト ファイルと入力ファイルと出力ファイルをそれぞれ指定します。
$ slaxproc -i input.xml -n script.slax -o output.xml
ファイル・オプションが指定されていない場合、ファイル名は位置的に解析されます。以下のコマンドでは、入出力ファイル名はファイル・オプションを使用して指定されますが、スクリプト・ファイル名は位置的に参照されます。
$ slaxproc -i input.xml -o output.xml -g -v script.slax
入力ファイルを必要としないスクリプトを実行するには、空の入力ドキュメントを -E
示す オプションを含めます。
$ slaxproc -E script.slax output.xml
slaxproc UNIXスクリプティングのサポート
SLAX は shebang 構造(#!)をサポートしており、スクリプトの 1 行目は「#」と「!"」の後にスクリプトを実行する実行可能ファイルへのパスと一連のコマンドライン引数で始めることができます。例えば:
#!/usr/bin/slaxproc -n or #!/opt/local/bin/slaxproc -n
オペレーティングシステムは、スクリプトの名前とコマンドライン引数を"#!"に続くコマンドラインに追加します。オプションを ‑n
追加すると、コマンドラインに追加の引数を渡すことができます。柔軟な引数解析では、エイリアスを使用できます。例えば、スクリプトの1行目が以下の場合です。
#!/usr/bin/slaxproc -E -n
追加の引数を指定できます。
$ that-script -g output.xml
その結果、コマンドは次のようになります。
/usr/bin/slaxproc -E -n /path/to/that-script -g output.xml
入力または出力引数の値が"-"の場合は、標準入力または標準出力ファイルが使用されます。これにより、slaxproc を従来の UNIX フィルターとして使用できます。