我定义了一个分组,其叶子的强制属性设置为false。 但在某些情况下,我想使用此分组并指定叶子应该是必需的。我如何在YANG中实现这一目标?
答案 0 :(得分:3)
在指定分组的使用时,您将使用refine
语句。
module mandatory-and-grouping {
namespace "org:example:mandatory-and-grouping";
prefix "mag";
grouping my-grouping {
leaf my-leaf {
type string;
}
}
container top {
uses my-grouping {
refine my-leaf {
mandatory true;
}
}
}
}
7.13.2。 “精炼”声明
可以细化分组中每个节点的一些属性 用“精炼”声明。参数是一个字符串 标识分组中的节点。此节点称为精简程序 目标节点。如果分组中的节点不作为目标存在 “精炼”语句的节点,它不是精炼的,因此被使用 与分组中定义的完全一样。
参数字符串是后代模式节点标识符(请参阅 Section 6.5)。
可以进行以下改进:
叶子或选择节点可能会获得默认值或新默认值 价值,如果它已经有一个。
叶子列表节点可能会获得一组默认值或一组新的默认值 默认值,如果它已经有默认值;即,一组 精炼的默认值替换已经给出的默认值。
任何节点都可以获得专门的“描述”字符串。
任何节点都可以获得专门的“引用”字符串。
任何节点都可能获得不同的“config”语句。
leaf,anydata,anyxml或choice节点可能会有所不同 “强制性”声明。
容器节点可能会收到“在线状态”声明。
叶子,叶子列表,列表,容器,anydata或anyxml节点可以 获得额外的“必须”表达。
叶子列表或列表节点可能会获得不同的“最小元素”或 “max-elements”声明。
叶子,叶子列表,列表,容器,选项,大小写,任何数据或 anyxml节点可能会获得额外的“if-feature”表达式。
如果扩展允许,任何节点都可以获得精炼扩展 细化。有关详细信息,请参阅Section 7.19。