如何在YANG中定义常量?

时间:2015-11-12 18:31:38

标签: xml xsd xml-dtd ietf-netmod-yang

我正在尝试编写一个YANG文件来捕获XML模式。我想建模如下的XML。

`<stream>
     <filter>
         <type>inbuilt</type>
         <attribute>a1</attribute>
         <attribute>a2</attribute>
     </filter>
     <variables>anything</variables>
 </stream>
`

我想要&#39;过滤器&#39;元素及其子元素及其在生成的所有XML中的值。值应该是常量。目前的YANG建模是否可能?我尝试了解YANG规范,但我永远找不到常量的关键字。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,XML代码段中的值永远不会发生变化?以下内容将使您的XML片段成为唯一有效的实例(如果我们忽略了variables可以是任何事实的事实):

container stream {
  container filter {
    leaf type {
      type enumeration {
        enum "inbuilt";
      }
      mandatory true;
    }
    leaf-list attribute {
      type enumeration {
        enum "a1";
        enum "a2";
      }
      min-elements 2;
    }
  }
  leaf variables {
    type string;
  }
}

enumeration数据类型可用于要求常量字符串值。在我的示例中,inbuilt将是type leaf的唯一有效值。 mandatorymin-elements语句用于约束实例并强制它始终包含type和两个attribute实例。

如果您需要重复使用此模式,请将其放在grouping语句中,并使用uses语句引用它。