Инструмент.Net xsd.exe не генерирует все типы

По некоторым причинам MS .NET (v3.5) инструмент - xsd.exe не генерирует типы, когда они не используются ни в каком элементе.

например.

Файл XSD (я добавил сложный элемент для предотвращения этого предупреждения - "Предупреждение: не может генерировать классы, потому что никакие элементы верхнего уровня с составным типом не были найдены".):

<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://tempuri.org/XMLSchema.xsd"
    elementFormDefault="qualified"
    xmlns="http://tempuri.org/XMLSchema.xsd"
    xmlns:mstns="http://tempuri.org/XMLSchema.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
  <xs:simpleType name="EnumTest">
    <xs:restriction base="xs:string">
      <xs:enumeration value="item1" />
      <xs:enumeration value="item2" />
      <xs:enumeration value="item3" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="myComplexType">
    <xs:attribute name="Name" use="required" type="xs:string"/>
  </xs:complexType>
  <xs:element name="myElem" type="myComplexType"></xs:element>
</xs:schema>

Когда я выполняю это посредством использования xsd.exe

xsd/c xsdfile.xsd

Я не вижу EnumTest в сгенерированном cs файле.

Примечание; Даже при том, что я не использую перечисление здесь, но в моем фактическом проекте, у меня есть случаи как это, куда мы отправляем строковое значение перечисления, как произведено.

Как я могу вынудить xsd инструмент включать их? Или я должен переключиться на некоторый другой инструмент?

Я работаю в Visual Studio 2008.

7
задан skaffman 8 June 2010 в 09:54
поделиться

1 ответ

Если вы не используете перечисление здесь или в любом другом классе, создаваемом с помощью инструмента xsd, тогда определите его в своем проекте где-нибудь еще, как и любое другое перечисление. Если вам абсолютно необходимо, чтобы инструмент xsd создал для вас класс, то решение Workshop Alex является наиболее часто используемым обходным путем в этом случае (я даже не считаю это обходным путем, на самом деле очень удобно иметь возможность использовать инструмент таким образом)

0
ответ дан 7 December 2019 в 01:21
поделиться