【发布时间】:2017-10-31 09:13:53
【问题描述】:
我看到了很多关于这个主题的主题,但没有一个有答案。 实际上是否有一个 JAVA 库可以使用 XSD Schema 进行转换 XML => JSON => XML 以更好地处理 XML 中单个元素的问题。
(XML 中的单个元素可以是数组或单个对象,具体取决于 XSD 架构)
XML 示例:
<root><person><name>test</name></person></root>
JSON 可以是:
{"root": [{"person": [{"name": "test"}]}]}
或任何带有对象而不是数组的东西:
{"root": {"person": {"name": "test"}}}
但是使用 XSD,我们可以从 maxoccurs 参数中知道 root 是唯一的,person 是一个数组并且 name 是唯一的,所以好的转换应该是:
{"root": {"person":
[{"name": "foofdo"}]
}}
提前谢谢
【问题讨论】:
-
您能否更详细地解释一下“XML 中单个元素的问题”究竟是什么意思?因为不清楚这个问题是什么。请提供示例 XML 和 JSON 以说明您的意思。
-
我希望现在更清楚,问题是确定 XML 中的唯一元素是否必须表示为数组或 JSON 中的对象,以及为什么我找不到任何 JAVA 库处理使用 XML 文档的 XSD 解决此问题
-
您发布的带有数组的 JSON 无效,数组中没有
key : value对,只有用逗号分隔的值。 -
对于一种适合所有人的解决方案的要求有太多变化。 Schema 知识可以提供帮助,但只是在一定程度上:例如,它不能告诉您(除非通过有根据的猜测)一个元素中子项的顺序是否重要。这就是为什么在 XSLT 3.0 中,我们决定提供允许您滚动自己的转换的机制,而不是试图猜测您的确切要求。