杨用作Xml还是Json?

Yang used as Xml or Json?

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

谢谢

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

YANG is a data modeling language originally designed to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF Remote Procedure Calls, and NETCONF notifications [RFC6241]. Since the publication of YANG version 1 [RFC6020], YANG has been used or proposed to be used for other protocols (e.g., RESTCONF [RESTCONF] and the Constrained Application Protocol (CoAP) Management Interface (CoMI) [CoMI]). Further, encodings other than XML have been proposed (e.g., JSON [RFC7951]).

RFC7950, Section 1

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

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

规范中的一些定义可能会使 YANG 成为通用建模语言变得更加困难(例如 XML Schema 用于 XML)。 configuration datastoreconfiguration datastate dataclientserver 等概念非常具体。但是,您总是可以对这些视而不见,让它为您服务。我相信这就是 OpenDaylight 项目中已经完成的方式。