Валидация xml файла

113
16 марта 2021, 07:20

Есть xml файл. Его необходимо проверить согласнo схеме XSD.

Вот такой простенький код:

XmlDocument document = new XmlDocument();
document.Load("file.xml");
XmlReader reader = XmlReader.Create("schema.xsd");
XmlSchema schema = XmlSchema.Read(reader, null);
document.Schemas.Add(schema);
document.Validate((o, e) => { Console.WriteLine(e.Message); });

Если в схеме импортируются другие схемы, то возникает exception с примерно следующим содержанием:

Undefined complexType 'ТУТ СОБСТВЕННО ТИП, КОТОРЫЙ В ОПИСАН В ИМПОРТИРУЕМОЙ СХЕМЕ' is used as a base for complex type extension.`

Импортируемая схема лежит рядом с schema.xsd, schemaLocation указана.

Разве импортируемая схема не должна была подхватиться? Как это исправить?

Кстати, если попробовать ручками добавить:

XmlReader r = XmlReader.Create("imported.xsd");
XmlSchema s = XmlSchema.Read(r, null);
document.Schemas.Add(s);

То валидация пройдет успешно, но это не вариант, т.к. файлы и схемы всегда разные.

READ ALSO
Как сделать запоминание выбора игрока

Как сделать запоминание выбора игрока

Есть у меня в игре скины(другая картинка в персонажа) и нужно ,чтобы после выхода игрока из игры его выбор сохранялся(когда он вернется в игру...

107
Фильтр списка в списке

Фильтр списка в списке

У меня есть список под названием matrixКаждый элемент в matrix содержит еще один список под названием Items

115
Как отправить пользователю изображение через телеграм бота используя загрузку файла с помощью запроса HTTP?

Как отправить пользователю изображение через телеграм бота используя загрузку файла с помощью запроса HTTP?

Пишу телеграм бота,который должен редактировать картинку пользователя и отправлять ему отредактированный вариантИспользую NuGet пакет Telegram

94
В чём отличая между шифрованиями AesManaged и Rijndael?

В чём отличая между шифрованиями AesManaged и Rijndael?

Подскажите пожалуйста в чём разница между AesManaged и Rijndael это же по сути одно и тоже?

85