XSLT 概述
提交脚本、操作脚本、事件脚本和 SNMP 脚本可使用可扩展样式表语言转换 (XSLT) 编写,这是处理 可扩展标记语言 (XML) 数据的标准。XSLT 由万维网联盟 (W3C) 开发, 可在 http://www.w3c.org/TR/xslt 访问。
XSLT 优势
借助其本机 XML 功能,XSLT 是 Junos OS 的天然匹配项。XSLT 执行 XML 到 XML 转换,将一个 XML 层次结构转换为另一个层次结构。它提供了很大的自由和权力的方式,它改变了输入 XML,允许一切从作出细微更改到现有层次结构(如添加或删除)到建立一个全新的文档层次结构。
由于 XSLT 的创建允许 XML 到 XML 的通用转换,因此检查配置语法(Junos OS 可在 XML 中轻松表达)和生成错误和警告(Junos OS 内部作为 XML 进行通信)都是自然选择。XSLT 包含强大的机制,可查找符合特定标准的配置语句。然后,XSLT 可从这些配置语句中生成适当的 XML 结果树,指示 Junos OS 用户界面 (UI) 组件执行所需的行为。
尽管 XSLT 提供了强大的脚本能力,但其关注点是具体的,而且有限。它不会使 Junos OS 容易受到任意或恶意程序员的影响。XSLT 限制程序员执行随意操作,例如打开随机传输控制协议 (TCP) 端口、伪造大量流程或发送电子邮件。XSLT 中可用的唯一操作是生成 XML,而 XML 由 UI 根据固定语义进行解释。XSLT 脚本只能输出 XML 数据,这些数据由 UI 基础架构直接处理,仅允许上述特定能力-生成错误、警告和系统日志消息,以及持续和瞬时的配置更改。这意味着提交脚本、操作脚本、事件脚本和 SNMP 脚本对设备的影响定义明确,可在命令行界面 (CLI) 内查看,并使用为此目的添加的命令来查看。
XSLT 引擎
XSLT 是将一个 XML 文档转换为另一个 XML 文档的语言。基本模型是 XSLT 引擎(或处理器)读取脚本(或样式表)和 XML 文档。XSLT 引擎使用脚本中的说明通过遍历文档的层次结构来处理 XML 文档。脚本指示应遍历树的哪个部分、应如何检查该树以及在每个点应生成什么 XML。对于提交脚本、操作脚本、事件脚本和 SNMP 脚本,XSLT 引擎是 Junos OS 管理进程 (mgd) 的一项功能。
图 1 显示了 XSLT 提交脚本与 XSLT 引擎之间的关系。
XSLT 概念
XSLT 有七个基本概念。这些概括在 表 1 中。
XSLT 概念 |
描述 |
---|---|
Xpath |
用于在输入文档中指定节点的表达式语法 |
模板 |
用于将输入层次结构映射到处理它们的说明的机制 |
参数 |
将参数传递至模板的机制 |
变量 |
定义节点的只读参考的机制 |
编程说明 |
在 XSLT 中定义逻辑的机制 |
递 归 |
模板自称为的机制,用于促进环路 |
上下文(点) |
输入文档中当前正在检查的节点 |