XSDSchema中xs:maxLength的数据类型边界及超长值合法性问询
问题解答
1. 该XSDSchema是否合法?
合法。根据XML Schema规范,xs:maxLength的value属性接受xs:nonNegativeInteger类型的值,而xs:nonNegativeInteger支持任意大的非负整数(只要是合法的XML数值格式)。你提供的9999999999999999是符合规范的非负整数,所以这个Schema的定义本身没有问题。
2. xs:maxLength属性允许的数据类型?
xs:maxLength的value属性必须是xs:nonNegativeInteger类型,即大于等于0的整数,规范中没有对该整数的位数做强制限制,只要能以合法的XML数值形式写出即可。
补充说明
你在.NET环境中遇到的运行时错误,是因为.NET的XML Schema解析器在实现时,将maxLength的值绑定到了32位有符号整数(int类型,最大值为2147483647),而9999999999999999超出了这个范围,导致整数溢出。这是.NET实现的局限性,并非Schema本身违反规范。
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

