有人知道如何从现有的XML模式(XSD文件)生成JSON模式吗?有没有可用的工具?
免责声明
:我是Jsonix的作者,Jsonix是一个功能强大的开源XML
<-> JSON JavaScript映射库。
今天,我发布了具有新JSON Schema生成功能的新版本的Jsonix Schema
Compiler
。
让我们以采购订单模式为例。这是一个片段:
<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映射以及匹配的JSON Schema。
结果如下所示(为简洁起见编辑):
{
"id":"PurchaseOrder.jsonschema#",
"definitions":{
"PurchaseOrderType":{
"type":"object",
"title":"PurchaseOrderType",
"properties":{
"shipTo":{
"title":"shipTo",
"allOf":[
{
"$ref":"#/definitions/USAddress"
}
]
},
"billTo":{
"title":"billTo",
"allOf":[
{
"$ref":"#/definitions/USAddress"
}
]
}, ...
}
},
"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模式派生的。它不完全是1:1转换,但是非常非常接近。
生成的JSON模式与生成的Jsonix映射匹配。因此,如果将Jsonix用于XML <->
JSON转换,则应该能够使用生成的JSON模式验证JSON。它还包含来自原始XML模式的所有必需元数据(例如元素,属性和类型名称)。
免责声明:
目前,这是一个新的实验性功能。有某些已知的限制和缺少的功能。但我希望这会很快显现并成熟。
链接:
npm install
问题内容: 我想知道是否有一种方法可以在我拥有数据和标签的情况下自动从XSD架构生成XML文件。我想在python / java中做到这一点。似乎很有可能,但是我找不到任何允许我执行此操作的库。我正在寻找一个相当快速的解决方案。 问题答案: 查看适用于与JAXB相似的Python工具的pyXSD。 XSD用于创建Python类。Python对象用于发出XML。
问题内容: 我们正在使用Oracle 11数据库和Java开发环境(使用Eclipse),并且希望将多个xml模式迁移到SQL模式。 已经看过xsd了,但是确实需要一些可以在不安装SQL Server的情况下从ant / Eclipse运行的功能。 问候, 安迪 问题答案: 另一个选择是使用JAXB生成Java对象,并使用Hibernate创建基于类层次结构的架构。 话虽如此,这取决于您要尝试做的
在我的客户机代码中,我使用json模式来验证json响应(使用ajv)。我正计划使用pact-js生成pacts,以便对提供者运行以进行契约测试。 我希望我的客户机代码在运行时验证期间使用的模式和契约测试在协议验证期间使用的模式有一个真实的来源。是否有一种方法可以从pact文件生成json(或swagger)模式,或者是否有一个库使用pact文件本身来对单个http响应进行运行时验证(而不是仅仅用
我一直在努力寻找一些可以从java中的yang模型生成示例xml/json数据的工具,例如对于xsd,有一些工具可以生成示例xml。 我试过平:1。它是用Python编写的。2.转换后,它给了我yin格式,这是相当于yang规范的xml。例如,对于以下阳代码,如果我使用pyang将其转换为阴: 这就是我得到的- 相反,我想要的是 这样我就可以得到xml,输入详细信息并根据相同的数据进行验证。
我有一个JAX-WS注释的Web服务,当我将其部署到WildFly 8.1.0 Final中时,我有如下内容: 当我想要这样的东西时: 因此,基本上,我希望WildFly/JAX-WS将一些类型放在一个单独的XSD模式文件中,而不是仅仅在WSDL文件中显示它们。 我可以通过一些注释或一些配置文件来执行此操作吗?
问题内容: 有谁知道我们可以通过XML工具从XML模式生成JSON模式或通过Java从JSON模式生成XML模式的工具或方法? 问题答案: 它不是很优雅,但是jackson可以从java类生成json模式。因此,您可以使用xml模式,并使用jaxb注释从中生成java类,然后从其中生成json模式,因为jackson支持jaxb注释。