Это один сглаз xsd? Или XSD определяется во время выполнения? С фиксированным xsd вы можете сопоставить его с объектной моделью и использовать XmlSerializer
:
xsd foo.xsd /classes
(в командной строке; генерирует foo.cs с классами для сущностей и т. Д.)
Затем создайте свою объектную модель и используйте XmlSerializer
для ее сериализации. может работать, но не подходит для работы с xsd на лету.