Visual Studio:用整数生成xsd问题的代码

本文关键字:xsd 问题 代码 Studio 整数 Visual | 更新日期: 2023-09-27 18:13:29

谁能告诉我,为什么xsd中的整数元素在字符串字段中被转换?

<xs:element name="OwnerID" type="xs:integer"/>

[System.Xml.Serialization.XmlElementAttribute(DataType = "integer")]
public string OwnerID
{
    get
    {
        return this.ownerIDField;
    }
    set
    {
        this.ownerIDField = value;
    }
}

我的第一个假设是所有字段都是由真实数据类型属性的字符串,这是不正确的-日期被解释为日期,bool被解释为bool -整数有什么问题?

提前感谢!

Visual Studio:用整数生成xsd问题的代码

你需要这样做:

<xs:element name="OwnerID" >
    <xs:simpleType>
        <xs:restriction base="xs:int" />
    </xs:simpleType>
</xs:element>

sq33G的答案是正确的,但我想补充的是,您的原始XSD元素

的原因
<xs:element name="OwnerID" type="xs:integer"/>

被转换为字符串是因为根据W3C数字数据类型,xs: integer表示任何整数值。由于不局限于32位或64位的数字,并且c#中没有可以处理无界整数的数字数据类型,因此反序列化器选择了字符串类型,因为它是唯一可以安全处理该值的类型。