0

我只想知道 yang 建模语言是特定的,只能与 NetConf 协议一起使用,还是可以用于对 Xml 和 Json 等数据进行建模?

谢谢

4

1 回答 1

2

YANG 最初旨在模拟 NETCONF 会话中对等方之间交换的数据,但这不再是唯一的情况。现在有其他协议(将)使用它,例如 RESTCONF 和 CoMI。

YANG 是一种数据建模语言,最初设计用于对由网络配置协议 (NETCONF)、NETCONF 远程过程调用和 NETCONF 通知 [RFC6241] 操作的配置和状态数据进行建模。自 YANG 第 1 版 [RFC6020] 发布以来,YANG 已被使用或提议用于其他协议(例如,RESTCONF [RESTCONF] 和受限应用协议(CoAP)管理接口(CoMI)[CoMI])。此外,已经提出了除 XML 之外的编码(例如,JSON [RFC7951])。

RFC7950,第 1 节

事实上,最近的新 YANG 规范版本 (1.1) 已经朝着将模型与其编码解耦的方向迈出了一步。将来,我们可能会看到单独的 XML 和 JSON 编码文档(可能还有其他)以及仅处理语言细节的单个文档。

如果您忽略 , , , 等语句,则可以使用 YANG 为数据建模以用于其他更一般的目的rpcaction那些notificationconfig在特定上下文中相关的语句。当然,您必须定义您希望使用该模型的上下文以及它对您的意义。一些建模者使用该extension语句来定义此类要求,然后实现一个专门的 YANG 编译器,该编译器识别扩展并采取相应的行动——这允许您将语言用于作者最初不打算的事情。

规范中有一些定义可能会使 YANG 成为一种通用建模语言变得更加困难(就像 XML Schema 用于 XML)。configuration datastore, configuration data, state data, client,等概念server非常具体。然而,你总是可以对这些视而不见,让它为你工作。我相信在OpenDaylight项目中已经这样做了。

于 2017-01-19T08:15:43.387 回答