Могу ли я указать схему XML / xsd при десериализации? - PullRequest
1 голос
/ 19 января 2011

Я пытаюсь десериализовать XML из внешней службы, поэтому у меня нет контроля над выходным XML, который я получаю.

XML службы немного странный.Он не определяет схему, он ссылается на себя.Например:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE response>
<response>
 // blah blah
</response>

Я могу использовать встроенные в VS инструменты для создания для него XSD-файла, но можно ли при десериализации указать локальный XSD-файл?Вместо использования несуществующего в теге DOCTYPE?

1 Ответ

1 голос
/ 19 января 2011

Может потребоваться указать, чтобы не использовать XmlResolver при загрузке XML-документа. См. Игнорировать DOCTYPE .dtd, но файл .dtd все еще должен существовать

Вы можете легко указать .xsd файл. Используйте объект XmlReaderSettings при загрузке документа. Обратите внимание, что если ваша программа является веб-службой, ваш .xsd может находиться в каталоге Windows. Чтобы получить подсказку, в том числе о боли в 64-битной Windows, см. MSI Installer, 64-битная ОС, запись в папку \ windows \ system32 \ inetsrv

...