0

我正在尝试编写一个 YANG 文件来捕获 XML 模式。我想对 XML 进行建模,如下所示。

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

我希望“过滤器”元素及其子元素连同它们的值一起出现在生成的所有 XML 中。并且值应该是常数。目前的 YANG 建模是否可行?我尝试理解 YANG 规范,但我永远找不到常量的关键字。

4

1 回答 1

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的唯一有效值。and语句用于约束实例并强制它始终包含type和两个实例。mandatorymin-elementstypeattribute

如果你需要重用这个模式,把它放在一个grouping语句中,并用一个语句引用它uses

于 2015-11-27T08:34:10.260 回答