yang路径表达式,用于指代数据节点和模式节点等

时间:2016-09-18 17:22:00

标签: ietf-netmod-yang ietf-restconf

考虑以下杨模块

/mod:foo/l
/m:foo/l
/foo/l

到达叶子l的路径表达式是否正确?

{{1}}

如果我在我的应用程序中有2个相同模块的修订版本,客户端如何表达他感兴趣的修订版节点?

并且,是否有可用于引用'描述'的路径表达式?叶l?

1 个答案:

答案 0 :(得分:1)

  

到达叶子l的路径表达式是否正确?

在RESTCONF GET的上下文中,使用draft-ietf-netconf-restconf-16, Section 3.5.3, Encoding Data Resource Identifiers in the Request URI中描述的方案。

  

RESTCONF数据资源标识符从左到右编码,      从顶级数据节点开始,根据" api-path"      第3.5.3.1节中的规则。每个祖先的节点名称      目标资源节点按顺序编码,以节点名称结尾      对于目标资源。如果路径中的节点在另一个节点中定义      模块比其父节点,或其父节点是数据存储区,然后是      模块名后跟一个冒号字符(":")必须加前缀      资源标识符中的节点名称。请参阅第3.5.3.1节      的信息。

因此,正确的URI将是这样的:

/restconf/data/mod:foo/l
  

如果我在我的应用程序中有2个相同模块的修订版本,客户端如何表达他感兴趣的修订版节点?

您无法表达此类请求。这是仅允许服务器实现YANG模块的单个修订版的原因之一。在YANG 1.1中,这是explicitly禁止的,而在YANG 1.0中,这只是暗示的。注意,各个实现的YANG模块可以参考(导入)相同模块的若干修订,但是这些修改中的仅一个可以被宣告为已实现(可能是最新的)。由于模块更新规则非常严格,因此定义不会在模块的较新版本中丢失,因此客户端是安全的。

  

是否有路径表达式可用于引用'描述'叶l?我的用法描述'就是这样的。客户端将yang模块提交给服务器。客户希望确保服务器正确地看到结构。客户说,"向我展示该叶子的描述",或者"叶子的默认值是什么?#34;等

你似乎误解了杨模型的作用。客户端不管理服务器的模型,它可能只管理该模型中描述的数据!这样的事情是在服务器及其维护者的领域。

查询YANG模型(我所知道的)的唯一标准方法,而不是由它建模的数据,将是从服务器获取YANG / YIN文件(get-schema),然后自己解析它。

作为旁注。实现模块并从服务器接收有效响应的客户端本质上知道哪个描述映射到哪个XML元素/ JSON对象,因为它已经执行了"映射"在验证阶段,实例文档和模型(模式)之间。