Answers:
区别如下:
xs:int
是一个有符号的32位整数。
xs:integer
是一个整数无界值。详情请参阅https://web.archive.org/web/20151117073716/http://www.w3schools.com/schema/schema_dtypes_numeric.asp
例如,XJC(JAVA)产生Integer
的xs:int
,并BigInteger
为xs:integer
。
最重要的是:xs:int
如果您想跨平台工作,请使用此方法,并确保您的电话号码可以顺利通过。如果您想要更大的数字,请使用xs:long
代替xs:integer
(它将生成为Long
)。
所述的xs:整数类型是xs的限制:小数,与在fractionDigits面设置为零,并且与禁止小数点和尾随零,否则是合法的一个词汇空间。它没有最小值或最大值,尽管在有限大小的机器上运行的实现不需要能够接受任意大或小值。(要求他们支持16位十进制数字的值。)
该XS:INT型是XS的限制:长,与小maxInclusive,便会设置为2147483647和minInclusive facet来-2147483648。(如您所见,它将很方便地适合两个补码的32位有符号整数字段; xs:long适合于64位有符号整数字段。)
通常的规则是:使用与您要说的内容相匹配的语言。如果对元素或属性的约束是其值必须为整数,则xs:integer简洁地说。如果约束是值必须是一个整数,该二进制数可以用二进制补码表示形式最多以32位表示,请使用xs:int。(另一个但有时也很重要的问题是,您的工具链是否与一个工具链一起使用会更好。对于寿命比您的工具链更长的数据,明智的做法是先监听数据;对于仅用于喂养工具的数据链,如果您更改工具链,这将毫无意义,那么就没有理由不听工具链。)
我只想添加对某些人可能很重要的脚手架注释:xs:int“是”一个有符号的32位整数是不正确的。单词的这种形式意味着在二进制数字计算机内的存储器(或寄存器等)中的实现。XML是基于字符的,并且将实现最大的32位带符号值作为“ 2147483647”(当然,我的引用是),这比32位要多得多!正确的是xs:int(间接地)是xs:integer的限制,该限制将最大和最小允许值设置为与带有符号位的32位整数的相应实施施加的限制相同。
, but not
xs:int`或xs:long
。