Порядок тэгов в xml и xsd
От: freeprog  
Дата: 20.09.10 11:26
Оценка:
Есть класс на 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 схеме?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.