0

我有这个简单的阳模型

leaf type {
    type string;
    description "some description";
}

这是行不通的。有人可以解释一下字符串“类型”是否对杨中的叶子名称无效吗?

4

1 回答 1

0

语句参数必须leaf是标识符,并且没有任何限制禁止在需要标识符的地方使用 YANG 关键字(所有内置关键字也是标识符)。leaf type {...}和都是leaf leaf {...}有效的 YANG 语句。

“叶”语句用于定义模式树中的叶节点。它接受一个参数,即一个标识符,后跟一个包含详细叶子信息的子语句块。

RFC7950,第 7.6 节

以下是规范对标识符的说明:

标识符用于按名称识别不同种类的 YANG 项目。每个标识符以大写或小写 ASCII 字母或下划线字符开头,后跟零个或多个 ASCII 字母、数字、下划线字符、连字符和点。实现必须支持最长 64 个字符的标识符,并且可以支持更长的标识符。标识符区分大小写。标识符语法由第 14 节中的规则“标识符”正式定义。标识符可以指定为带引号或不带引号的字符串。

RFC7950,第 6.2 节

上面提到的语法规则:

identifier          = (ALPHA / "_")
                     *(ALPHA / DIGIT / "_" / "-" / ".")

以下是它对leaf语句命名空间的描述(命名空间在其范围内强加了唯一的名称要求,目的是防止名称冲突):

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

RFC7950,第 6.2.1 节

于 2019-04-10T06:47:33.113 回答