将配置语句映射到Junos XML 标记元素
Junos XML API 为配置层次结构中每个容器和叶语句定义标记元素。在配置层次结构的顶层,标记元素和语句之间几乎总是有一对一映射,并且大多数标记名称与配置语句名称匹配。在层次结构的更深层级别,映射有时不够直接,因为某些CLI表示约定不会直接映射到符合 XML 的标记语法。
对于某些配置语句,在 CLI 模式提示符中键入 语句时所使用的表示法与配置文件中使用的表示法不同。同一Junos XML 标记元素会映射到这两种表示法样式。
以下部分介绍配置语句与标准 XML 标记Junos映射:
层次结构级别和容器语句的映射
该 <configuration>
元素是配置语句的Junos XML 容器元素。它对应于该 [edit]
配置模式下的CLI级别。在配置层次结构的下几个级别中,大多数语句都是容器语句。与Junos一对应的容器语句的容器容器标记元素几乎总是与语句具有相同的名称。
以下示例显示配置层次结构Junos两个语句的两个 XML 标记元素。请注意,在一个配置语句CLI大括号对应于结束的Junos XML 标记。
映射具有标识符的对象
在某些层次结构级别中,同一配置对象可以多次发生。对象的每个实例都有唯一的标识符,用于将其与其他实例区分。在CLI表示法中,此类对象的父层语句由以下形式的关键字和标识符组成:
keyword identifier { … configuration statements for individual characteristics … }
keyword
是一个固定字符串,用于指示要定义的对象类型,是该类型 identifier
实例的唯一名称。在 Junos XML API 中,与关键字对应的标记元素是表示对象特征的子标记元素的容器标记元素。容器标记元素的名称通常与字符串 keyword
匹配。
标准Junos XML API 与CLI标识符的处理方法不同。由于 Junos XML API 不允许容器标记元素同时包含其他标记元素和未标记字符数据(例如标识符名称),因此标识符必须括在其自己的标记元素中。通常,称为 配置对象的标识符标记元素 <name>
。某些对象有多个标识符,通常有多个名称,而不是 <name>
。要验证配置对象的每个标识符标记元素的名称,请查阅 Junos XML API 配置开发人员参考 中对象的条目。
该Junos OS保留配置组 junos-
内定义的配置组的标识符 junos-defaults
的前缀。用户定义的标识符不能从字符串开始 junos-
。
标识符标记元素也构成常规 XML 约定的例外情况,常规 XML 约定中相同层级的元素可按任何顺序显示;标识符标记元素始终首先在容器标记元素中发生。
大多数具有标识符的对象的配置包含附加叶语句,表示对象的其他特征。例如,在层次结构级别BGP每个组都有一个关联名称(标识符),并可以具有其他特性的叶语句,例如类型、对等自治系统 (AS) 编号和邻接方地址。 [edit protocols bgp group]
有关叶语句的 Junos XML 映射的信息,请参阅 单值和固定形式叶语句的映射 、多值叶语句的映射 以及一行或多行上多个选项的映射。
以下示例显示配置语句Junos XML 标记元素,用于定义两个称为 和 BGP 组 <name>
<name>
。请注意,包含每个组标识符(以及一组内邻接方标识符)的 Junos XML 元素在 CLI <name>
语句中没有对应项。
单值和固定形式叶语句的映射
叶 语句 是不包含CLI语句的一个配置语句。大多数叶语句都为配置对象的一个特性定义了一个值,其形式如下:
keyword value;
通常,对应于叶语句的 Junos XML 标记元素的名称与字符串 keyword
相同。开始与结束的Junos XML 标记之间的字符串与字符串 value
相同。
以下示例显示包含一个关键字和一个值Junos个叶语句的两个 XML 标记元素:层次结构级别的语句和 message
层次结构级别的 [edit system login]
preference
[edit protocols ospf]
语句。
某些叶语句仅包含固定格式关键字,没有关联的可变形式值。Junos XML API 使用空标记表示此类语句。以下示例显示 层次结构Junos 语句的两个 XML disable
标记 [edit forwarding-options sampling]
元素。
使用多个值的叶语句的映射
某些Junos OS叶语句接受多个值,可以是用户定义的值,也可从一组预定义值绘制。CLI表示法使用方括号将所有值括在单个语句中,如以下所示:
statement [ value1 value2 value3 ...];
安全Junos XML API 将每个值括在其自己的标记元素中。以下示例显示包含多个Junos值 CLI CLI XML 标记元素。语句 import
导入在配置中其他位置定义的两个路由策略。
以下示例显示包含多个预定义Junos CLI CLI XML 标记元素。该 permissions
语句向登录类的成员授予三个预定义 user-accounts
的权限。
在一行或多行上映射多个选项
对于某些Junos OS配置对象,标准CLI语法在单个行中提供了多个选项,通常增加简洁性和简洁性。在大多数情况下,第一个选项标识对象且没有关键字,但后来将选项与关键字和值配对。该Junos XML API 将每个选项括在其自己的标记元素中。由于第一个选项在 CLI 语句中没有关键字,Junos XML API 会为其标记元素分配一个名称。
以下示例显示单个Junos多个选项的 CLI 配置语句的 XML 标记元素。Junos XML API 可定义两个选项的标记元素,并将一个名称分配给第一个选项 (10.0.0.1) 没有 CLI 关键字的标记元素。
某些配置对象的语法包括多个多选项行。同样,Junos XML API 会为每个选项定义单独的标记元素。以下示例显示层次结构Junos语句的一些 XML traceoptions
标记 [edit protocols isis]
元素。该语句具有三个子语句,每个子语句有多个选项。
映射有关配置语句的注释
配置Junos OS可包含介绍配置中的语句的注释。在CLI配置模式下,命令定义了要与当前层级 annotate
的语句相关联的注释。您也可使用文本编辑器将注释直接插入配置文件中。有关详细信息,请参阅 CLI 用户指南。
Junos XML API 包含元素中有关配置语句 <junos:comment>
的注释。(这些注释与字符串中随附的注释不同,协议服务器会自动 <!--
-->
丢弃这些注释。)
在 Junos XML API 中,该元素立即位于关联 <junos:comment>
配置语句的元素之前。(如果省略了关联语句的标记元素,则注释不会记录在配置数据库中。)注释文本字符串可以包含在配置数据库中表示注释的两个分隔符之一:注释之前的字符或注释之前和注释后的成对 #
/*
*/
字符串。如果客户端应用程序没有分隔符,则协议服务器在向配置添加注释时,会添加相应的分隔符。协议服务器还将保留注释中包含的任何空格。
以下示例显示示例包含Junos XML 标记元素,用于将注释与示例配置语句中的两个语句关联。第一个注释说明了将换行字符包括到元素 ( ) 的内容中时,注释如何在配置文件中显示在其行 <junos:comment>
/* New backbone area */
中。第二个元素的内容中没有换行符,因此在配置文件中,注释直接遵循同一行 <junos:comment>
上的关联语句。