當然,XML和JSON是不同的。但是,如果您在純結構的層面上看到這些格式,它們可能是相同數據的可交換表示。兩者都可以用模式定義來描述:JSON模式和XML模式。JSON Schema vs XML Schema
您可以使用XML Schema描述與JSON Schema相同的數據結構嗎?反之亦然? 是否可以編寫JSSD/XSD轉換器,在轉換時不會丟失信息?
當然,XML和JSON是不同的。但是,如果您在純結構的層面上看到這些格式,它們可能是相同數據的可交換表示。兩者都可以用模式定義來描述:JSON模式和XML模式。JSON Schema vs XML Schema
您可以使用XML Schema描述與JSON Schema相同的數據結構嗎?反之亦然? 是否可以編寫JSSD/XSD轉換器,在轉換時不會丟失信息?
我很確定答案是否定的。首先,即使在開始考慮模式之前,很難在實例級別定義完全無損的JSON和XML之間的映射關係。所以「相同的數據結構」的概念需要合格。
很多XML Schema都與語法和內容模型有關,例如說某個節包含一個可選標題,後跟零個或多個段落,每個段落可以是p,ul或table元素。我不認爲在JSON Schema中有類似的東西。 JSON Schema中的數組似乎被視爲統一和同質的。
我不確定你的前提的正確性。 XML只不過是一種樹狀結構,JSON也是如此。 XML中唯一不存在於JSON中的事物是命名空間和屬性規範。兩者都可以映射到JSON(例如,使用'$ attribute'等屬性的限定符以及字符串而不是像''p-parameter「:CONTENT'這樣的名稱空間表示法,而不是'
我發現JavaScript引發了類型安全變體(例如TypeScript),現在最終JSON模式正在出現,以解決序列化/反序列化問題,其中'語法',域完整性和類型安全性有所不同。我們都同意,一個沒有經過嚴格模式驗證的XML文檔很容易被精簡(而不是胖)的JSON文檔取代。模式斷言「1」是一個數字(浮點型還是整型)還是一個字符串;在某些情況下,重要的是要知道。 – subsci 2015-07-07 07:28:05
我很肯定答案是在一段時間。
使用當前的JSON Schema草案04(hyperschema),您當前可以將XML Schema的大部分映射到JSON Schema。有一些醜陋的解決方法,這將是過時的吃水05:我敢肯定,這些建議propertyLinks將「使其」進入下一個草案,看到這個頁面: https://github.com/json-schema/json-schema/wiki/v5-Proposals
還有一些現有的項目,例如owl2vowl and webowl正在使用JSON模式轉換器。它是Java。 我不確定XML Schema支持有多遠。 但是:
我開始在javascript中編寫JSON模式「操場」(帶有可選的'node.js部分')。在JavaScript中有一個solution for schema.org。我問自己如何以類似的方式導入OWL/RDFS/XML Schema。我現在已經準備好了70%的OWL/RDFS部分。
所以如果您對此感興趣,我們可以爲XML Schema部分設置一個討論,然後我可以推送到github。
您有任何將Json模式轉換爲XSD的解決方案嗎?我在掙扎。 – feikiss 2015-04-24 08:31:40
我將提到的項目提交給github:https://github.com/redaktor/owl2jsonschema.js - 現在XML模式轉換隻是一個小的子部分,但我現在正在處理xsd約束。這個文件可能特別感興趣:https://github.com/redaktor/owl2jsonschema.js/blob/master/lib/hardcoded-schemas.json - 它包含預定義的xsd數據類型。 – sebilasse 2015-02-04 16:13:04
我寫了一個工具將XML Schema轉換爲JSON Schemas,pleace檢查這個anwer:http://stackoverflow.com/a/30006975/303810 – lexicore 2015-08-26 13:05:24