Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

XSLT 概述

提交脚本、作脚本、事件脚本和 SNMP 脚本可以用可扩展样式表语言转换 (XSLT) 编写,XSLT 是处理 可扩展标记语言 (XML) 数据的标准。XSLT 由万维网联盟 (W3C) 开发,可在 http://www.w3c.org/TR/xslt 访问。

XSLT 优势

XSLT 与具有原生 XML 功能的 Junos OS 天作匹配。XSLT 执行 XML 到 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,并且 UI 根据固定语义解释 XML。XSLT 脚本只能输出由 UI 基础结构直接处理的 XML 数据,以仅允许上述特定功能,即生成错误、警告和系统日志消息,以及持久性和瞬态配置更改。这意味着提交脚本、作脚本、事件脚本和 SNMP 脚本对设备的影响是明确定义的,可以使用为此目的添加的命令在命令行界面 (CLI) 内查看。

XSLT 引擎

XSLT 是一种用于将一个 XML 文档转换为另一个 XML 文档的语言。基本模型是 XSLT 引擎(或处理器)读取脚本(或样式表)和 XML 文档。XSLT 引擎使用脚本中的指令通过遍历文档的层次结构来处理 XML 文档。该脚本指示应遍历树的哪个部分、应如何检查以及应在每个点生成哪个 XML。对于提交脚本、作脚本、事件脚本和 SNMP 脚本,XSLT 引擎是 Junos OS 管理进程 (mgd) 的一项功能。

图 1 显示了 XSLT 提交脚本与 XSLT 引擎之间的关系。

图 1:通过 XSLT 引擎 XML transformation process using XSLT. Left: XML input document with hierarchical tree of i nodes. Middle: XSLT commit script. Right: Transformed XML output document with hierarchical tree of o nodes.的 XSLT 提交脚本流

XSLT 概念

XSLT 有七个基本概念。 表 1 总结了这些因素。

表 1:XSLT 概念

XSLT 概念

描述

XPath

用于在输入文档中指定节点的表达式语法

模板

将输入层次结构映射到处理这些层次结构的指令的机制

参数

将参数传递给模板的机制

变量

用于定义对节点的只读引用的机制

编程说明

在 XSLT 中定义逻辑的机制

递归

模板调用自身以促进循环的机制

上下文(点)

当前正在输入文档中检查的节点