繁体   English   中英

为什么xsd.exe为xs:integer生成字符串属性?

[英]Why does xsd.exe generate string property for xs:integer?

当我使用xsd.exe从xsd模式生成ac#类时,我觉得这个行为有点奇怪。

我的元素:

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

生成为:

[System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=5)]
public string InvoiceNo
{
   ...
}

为什么该属性不是作为int而不是字符串生成的?

此行为是设计使然

xs:integer类型被指定为其大小没有上限或下限的数字。 因此,XML序列化和验证都不会将其映射到System.Int32类型。 相反,XML序列化将xs:integer映射到字符串,而验证将其映射到比.NET Framework中的任何整数类型大得多的Decimal类型

使用xs:int ,这是一个带符号的32位整数,让Xsd.exe将它映射到System.Int32

<xs:element name="InvoiceNo" type="xs:int" />

以下是XML Schema Definition标准中定义的数据类型的详细列表

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM