如何在Altova XMLSpy 2014中正确将XSD转换为JSON Schema?
解决XSD转JSON Schema的问题
你得到的错误输出是因为误用了XML转JSON的普通转换功能,而非XSD转JSON Schema的专门工具。以下是两种可行的解决方案:
一、Altova XMLSpy 2014正确转换步骤
XMLSpy内置了XSD转JSON Schema的专用功能,按以下流程操作:
- 打开目标XSD文件
- 点击顶部菜单栏的 Tools,选择 Generate JSON Schema(部分版本可能归类在 XML Schema 子菜单下)
- 在弹出的配置窗口中,按需设置转换参数(比如命名空间映射、元素/属性处理规则)
- 确认后即可生成标准的JSON Schema
注意:你提供的XSD仅包含根schema元素,未定义任何具体数据结构,生成的JSON Schema会是基础空结构(比如仅包含$schema声明和默认类型)。
二、Java实现方案
使用专门的XSD转JSON Schema库,以下是基于everit-json-schema-xsd库的示例:
1. 引入依赖(Maven)
<dependency> <groupId>com.github.erosb</groupId> <artifactId>everit-json-schema-xsd</artifactId> <version>1.14.0</version> </dependency>
2. 转换代码
import org.everit.json.schema.Schema; import org.everit.json.schema.xsd.XsdSchemaGenerator; import org.json.JSONObject; import java.io.FileInputStream; import java.io.InputStream; public class XsdToJsonSchemaConverter { public static void main(String[] args) throws Exception { // 替换为你的XSD文件路径 try (InputStream xsdInput = new FileInputStream("test.xsd")) { XsdSchemaGenerator generator = new XsdSchemaGenerator(); Schema jsonSchema = generator.generateSchema(xsdInput); // 格式化输出JSON Schema System.out.println(jsonSchema.toJson().toString(2)); } } }
输出说明
对于你提供的空XSD,生成的JSON Schema示例如下:
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object" }
当你在XSD中添加具体的元素、类型定义后,生成的JSON Schema会对应包含这些结构的约束规则。
内容的提问来源于stack exchange,提问作者Chris_dev
相关产品推荐
相关产品推荐

