1. 背景
使用nccilent作为netconf客户端时,需要发送netconf报文给netopeer2服务端。netconf报文为xml格式,因此需要将yang模型转换为xml。
2. pyang转换yang模型
bash
pyang -f sample-xml-skeleton -p ./ --sample-xml-skeleton-defaults --sample-xml-skeleton-path "/ifm/interfaces/interface/admin-status" xx-ifm.yang -o ifm.xml
参数解释:
-
--sample-xml-skeleton-defaults:生成默认值。YANG模型中通过 default 语句定义的默认值会以注释形式包含在生成的骨架中,方便你了解。
-
--sample-xml-skeleton-path=PATH:指定XML骨架中的根元素路径。如果模型有多个顶层元素,可以用此选项选择从哪个路径开始生成。
-
-p / --path:指定搜索依赖模块的目录。当你的YANG文件存在依赖模块时,这个参数至关重要。
-
-f format, --format format:这是 pyang 最核心的选项,用于将 YANG 模块转换为你需要的格式。format 参数支持多种格式,常见的有:
-
tree: 生成模块的树形结构文本,清晰易懂。
-
jstree: 生成可交互的 HTML 网页,方便浏览。
-
yin: 转换为 YANG 的等效 XML 格式。
-
yang: 将 YANG 格式规范化输出。
-
xsd: 生成 W3C XML Schema。
-
-
-o outfile, --output outfile:将输出重定向到指定文件,而不是默认的终端。