回答
杨最初的目的是模拟在NETCONF会话节点间数据交换,但不再是唯一的案例。现在还有其他协议(将)使用它,例如RESTCONF和CoMI。
杨是最初设计模型通过网络配置 协议(NETCONF),NETCONF远程过程调用,以及NETCONF 通知[RFC6241]操纵 配置和状态数据的数据建模语言。自从YANG版本1 [RFC6020]发布以来,已经使用或提议将YANG用于其他 协议(例如,RESTCONF [RESTCONF]和约束应用程序 协议(CoAP)管理接口(CoMI)[CoMI]) 。此外,已经提出了除XML之外的其他编码(例如,JSON [RFC7951])。
事实上,最近新YANG规范版本(1.1)取得了朝向从其编码解耦模型中的举动。将来,我们可能会看到单独的XML和JSON编码文档(可能还有其他文档)以及仅处理语言细节的单个文档。
你可以用杨为其他更多的一般用途的数据模型,如果你忽略了像rpc
,action
,notification
,config
等语句那些只有在特定上下文相关的。当然,您必须定义您希望使用该模型的上下文以及它对您的意义。一些建模人员利用extension
语句来定义这些需求,然后实现一个专门的YANG编译器,该编译器可以识别这些扩展并相应地执行操作 - 这允许您将语言用于非作者最初设计的目的。
规范中有一些定义可能会使得YANG成为一种通用建模语言(比如XML Schema的XML)更难。像configuration datastore
,configuration data
,state data
,client
,server
等概念是非常特别的。然而,你可以对这些视而不见,只是让它适合你。我相信这是OpenDaylight项目已经完成的方式。
谢谢,但我仍然有一些混淆,杨是用来定义一个数据模式,它将被另一种语言如XML,JSON实例化。或者它可以同时执行(定义模式,并根据该模式实例化或写入实际数据)? – Mheni
@ M'heniMerzouki,YANG是一种模式定义语言。它描述了实例文档(数据存储区,有效载荷)必须遵循的规则,以便后者被识别为有效。它可以用来直接验证实例文档,只要您有必要的工具即可。实例文档被编码为XML或JSON,所以YANG可以直接用于检查XML或JSON的有效性(不需要生成中间模式,尽管有些工具只是为了利用现有技术)。 – predi
到目前为止,YANG验证了[XML](https://tools.ietf.org/html/rfc7950#section-1)和[JSON](https://tools.ietf.org/html/rfc7951#section -1)。 –
- 1. 提取杨松JSON数据
- 2. 什么使用XML或JSON?
- 3. 用jquery解析XML或JSON
- 4. 选择JSON或XML
- 5. 杨在JAVA解析
- 6. 杨辉三角 - VB.NET
- 7. 春季消费JSON或XML
- 8. 将数组到XML或JSON
- 9. JS:将XML或JSON转换为XML/RDF
- 10. 使用JSON和/或XML模板的Scala
- 11. 用于XML/JSON REST API的MVC2或WCF?
- 12. 挫折解析XML或JSON用GWT
- 13. 使用JSON或XML文件创建ViewControllers
- 14. 如何用Akka-http请求JSON或XML?
- 15. 企业杨模块新URN
- 16. 杨辉三角在Ruby中
- 17. json或xml到xls或csv(MS Excel)使用jquery或javascript导出
- 18. 转换JSON为XML不起作用
- 19. XML到Json使用Json-lib
- 20. 如何在Rails或Ruby中使用json或xml Web服务?
- 21. 将XML或JSON文件作为数据库后端的Django
- 22. 的ExceptionHandler返回JSON或XML Spring MVC中不工作3
- 23. Rails API创建操作接受JSON或XML
- 24. 返回JSON或XML作为泽西岛中的例外
- 25. 以xml或json作为参数的宁静web服务
- 26. NodeJs CMS - 构建CMS时作为存储格式的XML或JSON
- 27. flash - django通信 - amf,xml或json?
- 28. 将PHP JSON或数组转换为XML
- 29. 数据库同步 - XML或JSON
- 30. MVC .NET核心Web API XML或JSON
欢迎来到Stack Overflow!您可以先[参观](http://stackoverflow.com/tour)并学习[如何提出一个好问题](http://stackoverflow.com/help/how-to-ask)并创建一个[最小,完整和可验证](http://stackoverflow.com/help/mcve)示例。这使我们更容易帮助你。 –