如何从 YANG 语言的分组中细化节点的强制性 属性?
How to refine the mandatory property of nodes from a grouping in YANG language?
我定义了一个分组,其中有一个叶子,强制 属性 设置为 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.
我定义了一个分组,其中有一个叶子,强制 属性 设置为 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.