如何在 YANG 中定义常量?

How to define constants in YANG?

我正在尝试编写一个 YANG 文件来捕获 XML 模式。我想像下面这样建模 XML。

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

我希望 'filter' 元素及其子元素与其值一起出现在所有生成的 XML 中。并且这些值应该是常量。现在的YANG造型可以吗?我试图理解 YANG 规范,但我找不到常量的关键字。

如果我没理解错的话,你的 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 叶的唯一有效值。 mandatorymin-elements 语句用于约束实例并强制它始终包含 type 和两个 attribute 实例。

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