Validation 当';未签名';字段为零
考虑这个简单的KML示例,它通过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
和
元素合并了键入的自定义数据:
当“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>