使用 NETCONF 为配置层次结构请求 XML 方案
该模式表示设备上运行的系统版本Junos OS的所有配置元素。(要确定Junos OS版本,请发出操作请求标记元素,该元素在 <get-software-information>
Junos XML API 操作开发人员参考 中记录。)
客户端应用程序可以使用该模式验证设备上配置,或者仅了解设备上运行的系统版本Junos OS哪些配置语句。该模式不会指示实际配置了哪些元素,甚至指明可在该类型设备上配置某个元素(某些配置语句仅在某些设备类型上可用)。要请求当前配置的一组元素及其设置,请发出标记元素,如"使用 <get-config>
NETCONF的请求配置数据"中所述。
本文档没有介绍 XML 模式语言的结构和表示约定。有关信息,请参阅 XML Schema 第 0 部分:Primer,可从全球 Web 联盟 (W3C) http://www.w3.org/TR/xmlschema-0/ 。引言提供基本介绍并列出可查找详细信息的正式规格。
有关详细信息,请参阅以下各节:
请求配置层次结构的 XML 方案
在运行 Junos OS 设备的 NETCONF 会话中,要请求整个配置层次结构的 XML 模式语言表示,客户端应用程序会发出 Junos XML 标记元素及其子标记元素,其中标记元素中标有 <get-xnm-information>
<type>
<namespace>
<rpc>
值:
<rpc> <get-xnm-information> <type>xml-schema</type> <namespace>junos-configuration</namespace> </get-xnm-information> </rpc> ]]>]]>
NETCONF 服务器将 XML 方案包含在 <rpc-reply>
和 <xsd:schema>
标记元素中:
<rpc-reply xmlns="URN" xmlns:junos="URL"> <xsd:schema> <!-- tag elements for the Junos XML schema --> </xsd:schema> </rpc-reply> ]]>]]>
创建 junos.xsd 文件
在标记中返回的架构中定义的大多数标记元素都属于默认 <xsd:schema>
配置Junos OS命名空间。但是,至少一个标记 <junos:comment>
属于不同的命名空间: http://xml.juniper.net/junos/Junos-version/junos
。根据 XML 约定,方案仅描述一个命名空间,因此方案验证程序需要导入有关任何其他命名空间的信息,然后才能处理此模式。
从Junos OS 6.4 版开始,标记元素将包含在标记元素中,并引用文件 <xsd:import>
<xsd:schema>
junos.xsd,其中包含有关命名空间的所需 junos
信息。例如,以下标记元素指定了用于版本Junos OS的文件20.4R1(仅在两行上 <xsd:import>
显示,才具有易读性):
<xsd:import schemaLocation="junos.xsd" \ namespace="http://xml.juniper.net/junos/20.4R1/junos"/>
要启用模式验证器来解释标记元素,您必须在目录中手动创建一个称为 <xsd:import>
junos.xsd 的文件,您可以在其中放置包含完整 Junos OS 配置模式的 .xsd 文件。在文件中包括以下文本。请勿在开放标记的属性列表中使用换行 <xsd:schema>
符。下例中会显示换行符,但仅表示易读性。对于变量,请替代设备上Junos OS的发行号(例如,20.4R1 Junos-version 20.4 的第一Junos OS版本)。
<?xml version="1.0" encoding="us-ascii"?> <xsd:schema elementFormDefault="qualified" \ attributeFormDefault="unqualified" \ xmlns:xsd="http://www.w3.org/2001/XMLSchema" \ targetNamespace="http://xml.juniper.net/junos/Junos-version/junos"> <xsd:element name="comment" type="xsd:string"/> </xsd:schema>
如果方案验证程序无法找到或打开 junos.xsd 文件,则它们可能无法处理此方案。
只要更改设备上Junos OS版本,都记得更新 Junos-version junos.xsd 文件中要匹配的变量。
示例:请求 XML 模式
以下示例显示如何请求Junos OS方案。在 NETCONF 服务器的响应中,第一个语句定义了 Junos XML 标记元素,可包含在方案定义的大多数其他容器标记元素中(容器标记元素定义为 <xsd:element>
<undocumented>
<xsd:complexType>
)。
NETCONF 服务器响应的开始标记中的属性显示在多行上,但仅表示易读性。NETCONF 服务器不会在标记或标记元素中插入新行字符。此外,在实际输出中,该变量 JUNOS-version 被 20.4 20.4R1版本的初始版本Junos OS的值取代。

位于 <xsd:element>
模式开始位置的另一个语句用于定义Junos XML <configuration>
标记元素。其中包含 <xsd:element>
用于定义标记元素的语句 <system>
,该元素与 [edit system]
层次结构级别对应。为简洁起见,省略了与其他层次结构级别对应的语句。
