当我针对XSD验证XML时出现错误,我无法弄清楚原因。
“错误是在另一个元素下不允许使用元素,因为该位置需要其他元素。”
错误快照位于http://imgur.com/YRZTVTD
XML和XSD分别位于http://dpaste.com/2933QH8和http://dpaste.com/16QAQ6B。
有趣的是,另一个XSD工作正常。两个模式之间没有太大区别。这是XML验证的模式。 http://dpaste.com/233S87T
它好像忽略了minOccurs指令,但我无法弄清楚原因。
赞赏一些指导。
答案 0 :(得分:1)
由于错误显示 DistroSeqNumber 是意外的。这是因为 DistroSeqNumber 必须始终出现在 OriginalPickticketQty 元素之后(它具有 minOccurs = 1 )。因此,解析器需要 OriginalPickticketQty 元素或其中一个选项元素,但它还没有期待 DistroSeqNumber 元素。
注意:(也许你已经知道了..)你的 OriginalPickticketQty 有一个属性 default = 0 ,请记住这意味着如果没有为其提供的值一个 OriginalPickticketQty 元素(<OriginalPickticketQty></OriginalPickticketQty>
),那么值0将自动分配,但这并不意味着如果该元素没有出现在XML中,那么#&# 39; s自动添加0值。