0

下面的例子是正确的 yang 陈述与否?它对 pyang 有效,但 JNC 无法处理

grouping TLId {
leaf age {
type Age;
mandatory true;
}
}

typedef Age {
type string {
pattern '[0-9][0-9]';
}
}

请建议

4

1 回答 1

1

您的 YANG 片段是有效的。

与模式节点标识符相比,Typedef 被分配到不同的命名空间 - 叶标识符和 typedef 标识符之间永远不会发生名称冲突,如RFC7950 的第 6.2.1 节所述

每个标识符在取决于所定义的 YANG 项的类型的命名空间中都是有效的。命名空间中定义的所有标识符必须是唯一的。

o 在父节点或模块顶层或其子模块中定义的所有派生类型名称共享相同的类型标识符命名空间。此命名空间的范围是父节点或模块的所有后代节点。这意味着任何后代节点都可以使用该 typedef,并且它不能定义具有相同名称的 typedef。

o 在父节点或模块或其子模块的顶层定义(直接或通过“uses”语句)定义的所有叶子、叶子列表、列表、容器、选择、RPC、操作、通知、anydatas 和 anyxmls共享相同的标识符命名空间。此命名空间的范围仅限于父节点或模块,除非父节点是案例节点。在这种情况下,命名空间的范围是最近的祖先节点,而不是案例或选择节点。

于 2020-06-29T10:51:57.430 回答