如何在 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
叶的唯一有效值。 mandatory
和 min-elements
语句用于约束实例并强制它始终包含 type
和两个 attribute
实例。
如果您需要重用此模式,请将其放在 grouping
语句中并使用 uses
语句引用它。
我正在尝试编写一个 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
叶的唯一有效值。 mandatory
和 min-elements
语句用于约束实例并强制它始终包含 type
和两个 attribute
实例。
如果您需要重用此模式,请将其放在 grouping
语句中并使用 uses
语句引用它。