Для скорости я бы сделал это в C #, однако для полноты вы можете сделать это с помощью XSD. Проблема заключается в том, что вам нужно выучить многословный и громоздкий синтаксис XSD, который, как показывает опыт, требует много проб и ошибок, отнимает много времени и не приносит большого вознаграждения за сериализацию. Особенно с константами, где вы должны отобразить их в C #, а также в XSD.
Вы всегда будете писать XML как C #. Все, что не известно при обратном чтении, просто игнорируется. Если вы не редактируете XML с помощью текстового редактора, вы можете гарантировать, что он вернется правильно, и в этом случае XSD определенно не нужен.