我已经创建了一个XSD并且已经在该.xsd文件之上运行了XSD.exe。看来,我的简单类型被限制为枚举值,并不是在输出的.cs文件中生成为枚举。XSD.exe/dataset没有从我的xsd文件创建枚举
例如,我的XSD看起来是这样的:
<xs:element name="ItemList" nillable="false">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="1">
<xs:element name="Item" type="ItemType" minOccurs="1" maxOccurs="unbounded" nillable="false">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="ItemType">
<xs:sequence maxOccurs="1" minOccurs="1">
<!-- other complex types, etc... -->
</xs:sequence>
<xs:attribute name="Market" type="MarketType" use="required">
</xs:attribute>
<xs:attribute name="Category" type="CategoryType" use="required" />
</xs:complexType>
<xs:simpleType name="CategoryType">
<xs:restriction base="xs:string">
<xs:enumeration value="Mild" />
<xs:enumeration value="Hot" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="MarketType">
<xs:restriction base="xs:string">
<xs:enumeration value="Weak" />
<xs:enumeration value="Strong" />
</xs:restriction>
</xs:simpleType>
当我运行XSD.EXE不应输出的cs文件对我的每个简单类型的XML枚举属性? This link says that it should。也许我做错了什么?没有我的.cs文件中的任何位置可以看到枚举。
如果您需要更多信息,请告诉我可以提供什么。
谢谢。
UPDATE:
看来,我是用XSD.EXE创建数据集(/ d开关),当我应该已经创建一个类(/ c开关)。在我设置它生成一个类后,它工作正常。
你的例子帮助我在它的情况下工作。之前,我有一个生成的字符串类型。在我添加一个'xmlns:tns =“mynamespace”'并且在属性声明中使用了'tns:'后,我产生了一个枚举类型。 – 2015-05-07 19:05:06