При чтении этого вопроса я удивился нескольким вещам:
- Почему есть опция / набор данных. Это полезно только при преобразовании XSD в код. Вы, кажется, делаете (скомпилированный) код в XSD. (набор данных в сравнении с генерацией класса DTOc)
- Почему есть опция / element. Это полезно только при преобразовании XSD в код (Sub выбирает элемент (ы), для которого создается код, а не все элементы в исходной схеме)
Тогда проблема возникает в том, что эта библиотека содержит типы, имеющие открытые поля / свойства с типом интерфейса (в данном случае ISite).
XmlSerializer не может сериализовать интерфейсы, ему нужны конкретные типы. Отсюда и неудача, которую вы получаете.
Цель ясна, но, боюсь, вы не сможете использовать инструмент XSD.exe. Поскольку один из ваших обязательных объектов (Cube) имеет открытое свойство типа ISite, это всегда будет нарушать XMLSerializer.
Я полагаю, что вашей лучшей ставкой является SDK AnalysisServices (возможно, они предоставляют вам эту объектную модель) или ... (ой), используя свое отражение в типах, которые вы хотите сгенерировать с помощью подмножества полей свойств, оставляя без тип интерфейса.
Надеюсь, это поможет,