1

我正在尝试在运行时从给定的 xsd 生成示例 xml。为此,我使用了 XML 示例生成器,可以在此处找到。

它工作得很好,一切都很好,但是我注意到创建的输出与Visual Studio 使用的默认 xml 生成器创建的输出不同。您可以在图片中看到差异(只是一个示例)。

左边是 Xml Sample Generator 的输出,右边是 VS 2012 的输出

有没有人有使用示例生成器的经验,可以告诉我在每个生成器中生成节点和不生成节点之间的决定因素是什么?此外,是否可以告诉 XML 示例生成器创建每个可能的节点,在相应 xsd 中定义的 maxOccurs 之上?

4

1 回答 1

1

在一般情况下,不,任何样本生成器都不可能创建每个可能的节点。一个元素的最大出现次数可以是无限的,一个只允许出现一次的元素可以提供 childa或 child的选择b,而不允许两者都出现。

生成样本的明显方法是允许策略的一些运行时配置(采用第一个替代方案?采用最长的替代方案?采用最简单的替代方案?任意选择?)并在必须做出选择时使用随机数生成器进行选择. 如果同一个生成器在不同时间生成的两个样本是相似的,我会感到惊讶。如果两个不同的生成器为任何重要的语法生成相同的样本,我会更加惊讶。

于 2013-09-02T14:44:36.230 回答