回答
楊最初的目的是模擬在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. 用jquery解析XML或JSON
- 3. 什麼使用XML或JSON?
- 4. 選擇JSON或XML
- 5. 楊在JAVA解析
- 6. 楊輝三角 - VB.NET
- 7. 將數組到XML或JSON
- 8. 春季消費JSON或XML
- 9. JS:將XML或JSON轉換爲XML/RDF
- 10. 挫折解析XML或JSON用GWT
- 11. 使用JSON和/或XML模板的Scala
- 12. 用於XML/JSON REST API的MVC2或WCF?
- 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. 返回JSON或XML作爲澤西島中的例外
- 22. NodeJs CMS - 構建CMS時作爲存儲格式的XML或JSON
- 23. 將XML或JSON文件作爲數據庫後端的Django
- 24. 以xml或json作爲參數的寧靜web服務
- 25. 的ExceptionHandler返回JSON或XML Spring MVC中不工作3
- 26. Rails API創建操作接受JSON或XML
- 27. PHP XML或Json網頁上的選擇
- 28. flash - django通信 - amf,xml或json?
- 29. 的Json解碼或XML解析器
- 30. 對json或hash的XML api響應?
歡迎來到Stack Overflow!您可以先[參觀](http://stackoverflow.com/tour)並學習[如何提出一個好問題](http://stackoverflow.com/help/how-to-ask)並創建一個[最小,完整和可驗證](http://stackoverflow.com/help/mcve)示例。這使我們更容易幫助你。 –