SheepSpeech Ответов: 1

Xmlserializer. deserialize (); говорит: "есть ошибка в XML-документе (2, 2)"


Привет ребята,

Я пытаюсь десериализовать данные из xml-файла, а xml следует за xsd-файлом. Я также сгенерировал файл C#, содержащий классы из файла xsd.

Этот код работает отлично:
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.Schemas.Add(null, xsdfile);
XmlReader reader = XmlReader.Create(xmlfile, settings);
while(reader.Read()); // just to see if an exception occurs


Таким образом, это заставляет меня думать, что xml действителен в соответствии с xsd-файлом. (Более того, я точно знаю, что она действительна)

Но когда я заменю эту строку:
while(reader.Read());


С этой линией:
Dump dump = (Dump)serializer.Deserialize(reader);


Я получаю это неуправляемое исключение:
There is an error in XML document (2, 2).
 ---> System.InvalidOperationException: <Dump xmlns=''> wasn't expected


Но нет
<Dump xmlns=''>
в моем xml только a
<Dump>
.

Так что я немного растерялся.. Вы можете помочь?

Спасибо!

Что я уже пробовал:

Поиски но пока ничего не помогли :/

1 Ответов

Рейтинг:
2

Atlapure Ambrish

Попробуйте добавить следующие аннотации в начало вашего класса, помните, что xml чувствителен к регистру

[Serializable, XmlRoot("Dump")]
public partial class Dump
{
}