У меня есть XSD и неправильный XML.Ошибка проверки XSD, когда обязательный элемент отсутствует из последовательности сложного типа
XSD имеет сложный тип с последовательностью элементов. Все эти элементы: обязательно. (XSD поддерживается сторонним лицом и не может быть изменен)
Неправильный XML отсутствует один элемент.
Когда я проверяю XML на XSD с использованием C#, ожидаемая ошибка - это «элемент« 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.
Я не рассматриваю эту ошибку как непредвиденную. Вывод ошибки сообщает вам, что он ударил элемент '', когда он действительно ожидал элемент ''. И с точки зрения проверки, она по-прежнему терпит неудачу, когда это нужно, просто с сообщением об ошибке, которого вы не ожидали. –
Спасибо, Тим, я думаю, ты прав. – Charlie