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

Debugging 调试KML:未定义文档上schemaLocation的命名空间前缀xsi,debugging,kml,google-earth,Debugging,Kml,Google Earth,我想提交ArcGIS 10.1和Google EarthPro(GE)生成的KML文件,作为我在爱思唯尔的论文的补充数据 然而,评审员回信给我:“属性“xsi:schemaLocation”的前缀“xsi”中有一个错误 当我尝试通过添加.xml扩展名并将其放到Chrome(如下:)来对KML文件进行简单验证时,我遇到了一个错误: error on line 3 at column 217: Namespace prefix xsi for schemaLocation on Document i

我想提交ArcGIS 10.1和Google EarthPro(GE)生成的KML文件,作为我在爱思唯尔的论文的补充数据

然而,评审员回信给我:“属性“xsi:schemaLocation”的前缀“xsi”中有一个错误

当我尝试通过添加.xml扩展名并将其放到Chrome(如下:)来对KML文件进行简单验证时,我遇到了一个错误:

error on line 3 at column 217: Namespace prefix xsi for schemaLocation
on Document is not defined
我通过ArcGIS 10.1(shp到KML,工具:Layer到KML)生成了KML,它生成了zip.kmz文件。我在GoogleEarthPRO中打开了.kmz文件,并再次将我的位置保存为.kml文件。显然,.kml文件运行良好,我可以在GE中打开该文件并在PC之间共享

我还在此处尝试了KMLvalidator:错误:

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中运行良好,但它显然包含了schemaLocation的xsi中的错误? 最重要的是,最简单的修复方法是什么?

我不熟悉编写KML代码,我只是GE的初学者和用户。请问,如何轻松修复我的方案定位

要下载的文件:


谢谢大家!

Google Earth通常会忽略它不知道的名称空间和XML元素,因此无效XML文件的KML文件可能仍然可以在Google Earth中查看。要在Google Earth中启用错误检查,请打开Tools/Options/General并选中“显示所有错误提示”选项,然后打开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>

..

谢谢@JasonM1。请问,我应该在代码中的何处插入xmlns:xsi=“”>?.kml缩进和空格是否特定?有没有一种方法可以在没有我手动调整编码的情况下从GE保存正确的.kml文件?GE不会在您的kml中添加/修复名称空间。未绑定的名称空间仍然存在。将需要在文本编辑器中打开并手动添加,然后在GE外部验证。请注意,我应该插入代码的哪一部分,以及在代码中的什么位置?不幸的是,我没有与荷航合作的经验。。请问,我是否只需要在代码中添加xmlns:xsi=“”?请将其插入附件中的正确位置好吗?您好@JasonM1,我已经在我的.kml中添加了代码的“xmlns:xsi”部分。当我添加.xml扩展名并将其放到Chrome上时,我收到一条消息:“此xml文件似乎没有任何与之关联的样式信息。文档树如下所示。”这是否也被视为错误?请尝试从原始KML文件中删除属性
xsi:schemaLocation=“…”
。这不是必需的。