Altova XMLSpy 2024 Professional Edition

从JSON实例生成JSON Schema

首页 上一页 向上一级 下一页

在XMLSpy中,用户可以从JSON实例文档(包括JSON5实例)生成JSON Schema。这一功能十分有用,因为它可以快速为您提供基于现有JSON实例的Schema,并且省去了从头开始手动创建Schema的麻烦。在这之后,您可以根据需要对生成的Schema进行修改或扩展。

 

生成Schema

要从JSON实例生成JSON Schema,请执行以下操作:

 

1.将JSON实例文档设为活动文档。

2.在“信息”窗口的“JSON”选项卡中,单击依据Schema进行验证旁边的箭头图标,然后在出现的菜单中单击生成JSON Schema参见下方截图;仅在企业版中提供对Avro的支持)。或者,选择DTD/Schema | 生成DTD/Schema菜单命令。

JSONInfoWindow

3.在出现的“生成JSON Schema”对话框中(参见下一部分),根据需要修改设置(参见下文)。完成后,单击确定

4.系统会提示您为生成的JSON Schema提供路径和文件名。单击保存后,Schema将生成并成为活动文档。在实例文档中,生成的Schema文件将被分配为作为验证依据的Schema;任何之前的分配都会被覆盖。要更改分配,请使用上下文菜单的选择JSON Schema命令(参见上方截图)。

 

用于生成Schema的设置

您可以在“生成JSON Schema”对话框(参见下方截图)中指定用于生成Schema的选项。有关如何访问该对话框的信息,请参见上一部分

JSONGenerateJSONSchemaDlg

检测数组元组

数组元组是一个数组中的数据项序列。例如,以下数组有一个带有三个数据项的元组:[ 1, 2, "abc" ]。对于数组的验证,Schema可以指定是否要考虑数组(元组)项的顺序和数据类型。如果选中检测数组元组选项(参见上方截图),则将检测数据项的顺序和数据类型。根据检测到的内容,将在Schema中创建相应的定义。此设置的选项如下:

 

元组项的数量:可以指定元组项的最小和最大数量。如果实例中的一个元组的项数在这个范围内,则该数组将被检测和定义。

仅简单类型:仅考虑检测具有简单类型的项(原子类型stringnumberintegerbooleannull)的元组。

同名数组:仅考虑检测定义为具有相同名称的属性值的数组。例如,在以下JSON数据片段中,用红色阴影括号标记的数组都是名为a1 (蓝色阴影)的属性值:{"object1": [ { "a1": [ 1, 2, "abc" ] },  { "a1": [ 3, 4, "def" ] }, { "a1": [ 5, 6, "ghi" ] } ] }.

数组的最小数量:可以指定启用数组检测的最小数组数。

 

 

其他设置

 

忽略对象属性名称的顺序:如果未选中,则对象的属性的顺序将被检查并尽可能地重新创建。否则,不检查顺序。

尝试匹配字符串格式:Schema可以指定字符串数据类型必须具有特定格式。如果选中此选项,则XMLSpy将尝试检测字符串格式并尽可能地为字符串添加格式定义。

将简单数组设为局部:一个简单数组是指包含的所有数据项都是同一简单数据类型的数组。如果选中了此选项,所有的简单数组都将在Schema中被定义为局部,而不是使用被局部引用的全局定义。

将简单对象设为局部:一个简单对象是指包含的所有属性值都是同一简单数据类型的对象。如果选中此选项,所有的简单对象都将在Schema中被定义为局部,而不是使用被局部引用的全局定义。

 

请注意:在生成JSON Shema后,您可以将单个对象和数组的局部定义设为全局,反之亦然。有关更多信息,请参见全局和局部定义部分。

 

© 2017-2023 Altova GmbH