微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从XML模式(XSD)生成Json模式

有人知道如何从现有的 XML模式(XSD文件)生成 JSON schema吗?
有没有可用的工具?

解决方法

免责声明:我是 Jsonix的作者,这是一个功能强大的开源XML< - > JSON JavaScript映射库.

今天我发布了新版Jsonix Schema Compiler,带有新的JSON Schema generation功能.

我们以Purchase Order架构为例.这是一个片段:

<xsd:element name="purchaSEOrder" type="PurchaSEOrderType"/>

  <xsd:complexType name="PurchaSEOrderType">
    <xsd:sequence>
      <xsd:element name="shipTo" type="USAddress"/>
      <xsd:element name="billTo" type="USAddress"/>
      <xsd:element ref="comment" minOccurs="0"/>
      <xsd:element name="items"  type="Items"/>
    </xsd:sequence>
    <xsd:attribute name="orderDate" type="xsd:date"/>
  </xsd:complexType>

您可以使用提供的命令行工具编译此架构:

java -jar jsonix-schema-compiler-full.jar
    -generateJsonSchema
    -p PO
    schemas/purchaSEOrder.xsd

编译器生成Jsonix mappings以及matching JSON Schema.

这是结果的样子(为简洁起见编辑):

{
    "id":"PurchaSEOrder.jsonschema#","deFinitions":{
        "PurchaSEOrderType":{
            "type":"object","title":"PurchaSEOrderType","properties":{
                "shipTo":{
                    "title":"shipTo","allOf":[
                        {
                            "$ref":"#/deFinitions/USAddress"
                        }
                    ]
                },"billTo":{
                    "title":"billTo",...
            }
        },"USAddress":{ ... },...
    },"anyOf":[
        {
            "type":"object","properties":{
                "name":{
                    "$ref":"http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema#/deFinitions/QName"
                },"value":{
                    "$ref":"#/deFinitions/PurchaSEOrderType"
                }
            },"elementName":{
                "localPart":"purchaSEOrder","namespaceURI":""
            }
        }
    ]
}

现在,这个JSON Schema源自原始的XML Schema.它不完全是1:1的转换,但非常接近.

生成的JSON模式与生成的Jsonix映射匹配.因此,如果您使用Jsonix进行XML< - > JSON转换,您应该能够使用生成的JSON Schema验证JSON.它还包含来自原始XML Schema的所有必需元数据(如元素,属性和类型名称).

免责声明:目前这是一个新的实验性功能.有一些已知的limitations and missing functionality.但我期待这种表现和成熟非常快.

链接

> Demo Purchase Order Project for NPM – 刚退房并安装npm
> Documentation
> Current release
> Jsonix Schema Compiler on npmjs.com

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。