Классы XSD Gen, которые ссылаются на общий тип

Я использую XSD для определения моих типов DTO в C #. Я использую XSD.exe для генерации классов из XSD.

У меня есть Common.xsd, который определяет тип адреса, и я хочу использовать его в нескольких классах:

  <xs:complexType name="Address">
    <xs:sequence>
      <xs:element name="Street1" type="xs:string"/>
      <xs:element name="Street2" type="xs:string"/>
      <xs:element name="City" type="xs:string"/>
      <xs:element name="State" type="xs:string"/>
      <xs:element name="Zip" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="Address" type="mhm:Address"/>

Я ссылаюсь на это в компании XSD:

  <xs:include schemaLocation=".\Common.xsd"/>
  <xs:complexType name="Company">
    <xs:sequence>
      <xs:element name="AdmCode" type="xs:string"/>
      <xs:element name="CompanyCode" type="xs:string"/>
      <xs:element name="Name" type="xs:string"/>
      <xs:element ref="mhm:Address"/>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="Company" type="mhm:Company"/>

И сотрудник XSD:

  <xs:include schemaLocation=".\Common.xsd"/>
  <xs:complexType name="Employee">
    <xs:sequence>
      <xs:element name="EmployeeNumber" type="xs:int"/>
      <xs:element name="FirstName" type="xs:string"/>
      <xs:element name="LastName" type="xs:string"/>
      <xs:element name="Address" type="mhm:Address"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="Employee" type="mhm:Employee"/>

Я генерирую классы, используя эту командную строку:

xsd .\XSD\Common.xsd /c /o:. /n:"DomainModel"
xsd .\XSD\Employee.xsd /c /o:. /n:"DomainModel"
xsd .\XSD\Company.xsd /c /o:. /n:"DomainModel"

Когда я собираюсь скомпилировать проект, я обнаружил, что тип адреса был сгенерирован как в файле класса Company.cs, так и в файле класса Employee.cs.

Как я могу получить тип адреса, сгенерированный только один раз в файле класса Common.cs, и типы Employee и Company используют этот единственный тип адреса?

Ответы на вопрос(2)

Ваш ответ на вопрос