调试KML:未定义Document上schemaLocation的命名空间前缀xsi

时间:2017-01-30 09:19:01

标签: debugging kml google-earth

我想将ArcGIS 10.1和GoogleEarthPRO(GE)生成的KML文件作为我在Elsevier的论文的补充数据提交。

然而,审稿人给我写了回信:“这里是属性”xsi:schemaLocation“的前缀”xsi“中的错误。

当我尝试通过添加.xml扩展名并删除到Chrome(以下:http://kml4earth.appspot.com/kmlBestPractice.html)来简单验证KML文件时,我遇到了错误:

error on line 3 at column 217: Namespace prefix xsi for schemaLocation
on Document is not defined

我通过ArcGIS 10.1(shp to KML,工具:Layer To KML)生成了KML,它生成了压缩的.kmz文件。我在GoogleEarthPRO中打开了.kmz文件,并再次将我的位置保存为.kml文件。实际上,.kml文件运行良好,因为我可以在GE中打开文件并在PC之间共享它。

enter image description here

我还在这里尝试了KMLvalidator:http://www.kmlvalidator.org/validate.htm但错误:

File upload request was rejected. (/data/tomcat/base-kml-validator/temp/upload_2a88fa18_1591832a38f__7fff_00001631.tmp (No such file or directory)).

我不明白为什么我的.kml文件似乎在多台PC上的GoogleEarthPRO中正常工作,但它显然包含xsi for schemaLocation中的错误? 最重要的是,最简单的解决方法是什么?

我不熟悉KML代码的脚本,我只是GE的初学者和用户。请问,如何轻松修复我的schemaLocation?

要下载的文件:https://www.dropbox.com/s/azmc6m1ksvtau7o/high_tatra_mts.kml?dl=0

谢谢!

1 个答案:

答案 0 :(得分:3)

Google地球通常会忽略它不知道的名称空间和XML元素,因此可能仍然可以在Google地球中查看无效XML文件的KML文件。要在Google地球中启用错误检查,请打开工具/选项/常规,然后选中“显示所有错误的提示”选项,然后打开您的KML文件。

如果KML文件中存在命名空间错误,则需要在KML文件中声明它 - 通常在根元素中。

以下是有效KML文件的结构:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
...
</kml>

请注意,Google地球不会修复KML中无效的命名空间引用,因此必须在文本编辑器中对其进行修复,并在Google地球外部进行验证。

在您的特定示例中,xsi声明和 schemaLocation 属性是不必要的,因此您的KML可以简化为:

<kml xmlns="http://www.opengis.net/kml/2.2">
..
</kml>