什么是从xsd生成xml的工具,生成的xml应该包含多个可重复元素的条目?我尝试了eclipse上提供的工具和一些在线工具,如xml-generator,但这些都不起作用。它们都只为可重复元素生成一个条目。
注意:我想将生成的xml转换为json,但xml-json转换器只有在有多个条目时才将xml中的可重复元素视为数组。
答案 0 :(得分:0)
从XSD生成XML可能非常具有挑战性,只是因为人们期望看到的内容可能无法被XSD捕获。
QTAssistant(我与之相关)在样本XML创建方面具有相当广泛的功能。
如果关联的maxOccurs大于1,那么最简单(和最笨)的(通过右键单击图形XSD可视化工具中的元素可用)仍然可以创建两个元素。
但是,XML可能已关闭:只是因为可能已经命名了字段dateTime,它并不意味着生成的文本节点将是有效的日期时间值,如果模式将其定义为字符串。该工具还将仅创建其中一个选项(如果您的架构使用xsd:choice
)等。
QTAssistant可以使用额外的元数据,使用户可以对生成的样本进行最终控制。它甚至可以通过使用元数据项捕获的组合来创建数千个XML。 (如果您对这些情况感兴趣,请在支持网站上与我们联系)。
关于XML到JSON转换,QTAssistant还可以正确地将XML转换为JSON以用于重复字段。鉴于此XML:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- Sample XML generated by QTAssistant (http://www.paschidev.com) -->
<fundamo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:common="http://www.myorg.com/xsd/gen_fin">
<response>
<common:code>code1</common:code>
<common:description>description1</common:description>
</response>
<transaction>
<transactionRef>transactionRef1</transactionRef>
<dateTime>dateTime1</dateTime>
<userName>userName1</userName>
</transaction>
</fundamo>
相应的JSON是:
{
"response": {
"code": "code1",
"description": "description1"
},
"transaction": [
{
"transactionRef": "transactionRef1",
"dateTime": "dateTime1",
"userName": "userName1"
}
]
}
您可能会注意到该事务是一个数组,即使XML只有这些元素中的一个。此转换适用于有效的XML,只要您为其所有内容定义了XSD即可。在过去2年多的时间里,我们一直在称它为#X; XSD感知JSON转换&#34;。也可以定义套管转换策略(例如,将大写字母改为小写字母,因为XML元素往往是大写字母,而JSON&#34; people&#34;更喜欢小写字母)。
如果您正在使用免费工具或编写自己的工具,我相信您可以使用免费评估作为灵感来源,仅解决您感兴趣的特定功能。