我已经开始创建XSD和几个例子为发现xs:integer和xs:int.
xs:integer和之间有什么区别xs:int?什么时候应该用xs:integer?什么时候应该用xs:int?
Mic*_*ael 104
区别在于:
xs:int是带符号的32位整数.
xs:integer是一个整数无界值.有关详细信息
,请参阅https://web.archive.org/web/20151117073716/http://www.w3schools.com/schema/schema_dtypes_numeric.asp例如,XJC(Java)生成Integerfor xs:int和BigIntegerfor xs:integer.
底线:xs:int如果您想跨平台工作并确保您的数字通过而没有问题,请使用.如果你想要更大的数字 - 使用xs:long而不是xs:integer(它将被生成Long).
C. *_*een 30
所述的xs:整数类型是xs的限制:小数,与在fractionDigits面设置为零,并且与禁止小数点和尾随零,否则是合法的一个词汇空间.它没有最小值或最大值,但是在有限大小的机器中运行的实现不需要能够接受任意大或小的值.(它们需要支持16位十进制数字的值.)
该XS:INT型是XS的限制:长,与小maxInclusive,便会设置为2147483647和minInclusive facet来-2147483648.(正如您所看到的,它可以方便地放入一个双补码32位有符号整数字段; xs:long适合64位有符号整数字段.)
通常的规则是:使用与您想要说的匹配的那个.如果对元素或属性的约束是其值必须是整数,则xs:integer简洁地说明.如果约束是该值必须是可以在二进制补码表示中以最多32位表示的整数,请使用xs:int.(次要但有时重要的一个问题是,您的工具链是否与其他工具链相比更好.对于比您的工具链更长寿的数据,最好先收听数据;对于仅用于提供工具的数据链,如果你改变工具链就没有意义,没有理由不去听工具链.)
小智 6
我只想添加一些对某些人来说很重要的迂腐:说xs:int"是一个带符号的32位整数是不正确的.这种形式的词意味着在二进制数字计算机内的存储器(或寄存器等)中的实现.XML是基于字符的,并且将最大32位带符号值实现为"2147483647"(当然我的引号),这超过了32位!真实的是xs:int是(间接)xs:integer的限制,它将最大和最小允许值设置为与带符号位的32位整数的相应实现强制限制相同.