JSON模式与XML模式

JSON模式与XML模式,xml,json,xsd,jsonschema,Xml,Json,Xsd,Jsonschema,当然,XML和JSON是不同的。但是,如果您在纯结构级别上看到这些格式,它们可能是相同数据的可交换表示。两者都可以用模式定义来描述:JSON模式和XML模式 您能否用JSON模式描述与XML模式描述相同的数据结构,反之亦然? 是否可以编写转换时不会丢失信息的JSSD/XSD转换器?我很确定答案是否定的 首先,即使在开始考虑模式之前,在实例级别定义JSON和XML之间的完全无损映射也是非常困难的。因此,“相同数据结构”的概念需要限定 许多XML模式都与语法和内容模型有关,例如,一个节由可选标题和零

当然,XML和JSON是不同的。但是,如果您在纯结构级别上看到这些格式,它们可能是相同数据的可交换表示。两者都可以用模式定义来描述:JSON模式和XML模式

您能否用JSON模式描述与XML模式描述相同的数据结构,反之亦然?
是否可以编写转换时不会丢失信息的JSSD/XSD转换器?

我很确定答案是否定的

首先,即使在开始考虑模式之前,在实例级别定义JSON和XML之间的完全无损映射也是非常困难的。因此,“相同数据结构”的概念需要限定


许多XML模式都与语法和内容模型有关,例如,一个节由可选标题和零个或多个段落组成,每个段落可以是p、ul或table元素。我认为在JSON模式中根本没有类似的东西。JSON模式中的数组似乎被视为统一的和同质的。

我很确定过一会儿答案是肯定的

使用当前的JSON模式草稿04(hyperschema),您当前可以将大部分XML模式映射到JSON模式。有一些难看的变通办法将在草案05中过时:我非常确定提案propertyLinks将“进入”下一个草案,请参见本页:

还有一些现有项目,例如,正在使用到JSON模式转换器。它是Java。 我不确定XML模式支持有多远。 然而:

我开始用javascript编写JSON模式“游乐场”(带有可选的“node.js部分”)。在javascript中有一个。我问自己如何以类似的方式导入OWL/RDFS/XML模式。我现在已经70%准备好了OWL/RDFS部分


因此,如果您对此感兴趣,我们可以为XML模式部分设置一个讨论,我可以在之前推到github。

我不确定您的前提是否正确。XML和JSON都是树状结构。XML中唯一不存在于JSON中的东西是名称空间和属性规范。两者都可以映射到JSON(例如,对属性使用限定符,如
$attribute
,以及字符串,而不是命名空间符号,如
“p-parameter”:CONTENT
而不是
CONTENT
)。当谈到模式描述时,这可能是另一回事,因为这里我们没有看到结构,而是语义。我觉得讽刺的是,JavaScript正在产生类型安全变体(例如TypeScript),现在,JSON模式终于出现了,以解决“语法”的序列化/反序列化问题,域完整性和类型安全性带来了不同。我们都同意,没有经过严格模式验证的XML文档很容易被精简(而非胖)JSON文档所取代。模式断言“1”是数字(浮点或整数)还是字符串;在某些情况下,这一点很重要,我现在将提到的项目提交给github:-目前XML模式转换只是一个小部分,但我现在正在研究xsd约束。这个文件可能特别有趣:-它包含预定义的xsd数据类型。我编写了一个工具来将XML模式转换为JSON模式,请检查这个答案:您有任何将JSON模式转换为xsd的解决方案吗?我在里面挣扎。