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

may*_*cca 3 debugging kml google-earth

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

\n\n

然而,审阅者给我回信:“属性“xsi:schemaLocation\xe2\x80\x9d”的前缀“xsi”中有一个错误

\n\n

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

\n\n
error on line 3 at column 217: Namespace prefix xsi for schemaLocation\non Document is not defined\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

在此输入图像描述

\n\n

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

\n\n
File upload request was rejected. (/data/tomcat/base-kml-validator/temp/upload_2a88fa18_1591832a38f__7fff_00001631.tmp (No such file or directory)).\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

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

\n\n

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

\n\n

谢谢 !

\n

Jas*_*nM1 7

Google 地球通常会忽略它不知道的命名空间和 XML 元素,因此作为无效 XML 文件的 KML 文件可能仍可在 Google 地球中查看。要在 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>
Run Code Online (Sandbox Code Playgroud)

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

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

<kml xmlns="http://www.opengis.net/kml/2.2">
..
</kml>
Run Code Online (Sandbox Code Playgroud)

  • 尝试从原始 KML 文件中删除属性 `xsi:schemaLocation="..."`。这不是必需的。 (2认同)