为什么名称类型的叶节点在yang模型中不起作用?

时间:2019-04-08 05:07:49

标签: ietf-netmod-yang

我有这个简单的杨模型

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

这不起作用。有人可以解释字符串'type'是否对yang中的叶子名称无效吗?

2 个答案:

答案 0 :(得分:0)

leaf语句自变量必须是标识符,并且没有限制,禁止在期望使用标识符的地方使用YANG关键字(所有内置关键字也是标识符)。 leaf type {...}leaf leaf {...}都是有效的YANG语句。

  

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

     

RFC7950, Section 7.6

这是规范中关于标识符的内容:

  

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

     

RFC7950, Section 6.2

上述语法规则:

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

这是关于leaf语句的命名空间的说明(命名空间在其范围内强加了唯一的名称要求,目的是防止名称冲突):

  

o所有叶子,叶子列表,列表,容器,选择,RPC,操作,         通知,任何数据和任何xml定义(直接或通过         父节点内或顶层的“使用”语句)         模块或其子模块共享相同的标识符名称空间。         该名称空间的作用域是父节点或模块,除非         父节点是案例节点。在这种情况下,命名空间是作用域的         到不是案例或选择节点的最接近的祖先节点。

     

RFC7950, Section 6.2.1

答案 1 :(得分:0)

叶子的类型字符串有效。你能分享你完整的杨吗?我将帮助您查找错误原因。