Altova XMLSpy 2023 Enterprise Edition

XML Schema与JSON Schema相互转换

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

如果活动文档为XML Schema,则此命令将从该XML Schema生成一个JSON Schema文档。如果活动文档为JSON Schema,则此命令将从该JSON Schema生成一个XML Schema。生成的文档将在新窗口中打开,并可以保存到任何位置。下方将介绍可用的转换选项。有关XMLSpy中的JSON和JSON编辑支持的更多信息,请参见JSON和JSON Schema部分。

 

从XML Schema到JSON Schema的转换选项

当您单击XML Schema与JSON Schema相互转换命令将XML Schema文档转换为JSON Schema时,将出现一个“将XML Schema转换为JSON Schema”对话框(参见下方截图)。选择所需的JSON Schema版本和转换选项,然后单击确定。这时将从XML Schema生成JSON Schema,生成的文档将在新窗口中打开。

 

常规的转换策略如下:(i) 将XML Schema简单类型映射到JSON Schema简单类型(例如字符串和数字);(ii) 将XML Schema复杂类型映射到JSON对象。

JSONConvertXMLSchema2JSON

对话框顶部提供了有关如何转换特定XML Schema组件的信息。对话框底部提供了以下选项:

 

在每个子Schema中创建名为"#”的属性:如果选中,将在每个JSON Schema定义中创建一个具有此名称的属性。

创建与以"?"、"@xsi"、"@xmlns"为前缀的属性匹配的模式属性:为这些前缀中的每一个指定一个模式属性,以匹配具有这些前缀的名称的属性。有关模式属性的更多信息,请参见JSON对象和属性部分。

总是为maxOccurs > 1的粒子创建数组:在XML Schema中,粒子是指复杂内容模型中的元素。如果出现次数大于1,则粒子在JSON Schema中被定义为一个数组。否则,它们被定义为JSON对象的属性。

为具有简单内容的复杂类型创建纯对象:XML Schema中具有简单内容的复杂类型是一种允许使用特性和文本内容,但没有子元素的类型。如果选中了创建纯对象选项,则复杂类型将被转换为JSON对象。该类型的特性将被转换为JSON对象的属性,其中属性名称以@为前缀。对于该类型的文本内容,会生成一个名为\$的属性。如果未选中创建纯对象选项,则复杂类型将被转换为可能包含其他对象和JSON简单类型(例如字符串和数字)的对象。

为内置类型定义创建局部Schema:如果选中,此选项将在对象自身中创建类型定义。否则,类型定义是对单独对象的引用。下方JSON Schema代码片段中这两种输出情况。
 

类型定义是被引用的:

 

"properties": {

   "AccountManager": {

   "\$ref": "#/definitions/xs:string"

   }

}

"xs:string": {

   "type": "string"

}

 

类型定义是局部的:

 

"properties": {

   "AccountManager": {

  "type": "string"

   }

}

 

 

从JSON Schema到XML Schema的转换选项

当您单击XML Schema与JSON Schema相互转换命令将JSON Schema文档转换为XML Schema时,将出现一个“将JSON Schema转换为XML Schema”对话框(参见下方截图)。您可以在其中设置所需的转换选项,然后单击确定。这时将从JSON Schema生成XML Schema,生成的文档将在新窗口中打开。

JSONConvertJSONSchema2XML

您可以选择以下选项:

 

是否创建以'@''\$’开头的JSON属性名称。它们将分别被创建为特性节点和文本节点。

是否将名为'#’的属性创建为XML注释节点。

是否忽略与以'?'"@xsi"和/或"@xmlns”为前缀的属性匹配的模式属性。如果不忽略,则将以'?'"@xsi""@xmlns”为前缀的属性分别被转换为处理指令,以xsi:为前缀的特性和以xmlns:为前缀的特性。

 

© 2017-2023 Altova GmbH