1

这是一个错误吗?

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:simpleType name="sbrSexItemType">
            <xsd:restriction base="xsd:string">
                <xsd:enumeration value="1"/>
                <xsd:enumeration value="2"/>
                <xsd:enumeration value="3"/>
                <xsd:enumeration value="0"/>
            </xsd:restriction>
    </xsd:simpleType>
    <xsd:element name="TestSexItemType1" type="sbrSexItemType"/>
    <xsd:element name="TestSexItemType2" type="sbrSexItemType"/>
</xsd:schema>

我得到:

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlRootAttribute("TestSexItemType1", Namespace="", IsNullable=false)]
public enum sbrSexItemType {

    /// <remarks/>
    [System.Xml.Serialization.XmlEnumAttribute("1")]
    Item1,

    /// <remarks/>
    [System.Xml.Serialization.XmlEnumAttribute("2")]
    Item2,

    /// <remarks/>
    [System.Xml.Serialization.XmlEnumAttribute("3")]
    Item3,

    /// <remarks/>
    [System.Xml.Serialization.XmlEnumAttribute("0")]
    Item0,
}

这是某种玩笑吗?甚至没有产生错误。生成的代码如何以任何形状或形式表示 XSD?

4

2 回答 2

1

当然可能的值1,2,3,0不能直接转换为枚举值(标识符不能以数字开头),所以 xsdItem在创建标识符时将“”放在值之前。XmlEnumAttribute告诉XmlSerializer在读取或写入 Xml 文件时应该实际使用哪个值。所以看起来生成的枚举完成了这项工作。

于 2013-04-22T06:16:23.627 回答
0

如果您有其他类型而不是枚举。您应该将枚举放在顶部。我不知道为什么,但我的问题就这样解决了。

于 2013-04-22T08:29:49.243 回答