早上好时,分钟对组分钟
问题:
我试图创建一个输入文件的模式。我无法获得正确的属性组合来获取我的测试文件进行验证。
输入文件:
该文件包括一个需要的头,记录一个可选的重复基团,和一个所需的拖车。该文件是包含每个人员信息的员工列表。 组内的重复记录应按顺序呈现。组中的一些记录是可选的,有些不是。重复组中至多应有一种记录类型。
像这样:
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,应该是为了和可重复。
我已经试过:
我创建了一个<序列>并在其中放置E1通过P3。 我设置min发生= 0,max发生=序列上无界。
我在所需记录E1,E2,E3上设置min发生= 1,max发生= 1。 我在可选记录P1,P2,P3上设置min发生= 0,max发生= 1。
问题:
的组的第二次出现总是引起一个实例验证失败(Visual Studio 2010中)。错误消息没有帮助:“意外的数据发现”
我不清楚每个记录上“min发生”和“group min发生”之间的区别。 序列或全局中的“min发生”是本地的吗? 如果我在E1记录上设置了max occurrence = 1,我会得到一个文件还是每个文件一个? 关于MSDN的解释清楚如泥。
我尝试将值放在“group *”属性中,但仍然没有快乐。
我哪里错了?
谢谢。
编辑:
的架构的一个图:
DPIC是标题,Z1拖车。添加S1记录似乎会导致失败。 我已经看过P3和S1的定义,它们看起来是正确的。这是从MSVC 2010向导生成的平面文件 模式。
我试着重新排列输入以获得一些线索。第二组记录不是问题。它只有在输入没有可选的P1或P2记录时才会失败。它在接下来的第一个P3记录上失败。所以我猜想顺序是问题。你如何指定具有可选记录的序列? – Jay
你可以发布XML而不是描述它吗? –
这是巨大的,我的雇主可能不喜欢它发布。我会看看我是否可以做一个表示... – Jay