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

Debug KML: Namespace prefix xsi for schemaLocation on Document is not defined

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

然而,审稿人回信给我:"here is an error in the prefix "xsi" for attribute "xsi:schemaLocation"

当我尝试通过添加 .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 到 KML,工具:图层到 KML)生成了 KML,它生成了压缩的 .kmz 文件。我在 GoogleEarthPRO 中打开 .kmz 文件并再次将我的位置保存为 .kml 文件。显然,.kml 文件运行良好,因为我可以在 GE 中打开该文件并在 PC 之间共享它。

我也在这里尝试了 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

谢谢!

Google Earth 通常会忽略它不知道的命名空间和 XML 元素,因此无效的 XML 文件的 KML 文件可能仍可在 Google 地球。要在 Google 地球中启用错误检查,请打开 Tools/Options/General 并选中 "Show prompts for all errors" 选项,然后打开您的 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 Earth 不会修复 KML 中无效的命名空间引用,因此必须在文本编辑器中修复这些引用,并在 Google Earth 外部进行验证。

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

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