xml - XSD 转换 JSON 数组
问题描述
我正在尝试将 JSON 以下转换为 XSD,但是我无法为数组类型提供正确的 XSD。
{
"activeIndicator": true,
"entities": [
{
"type": "one",
"bid": "12444",
"name": "dsdsddd"
},
{
"type": "sss",
"bid": "322333",
"name": "sdfsfff"
},
{
"type": "sddssddsd",
"bid": "4343434",
"name": "ffdssdddd"
},
{
"type": "rerererer",
"bid": "5767767",
"name": "fdsfdffff"
}
],
"expiryDateIndicator": true
}
下面是我到目前为止提出的 XSD。
<xsd:complexType name="EntityType">
<xsd:sequence>
<xsd:element name="type" type="xsd:string"/>
<xsd:element name="bid" type="xsd:string"/>
<xsd:element name="name" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="Response">
<xs:complexType>
<xsd:sequence>
<xsd:element name="activeIndicator" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>
<xs:element name="entities">
<xs:simpleType>
<xs:list itemType="EntityType"/>
</xs:simpleType>
</xs:element>
</xsd:sequence>
</xs:complexType>
</xsd:element>
但上面是在尝试编译时抛出org.xml.sax.SAXParseException: undefined simple type 'EntityType' 。很想知道我在这里缺少什么。
解决方案
列表的项类型必须是简单类型,而不是复杂类型。
您尚未显示要用于表示此 JSON 数据的 XML 实例,但我认为不太可能使用列表类型。我希望像
<entities>
<entity>
<type>x</type>
<bid>y</bid>
<name>z</name>
</entity>
<entity>
<type>x</type>
<bid>y</bid>
<name>z</name>
</entity>
</entities>
在这种情况下entities
将被定义为:
<xs:element name="entities">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element name="entity" type="EntityType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
推荐阅读
- image - “文件系统错误 (-2147416359)”。这是什么意思以及如何解决它?
- php - 从php表中导出一行
- java - Android如何从hashmap中获取整数值
- extjs - 如何将工具提示设置为输入类型为文件的 Ext.form.TextField?
- angular - 带有 Angular 和 .NETCore2 WEBAPI 的 Azure AD 身份验证
- curl - 如何为 curl 设置 https 转发代理
- apache-kafka - 如果我们只寻找一个出版商,卡夫卡是一个不错的选择吗
- c# - 什么会导致 XML 反序列化异常?
- php - 使用 CSS 隐藏 HTML 元素(不使用 ID 或类)
- javascript - 如何在没有 HTML 页面的情况下使用 TensorFlow.js 将视频输入提供给 PoseNet?