杨用作Xml还是Json?

时间:2017-01-18 22:58:13

标签: json data-modeling configuration-files ietf-netmod-yang ietf-netconf

我只想知道yang建模语言是否具体,只能与NetConf协议一起使用,还是可以用来模拟Xml和Json等数据?

谢谢

1 个答案:

答案 0 :(得分:1)

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

  

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

     

RFC7950, Section 1

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

如果忽略rpcactionnotificationconfig等语句,您可以使用YANG为其他更常见的用途建模数据。仅限于在具体情况下有关。当然,您必须定义您希望使用模型的上下文以及它对您的意义。一些建模者使用extension语句来定义这些需求,然后实现一个专门的YANG编译器来识别扩展并相应地执行 - 这允许您将语言用于作者最初不打算使用的内容。

规范中有一些定义可能会使YANG更难成为通用建模语言(就像XML Schema用于XML)。 configuration datastoreconfiguration datastate dataclientserver等概念非常具体。但是,您总是可以对这些视而不见,只是让它适合您。我相信它已经在OpenDaylight项目中完成了。