5.1.2. 模块层次结构

YANG允许在多个层次结构中对数据进行建模,其中数据可能有多个顶级节点。模块中的每个顶级数据节点定义一个单独的层次结构。具有多个顶级节点的模型有时很方便,并且得到了YANG的支持。

5.1.2.1. NETCONF XML编码

NETCONF能够在<config><data>元素中携带任何XML内容作为有效载荷。 YANG模块的顶层节点在这些元素内以任何顺序编码为子元素。 这种封装保证了相应的NETCONF消息总是格式良好的XML文档。

例如,一个实例:

  1. module example-config {
  2. yang-version 1.1;
  3. namespace "urn:example:config";
  4. prefix "co";
  5. container system { ... }
  6. container routing { ... }
  7. }

在NETCONF中编码为:

  1. <rpc message-id="101"
  2. xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"
  3. xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
  4. <edit-config>
  5. <target>
  6. <running/>
  7. </target>
  8. <config>
  9. <system xmlns="urn:example:config">
  10. <!-- system data here -->
  11. </system>
  12. <routing xmlns="urn:example:config">
  13. <!-- routing data here -->
  14. </routing>
  15. </config>
  16. </edit-config>
  17. </rpc>