从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菜单命令。
3.在出现的“生成JSON Schema”对话框中(参见下一部分),根据需要修改设置(参见下文)。完成后,单击确定。
4.系统会提示您为生成的JSON Schema提供路径和文件名。单击保存后,Schema将生成并成为活动文档。在实例文档中,生成的Schema文件将被分配为作为验证依据的Schema;任何之前的分配都会被覆盖。要更改分配,请使用上下文菜单的选择JSON Schema命令(参见上方截图)。
用于生成Schema的设置
您可以在“生成JSON Schema”对话框(参见下方截图)中指定用于生成Schema的选项。有关如何访问该对话框的信息,请参见上一部分。
检测数组元组
数组元组是一个数组中的数据项序列。例如,以下数组有一个带有三个数据项的元组:[ 1, 2, "abc" ]。对于数组的验证,Schema可以指定是否要考虑数组(元组)项的顺序和数据类型。如果选中检测数组元组选项(参见上方截图),则将检测数据项的顺序和数据类型。根据检测到的内容,将在Schema中创建相应的定义。此设置的选项如下:
•元组项的数量:可以指定元组项的最小和最大数量。如果实例中的一个元组的项数在这个范围内,则该数组将被检测和定义。
•仅简单类型:仅考虑检测具有简单类型的项(原子类型string、number、integer、boolean和null)的元组。
•同名数组:仅考虑检测定义为具有相同名称的属性值的数组。例如,在以下JSON数据片段中,用红色阴影括号标记的数组都是名为a1 (蓝色阴影)的属性值:{"object1": [ { "a1": [ 1, 2, "abc" ] }, { "a1": [ 3, 4, "def" ] }, { "a1": [ 5, 6, "ghi" ] } ] }.
•数组的最小数量:可以指定启用数组检测的最小数组数。
其他设置
•忽略对象属性名称的顺序:如果未选中,则对象的属性的顺序将被检查并尽可能地重新创建。否则,不检查顺序。
•尝试匹配字符串格式:Schema可以指定字符串数据类型必须具有特定格式。如果选中此选项,则XMLSpy将尝试检测字符串格式并尽可能地为字符串添加格式定义。
•将简单数组设为局部:一个简单数组是指包含的所有数据项都是同一简单数据类型的数组。如果选中了此选项,所有的简单数组都将在Schema中被定义为局部,而不是使用被局部引用的全局定义。
•将简单对象设为局部:一个简单对象是指包含的所有属性值都是同一简单数据类型的对象。如果选中此选项,所有的简单对象都将在Schema中被定义为局部,而不是使用被局部引用的全局定义。
请注意: | 在生成JSON Shema后,您可以将单个对象和数组的局部定义设为全局,反之亦然。有关更多信息,请参见全局和局部定义部分。 |