从XML模式(XSD)生成Json模式
有人知道如何从现有的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安装 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |