Altova XMLSpy 2023 Enterprise Edition

在下方的代码片段中,required关键词指定了此对象需要四个属性。但是,在这四个必需的属性中,仅定义了三个。第四个属性,city还未定义。已定义的属性称为已指定,而未定义的属性称为未指定。参见代码片段下方的截图。

 

 

JSONSpecified     JSONUnspecified

在设计视图中,未指定的属性用红色标记,因为它在Schema中被设为是必需的,但尚未定义。虽然JSON Schema本身是有效的, 但根据其验证的实例文档将是无效的。这是因为:(i) 如果city属性不存在,则该文档无效,因为city属性是必需的;(ii) 如果city属性存在,则因为尚未定义city属性,并且没有属性通配符允许该属性存在(参见下方隐式指定属性部分),该文档无效。

 

要为未指定的属性创建定义,请执行以下操作:

 

1.在设计视图中选择未指定的属性。

2.在“详细信息”输入助手中,选中已指定复选框(参见上方截图)。或者,通过上下文菜单修改已指定标记。

3.根据需要修改属性的定义。

 

隐式指定属性

属性可以通过添加适当的模式属性或属性通配符来隐式指定。下方截图显示已添加一个属性通配符。名为city的实例属性将匹配此通配符。因此,在Schema中,city属性由此通配符隐式指定。根据此Schema,包含city属性的实例文件是有效的。

JSONImplicitlySpecified

请注意隐式指定的属性和属性通配符中的相应图标。每个图标都是指向另一个属性的链接。双击一个图标可以选择另一个属性。

 

© 2017-2023 Altova GmbH