Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

SLAX 概述

样式表语言替代 syntaX (SLAX) 是一种用于编写 Junos OS 提交脚本、操作脚本、事件脚本和 SNMP 脚本的语言。它是可扩展样式表语言转换 (XSLT) 的替代方案。SLAX 具有与 C 和 Perl 类似的语法,但语义与 XSLT 相同。

SLAX 优势

XSLT 是处理 可扩展标记语言 (XML) 的一种强大而有效的工具,非常适合机器到机器之间的通信,但其基于 XML 的语法对复杂程序的开发不方便。

SLAX 有一个遵循 C 和 PERL 样式的简单语法。它提供了一种实用而简洁的代码方式,使您能够创建可读、可维护的提交、操作、事件和 SNMP 脚本。SLAX 从 XML 元素中删除 XPath 表达式和编程指令。XML 尖括号和引号被括号和大括号 ({ }) 取代,它们是 C 和 PERL 的熟悉分隔符。

对于尚未习惯 XSLT 的程序员来说,SLAX 的好处尤为明显,因为 SLAX 使他们能够专注于 XSLT 引入的新编程主题,而不是专注于学习新的语法。例如,SLAX 使您能够:

  • 使用 ifelse ifelse语句(而非<xsl:choose><xsl:if>元素)

  • 将测试表达式放在括号中 ( )

  • 使用双等号 (==) 测试平等,而不是单等号 (=

  • 使用花括号显示控制,而不是关闭标记

  • 使用下划线 (_) 运算符执行串联,如 PERL 版本 6 中那样

  • 使用简单引号 (" ") 而不是 <xsl:text> 元素编写文本字符串

  • 使用与函数定义相等的语法定义命名模板

  • 调用具有与函数调用相等语法的命名模板

  • 简化命名空间声明

  • 减少脚本中的混乱

  • 编写更具可读性脚本

SLAX 的工作原理

SLAX 充当 XSLT 的预处理器。Junos OS 在内部将 SLAX 编程指令(如 ifelse 语句)转换为等效的 XSLT 指令(例如 <xsl:if><xsl:choose> 元素)。在此转换后,将调用 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 脚本的其他资源。