Инкрементная генерация классов из набора XSD-схем со ссылками (include / import) - PullRequest
0 голосов
/ 19 января 2012

Предположим, у меня есть 3 схемы XSD:

  1. BaseSchema.xsd: содержит многократно используемые типы, например, позиция, цвет, адрес, список стран
  2. SchemaA.xsd: включает в себяБазовая схема и специфична для домена A
  3. SchemaB.xsd: включает базовую схему и специфична для домена B

Я хотел бы создать соответствующие им классы C #.Я могу запустить

  1. "XSD.exe / c SchemaA.xsd BaseSchema.xsd" + "XSD.exe / c SchemaB.xsd BaseSchema.xsd", в результате чего 2 C # файлы, содержащие классыот BaseSchema 2x.Не хорошо.
  2. "XSD.exe / c SchemaA.xsd SchemaB.xsd BaseSchema.xsd", который приводит только один класс C # для типов в BaseSchema.xsd.Это очень мило, но не всегда возможно.Например, , если мне нужно использовать стороннюю сборку, уже содержащую сгенерированный класс BaseSchema и Schema B.

Есть ли способ постепенной генерации классов C #?Например, как-то включить сборки в командную строку, чтобы дать указание генератору повторно использовать уже сгенерированные классы C #, вместо того, чтобы создавать их снова?

1 Ответ

1 голос
/ 19 января 2012

В зависимости от времени и усилий, которые вы хотите приложить, я бы

a) использовал «XSD.exe / c SchemaA.xsd SchemaB.xsd BaseSchema.xsd», удалял сгенерированные классы BaseSchema извместо этого файл и ссылка на стороннюю библиотеку.

b) использовать Xsd2Code .Он не делает то, что вы хотите из коробки, но может быть легко изменен в соответствии с вашими потребностями.

Я не думаю, что xsd.exe предлагает другое подходящее решение.

...