Вы можете использовать .NET Class: XmlSchemaValidator
2 основных метода: GetExpectedParticles и GetExpectedAttributes, которые возвращают объект XmlSchemaObject.Прежде чем использовать их, вам необходимо настроить контекст для валидатора, проверив все предшествующие элементы и элементы и атрибуты предка.
Вам также нужно будет использовать методы в классах, производных от XmlSchemaObject, они предоставляют различные частипосткомпиляция объектной модели схемы.Сама иерархия моделей очень напоминает структуру XML, которую вы найдете в файлах XSD.Возможно, вам потребуется использовать рекурсию, и существует довольно много потенциальных ловушек, например, при обработке групп подстановки, но разумное решение может быть найдено примерно в 2000 строках c #.