minoccurs vs group minoccurs

时间:2011-11-15 17:57:53

标签: xml validation xsd

早上好,

问题:

我正在尝试为输入文件创建架构。我无法获得正确的属性组合以使我的测试文件得到验证。

输入文件:

该文件包含必需的标题,可选的可重复记录组和必需的预告片。该文件是员工列表,其中包含每个员工的信息。 组内的重复记录应按顺序显示。组中的某些记录是可选的,有些则不是。重复组中最多应该有一种记录类型。

像这样:

header (required)

E1 (required if group is present)
E2 (required if group is present)
E3 (required if group is present)
P1 (optional)
P2 (optional)
P3 (optional)
S1 (optional)

E1  <--- error is here
E2
E3

Trailer (required)

小组,E1到P3,应该是有序的,可以重复。

我尝试了什么:

我创建了一个&lt; sequence&gt;并在其中放置E1至P3。 我设置min发生= 0,最大值发生=序列上的无界限。

我在所需记录E1,E2,E3上设置min occurrence = 1,最大值= 1。 我在可选记录P1,P2,P3上设置min occurrence = 0,最大值= 1。

问题:

组的第二次出现总是导致实例验证失败(Visual Studio 2010)。错误消息没有帮助:“发现意外数据”

我不清楚每条记录上“发生最小”和“发生组合”之间的区别。 “min发生”是序列内还是全局的? 如果我在E1记录上设置max occurrence = 1,我是每个文件一个还是每个序列一个? 关于MSDN的解释很清楚。

我尝试将值放在“group *”属性中但仍然没有乐趣。

我哪里出错了?

感谢。

修改

架构图片:

enter image description here

DPIC是标题,Z1是预告片。添加S1记录似乎导致失败。 我查看了P3和S1的定义,看起来是正确的。这是一个平面文件 从MSVC 2010向导生成的模式。

1 个答案:

答案 0 :(得分:0)

架构不验证输入文件,但仍生成有效的输出文件。我打算把它关闭。谢谢你的帮助