针对XSD的XML验证失败 - minOccurs明显被忽略

时间:2014-08-27 16:57:30

标签: xml xml-parsing xsd xsd-validation

当我针对XSD验证XML时出现错误,我无法弄清楚原因。

“错误是在另一个元素下不允许使用元素,因为该位置需要其他元素。”

错误快照位于http://imgur.com/YRZTVTD

XML和XSD分别位于http://dpaste.com/2933QH8http://dpaste.com/16QAQ6B

有趣的是,另一个XSD工作正常。两个模式之间没有太大区别。这是XML验证的模式。 http://dpaste.com/233S87T

它好像忽略了minOccurs指令,但我无法弄清楚原因。

赞赏一些指导。

1 个答案:

答案 0 :(得分:1)

由于错误显示 DistroSeqNumber 是意外的。这是因为 DistroSeqNumber 必须始终出现在 OriginalPickticketQty 元素之后(它具有 minOccurs = 1 )。因此,解析器需要 OriginalPickticketQty 元素或其中一个选项元素,但它还没有期待 DistroSeqNumber 元素。

注意:(也许你已经知道了..)你的 OriginalPickticketQty 有一个属性 default = 0 ,请记住这意味着如果没有为其提供的值一个 OriginalPickticketQty 元素(<OriginalPickticketQty></OriginalPickticketQty>),那么值0将自动分配,但这并不意味着如果该元素没有出现在XML中,那么#&# 39; s自动添加0值。