Validation 当';未签名';字段为零

Validation 当';未签名';字段为零,validation,schema,kml,zero,Validation,Schema,Kml,Zero,考虑这个简单的KML示例,它通过和元素合并了键入的自定义数据: 当“unsignedInt”字段为零时,KML不进行验证 0 无符号整数 在这种情况下,只定义了一个kml:SimpleData字段。它的名称是UNSIGNED_INT,分配的类型是xsd:unsignedInt 问题在于,此文档没有通过此著名的。验证程序返回的错误为: "kml:SchemaData contains a kml:SimpleData value that does not correspond to the

考虑这个简单的KML示例,它通过
元素合并了键入的自定义数据:


当“unsignedInt”字段为零时,KML不进行验证
0
无符号整数
在这种情况下,只定义了一个
kml:SimpleData
字段。它的名称是
UNSIGNED_INT
,分配的类型是
xsd:unsignedInt

问题在于,此文档没有通过此著名的。验证程序返回的错误为:

"kml:SchemaData contains a kml:SimpleData value that does not
correspond to the declared type."
验证器指示此错误的原因是,感兴趣的字段被分配了一个值
0

<SimpleData name="UNSIGNED_INT">0</SimpleData>
0
但是,当值更改为非零无符号整数时,文档将验证(如预期的那样):

42
我的问题是,为什么这个验证器将
0
标记为不受
xsd:unsignedInt
类型的约束

KML验证器对
0
xsd:unsignedInt
的处理与关于
xsd:unsignedInt
的说明相冲突:

unsignedInt具有由有限长度的十进制数字序列(#x30-#x39)组成的词汇表示。例如:0,1267896754,100000

最后,为了便于参考,这里列出了为与
kml:SimpleField一起使用而定义的所有数据类型:

  • xsd:string
  • xsd:int
  • xsd:unsignedInt
  • xsd:short
  • xsd:unsignedShort
  • xsd:float
  • xsd:double
  • xsd:boolean

(来自和。)

这似乎是kmlvalidator的错误,我会向他们报告。我使用Oxygen XML Editor测试了正常模式验证,并对其进行了验证。

+1建议我向KML验证器支持部门报告我的发现。我今天早些时候已经这样做了,并在我的报告中提到了我的问题。关于XML验证……这对检测KML模式问题没有多大帮助。例如,我的XML验证器允许这样做:
Hello,World。也就是说,我不排除KML验证器中存在“bug”的可能性。如果事实证明是这样的话,我会在这里报告。因此,值得注意的是,Google Earth也不关心数据类型,它专门设计用于实现KML和其他数据格式之间的互操作性和轻松转换。
<SimpleData name="UNSIGNED_INT">42</SimpleData>