Я не уверен, что десериализация вашего XML в объект даст вам необходимую вам проверку.
Возьмем, к примеру, XSD, который определяет строковое поле и затем ограничивает текст, который может появиться в этом поле, для соответствия некоторому регулярному выражению. Будет ли ваш сгенерированный класс соблюдать это ограничение? Существует ряд таких тонких проблем, которые могут привести к тому, что вы либо примете недопустимый XML, либо отвергнете иным образом действительный XML.
Если ваша третья сторона дала вам XSD для проверки, тогда, вероятно, лучше придерживаться этого определения контракта, а не находить короткие пути.
ОДНАКО вы можете обнаружить, что существуют распространенные ошибки и ошибки, которые вы можете быстро отфильтровать. Все зависит от вашего отношения сигнал / шум, но вы можете подумать о создании простого XSD или про грамматического теста, который может «быстро провалиться», прежде чем тратить время на запуск полной XSD. Однако это будет иметь смысл только в том случае, если вы получаете множество сбоев и высокая стоимость полной проверки с помощью XSD.
Кроме того, убедитесь, что вы используете самую быструю проверку XSD для своего сценария. Вы не сказали, является ли это средой .NET или нет, но если это так, у вас есть XmlDocument, XmlValidatingReader и XElement как 3 способа чтения XML и проверки его по схеме. В зависимости от того, откуда вы получаете XML, что вы делаете с ним потом и т. Д., Вы должны оценить, какой из этих механизмов дает вам наилучшую производительность.