Есть класс на c#
public class TestObj
{
public int Livestock;
public string Dog;
public int FeetToFireHydr;
public string CurAutoCarrier;
public bool OrderFinMerit;
}
Для него средствами XmlReflectionImporter вот такая XSD схема
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="TestObj" nillable="true" type="TestObj" />
<xs:complexType name="TestObj">
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="Livestock" type="xs:int" />
<xs:element minOccurs="0" maxOccurs="1" name="Dog" type="xs:string" />
<xs:element minOccurs="1" maxOccurs="1" name="OrderFinMerit" type="xs:boolean" />
<xs:element minOccurs="1" maxOccurs="1" name="FeetToFireHydr" type="xs:int" />
<xs:element minOccurs="0" maxOccurs="1" name="CurAutoCarrier" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:schema>
И через XmlSerializer сериализуется вот такой xml
<TestObj>
<Livestock>123</Livestock>
<FeetToFireHydr>6666</FeetToFireHydr>
<CurAutoCarrier>zzzz</CurAutoCarrier>
<OrderFinMerit>true</OrderFinMerit>
<Dog>aaaa</Dog>
</TestObj>
Хорошо видно, что порядок тэгов отличен в xsd схеме, xml и самом объекте. Поэтому при попытке провалидировать приходящий xml через XmlDocument.Validate получаем ошибку.
При этом сам xml через XmlSerializer десериализуется корректно.
Вопрос: как осуществлять проверку соотвествия xml схеме?