Надежна ли проверка данных XSD в.Net 4.0?

Я написал клиента в общедоступный веб-сервис SOAP, используя WSDL и несколько файлов XSD, предоставленных поставщиком услуг. Я хотел найти простой способ проверки пользовательских данных по файлам XSD, поэтому я использовал стандартный пример из MSDN, используя XmlSchemaSet для файлов XSD, XmlReader и процедуру проверки, чтобы перехватить сообщения об ошибках. (Код доступен по адресу http://msdn.microsoft.com/en-us/library/as3tta56.aspx). Он работает для некоторых элементов данных, но другие не выдают ошибку, если они недействительны. Если я включу "ValidationFlags = ValidationFlags или XmlSchemaValidationFlags.ReportValidationWarnings", я получу много предупреждений, например, "Не удалось найти информацию о схеме для элемента" MyRequest "", "Не удалось найти информацию о схеме для атрибута" TheDate "", и т.д. Но я могу открыть файлы XSD в IDE VS2010, и его XML Schema Explorer показывает эти элементы и атрибуты.

Поэтому мой главный вопрос для всех, кто знаком с проверкой данных XML в VS2010 таким образом: есть ли ограничения сложности файлов XSD, которые может обрабатывать проверка XmlReader? Могут ли префиксы для целевых пространств имен перепутать XmlReader? В схеме определены тысячи сложных типов, распределенных по 7 XSD-файлам, поэтому я хотел, чтобы это обрабатывалось автоматически, а не писал процедуру проверки для каждого поля ввода пользователя.

Заранее спасибо.

1 ответ

Проверка.NET может быть не идеальной, но она является одной из лучших в отрасли. У них точно есть проблема с загрузчиком схем (мы используем наш собственный), который иногда слишком легко обмануть (я бы сказал). Помимо вышесказанного, я не знаю никаких других ограничений, как вы описали. Мы регулярно используем.NET XmlSchemaSet для загрузки и проверки XSD-файлов, распределенных по сотням файлов, во всех видах комбинаций пространств имен и с тысячами элементов, типов и т. Д.

Другие вопросы по тегам