Несколько Xsd с одним и тем же вложенным классом xsd

У меня есть два xsd, которые импортируют один и тот же общий xsd. Я могу генерировать классы для обоих xsd, содержащих общий xsd, с помощью xsd.exe (мне приходится использовать разные пространства имен, поскольку во многих случаях, когда xsds импортируют универсальный xsd, поля одинаковы).

Я хочу знать, возможно ли создать класс для универсального xsd, а затем наследовать от него два других xsd? Таким образом, я могу передавать данные без необходимости писать ужасные методы преобразования.

заранее спасибо


person Richard Hudson    schedule 22.02.2019    source источник
comment
Создайте базовый класс, а затем создайте два класса, которые наследуют базовый класс.   -  person jdweng    schedule 22.02.2019
comment
Я не уверен, что это сработает, как будто есть изменения в любом из xsd, который мне нужен для запуска xsd.exe, который перезаписывает файл. С точки зрения обслуживания это не идеально, так как мне придется каждый раз редактировать сгенерированные классы.   -  person Richard Hudson    schedule 22.02.2019
comment
Ну, это проблема, когда вы используете рекурсивную схему с сетевой сериализацией. Что-то должно быть на заказ.   -  person jdweng    schedule 22.02.2019
comment
Я подозреваю, что проблема, возможно, в том, что xsd.exe, вероятно, слишком груб для того, что я хочу сделать. Слышали ли вы о каких-либо других инструментах, которые могли бы достичь этого?   -  person Richard Hudson    schedule 22.02.2019
comment
Я не думаю, что какой-либо инструмент даст рекурсивные классы. Схема определяет типы и может иметь дочерний элемент того же типа, что и родитель. Библиотека сериализации в сети не поддерживает рекурсию. Как инструмент схемы узнает, есть ли у вас 5 или 10 уровней рекурсии?   -  person jdweng    schedule 22.02.2019


Ответы (1)


Нашли ответ от инструмента, который может объединять множество файлов XSD в один?

Создан еще один файл, в котором перечислены схемы и их генерация с помощью команды /p в xsd.exe.

person Richard Hudson    schedule 02.07.2019