我试图在运行时从给定的xsd生成一个示例xml。为此,我使用的是XML Sample Generator,可以找到here.
它很好用,但是我注意到创建的输出与Visual Studio使用的default xml generator创建的输出不同。你可以看到图片中的差异(只是一个样本)。
有没有人有样品生成器的经验,可以告诉我在生成节点和不在每个生成器中生成节点之间决定什么因素?此外,是否可以告诉XML Sample Generator创建每个可能的节点,在相应的xsd中定义的maxOccurs?
答案 0 :(得分:1)
在一般情况下,不,任何样本生成器都不可能创建每个可能的节点。元素出现的最大次数可以是无界的,只允许出现一次的元素可以选择子a
或子b
,而不允许两者。
生成样本的显而易见的方法是允许一些运行时策略配置(采取第一种选择?采取最长的替代方案?采取最简单的替代方案?任意选择?)并使用随机数生成器在选择时做出选择必须做。如果同一发电机在不同时间产生的两个样品相同,我会感到惊讶;如果两个不同的生成器为任何非平凡的语法生成相同的样本,我会更加惊讶。