Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

SLAX の概要

Stylesheet Language Alternative syntaX(SLAX)は、Junos OS コミット スクリプト、op スクリプト、イベント スクリプト、SNMP スクリプトを記述するための言語です。XSLT(Extensible Stylesheet Language Transformations)の代替手段です。SLAX の構文は C や Perl と似ていますが、XSLT と同じセマンティクスです。

SLAX のメリット

XSLT は、マシン間の通信に適した XML(Extensible Markup Language )を処理するための強力かつ効果的なツールですが、XML ベースの構文は複雑なプログラムの開発には不便です。

SLAX は、C と PERL のスタイルに従ったシンプルな構文を備えています。実用的で簡潔なコードを作成できるため、読みやすく保守可能なコミット、運用、イベント、SNMP スクリプトを作成できます。SLAX は、XML 要素から XPath 式とプログラミング手順を削除します。XML 山括弧および引用符は、C および PERL で使い慣れた区切り文字である括弧および中括弧({ })に置き換えられます。

XSLT にまだ慣れないプログラマにとって、SLAX のメリットは特に大きいと思います。SLAX を使用すると、新しい構文の学習に集中するのではなく、XSLT で導入された新しいプログラミングトピックに集中できるためです。例えば、SLAX では以下を実現できます。

  • および 要素の代わりに 、 else if、 ステートメントを<xsl:if><xsl:choose>使用ifするelse

  • テスト式を括弧内に入れる ( )

  • 二重等符号()を使用して、単一の等符号(===)ではなく等値をテストする

  • タグを閉じるのではなく、中括弧を使用してコンテインメントを表示する

  • PERL、バージョン 6 のようにアンダースコア(_)演算子を使用して連結を実行します。

  • 要素の代わりに、簡単な引用符(" ")を使用してテキスト文字列を記述する<xsl:text>

  • 関数定義に似た構文で名前付きテンプレートを定義する

  • 関数呼び出しに似た構文で名前付きテンプレートを呼び出す

  • 名前空間宣言の簡素化

  • スクリプトの乱雑さを軽減する

  • より読みやすいスクリプトを作成する

SLAX の仕組み

SLAX は XSLT のプリプロセッサーとして機能します。Junos OS は、SLAX プログラミング命令(および ステートメントなどif)を同等の XSLT 命令(および <xsl:choose> 要素など<xsl:if>)に変換elseします。この変換の後、XSLT 変換エンジン(Junos OS の場合は、Junos OS 管理(mgd)プロセス)が呼び出されます。

SLAX は XSLT の表現性に影響を与えません。XSLT の使用が容易になるだけです。基になる SLAX 構成要素は XSLT に完全にネイティブです。SLAX は XSLT エンジンに何も追加しません。SLAX パーサーは入力文書を解析し、XML パーサーが XSLT 文書を読み取るときに生成された XML ツリーと同じ XML ツリーをビルドします。

図 1 は、SLAX スクリプトの入出力フローを示しています。

図 1:SLAX スクリプトの入力と出力 SLAX Script Input and Output

SLAX のリソース

表 1 は、SLAX の学習と SLAX スクリプトの記述に使用できる追加のリソースの概要を示しています。

表 1:SLAX リソース

リソース

Url

SLAX マニュアル

http://juniper.github.io/libslax/slax-manual.html

SLAX 1.0 向け Junos 自動化リファレンス

https://www.juniper.net/documentation/en_US/day-one-books/archive/TW_Junos_Automation_Reference.pdf

Libslax— SLAX 言語のオープンソース実装

https://github.com/Juniper/libslax

https://github.com/Juniper/libslax/wiki