首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >XSD: xs:integer和xs:int有什么区别?

XSD: xs:integer和xs:int有什么区别?
EN

Stack Overflow用户
提问于 2013-03-11 18:59:32
回答 3查看 103.3K关注 0票数 118

我已经开始创建XSD,并在xs:integerxs:int的几个示例中找到。

xs:integerxs:int有什么区别?什么时候应该使用xs:integer?什么时候应该使用xs:int

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-11 18:59:32

区别如下:xs:int是一个带符号的32位整数。xs:integer是一个整数无界值。有关详细信息,请参阅https://web.archive.org/web/20151117073716/http://www.w3schools.com/schema/schema_dtypes_numeric.asp例如,XJC (Java)为xs:int生成Integer,为xs:integer生成BigInteger

底线:如果您想跨平台工作,请使用xs:int,并确保您的数字通过时没有问题。如果你想要更大的数字-使用xs:long而不是xs:integer (它将被生成为Long)。

票数 119
EN

Stack Overflow用户

发布于 2013-03-11 23:34:36

xs:integer类型是对xs:decimal的限制,将fractionDigits facet设置为零,并使用禁止使用小数点和尾随零的词法空间,否则这是合法的。它没有最小值或最大值,尽管在有限大小的机器上运行的实现不需要能够接受任意大小的值。(它们需要支持16位十进制数的值。)

xs:int类型是xs:long的限制,maxInclusive方面设置为2147483647,minInclusive方面设置为-2147483648。(如您所见,它适合于双补32位有符号整数字段;xs:long适合于64位有符号整数字段。)

通常的规则是:使用与你想要表达的内容相匹配的规则。如果对元素或属性的约束是它的值必须是整数,那么xs:integer就可以简洁地说明这一点。如果约束条件是该值必须是在二进制补码表示中最多可以用32位表示的整数,则使用xs:int。(第二个但有时很重要的问题是,您的工具链是否与其中一个一起工作得更好。对于存在时间比工具链更长的数据,明智的做法是首先听取数据;对于仅为提供工具链而存在的数据,如果更改工具链,则没有理由不听取工具链。)

票数 31
EN

Stack Overflow用户

发布于 2013-09-23 23:01:50

我只想补充一点对某些人来说可能很重要的卖弄学问:说xs:int“是”有符号32位整数是不正确的。这种形式的字意味着在二进制数字计算机内的存储器(或寄存器等)中的实现。XML是基于字符的,它将最大32位有符号值实现为"2147483647“(当然是我的引号),这比32位要多得多!正确的是,xs:int (间接地)是xs:integer的限制,它将允许的最大值和最小值设置为与32位整数的符号位的相应实现施加的限制相同。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15336872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档