加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 01:57:42 所属栏目:百科 来源:网络整理
导读:有人知道如何从现有的XML模式(XSD文件)生成一个 JSON schema? 有什么工具可用吗? 免责声明:我是 Jsonix的作者,一个强大的开源XMLJSON JSON映射库。 今天我发布了Jsonix Schema Compiler的新版本,新的JSON Schema generation功能。 让我们以Purchase Ord
有人知道如何从现有的XML模式(XSD文件)生成一个 JSON schema?
有什么工具可用吗?
免责声明:我是 Jsonix的作者,一个强大的开源XML&JSON JSON映射库。

今天我发布了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模式派生自原始的XML Schema。它不是完全1:1的变换,但非常接近。

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

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

链接:

> Demo Purchase Order Project for NPM – 只是签出和npm安装
> Documentation
> Current release
> Jsonix Schema Compiler on npmjs.com

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读