我有一個XSD和不正確的XML。當強制元素從序列複雜類型中缺失時XSD驗證錯誤
XSD的複雜類型爲序列元素。所有這些元素都是強制性的。 (XSD由第三方維護,不能更改)
不正確的XML缺少一個元素。
當我使用C#驗證XML對XSD時,預期的錯誤是「'XXX'元素預計」。但實際上,它也告訴我「元素有無效的子元素」。我不知道我該怎麼做。
爲了幫助你理解我的問題,我會告訴你一個例子:
<!-- Incorrect XML -->
<class>
<el1>222</el1>
<el3>222</el3>
</class>
<!-- XSD -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="class">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:short" name="el1" />
<xs:element type="xs:short" name="el2" />
<xs:element type="xs:short" name="el3"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
的真實的,但意外的驗證錯誤是類似於下面:
元素「類」無效子元素'el3'。預計可能的元素列表:'el2'。
預期的錯誤是:
預期可能元素的列表: 'EL2'。
我不認爲這個錯誤是必然的。錯誤輸出告訴你,它實際上預計爲''元素時,它會觸發一個''元素。而從驗證的角度來看,它應該還是失敗了,只是出現了你沒有想到的錯誤信息。 –
謝謝Tim,我認爲你是對的。 – Charlie