model-driven - 如何从 YANG 语言的分组中细化节点的强制属性?

标签 model-driven ietf-netmod-yang

我定义了一个分组,其中有一个叶子的强制属性设置为 false。 但在某些情况下,我想使用这种分组并指定叶子应该是强制性的。我如何在 YANG 中实现这一点?

最佳答案

在指定分组的用途时,您将使用 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. The "refine" Statement

Some of the properties of each node in the grouping can be refined with the "refine" statement. The argument is a string that identifies a node in the grouping. This node is called the refine's target node. If a node in the grouping is not present as a target node of a "refine" statement, it is not refined and thus is used exactly as it was defined in the grouping.

The argument string is a descendant schema node identifier (see Section 6.5).

The following refinements can be done:

  • A leaf or choice node may get a default value, or a new default value if it already had one.
  • A leaf-list node may get a set of default values, or a new set of default values if it already had defaults; i.e., the set of refined default values replaces the defaults already given.
  • Any node may get a specialized "description" string.
  • Any node may get a specialized "reference" string.
  • Any node may get a different "config" statement.
  • A leaf, anydata, anyxml, or choice node may get a different "mandatory" statement.
  • A container node may get a "presence" statement.
  • A leaf, leaf-list, list, container, anydata, or anyxml node may get additional "must" expressions.
  • A leaf-list or list node may get a different "min-elements" or "max-elements" statement.
  • A leaf, leaf-list, list, container, choice, case, anydata, or anyxml node may get additional "if-feature" expressions.
  • Any node can get refined extensions, if the extension allows refinement. See Section 7.19 for details.

RFC7950, Section 7.13.2

关于model-driven - 如何从 YANG 语言的分组中细化节点的强制属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45967768/

相关文章:

java - 无法使用 ModelDriven 拦截器执行 Struts 2 程序

java - Struts 2中使用ModelDriven上传文件Action类

struts2 - Struts2 ModelDriven 接口(interface)如何工作

protocol-buffers - 杨 vs Protobuf

ietf-netmod-yang - 余数运算的杨模型(%)

java - 使用 ModelDriven 时出现 NullPointerException 错误

validation - 在 Struts2 中,我无法将模型驱动与验证一起使用

ietf-netmod-yang - 阳模型中的唯一约束

ietf-netmod-yang - 删除具有默认值(yang)的叶子

java - JAVA中的Yang解析