【发布时间】:2021-06-01 08:54:19
【问题描述】:
我决定验证我的 KML 文件,但它返回说在命名空间区域找不到“http://www.google.com/kml/ext/2.2”。当我在浏览器中输入这个 url 时,我得到一个 not found。这个 url 被广泛发布为获取 gx 扩展的地方。为什么我看不到?
【问题讨论】:
标签: kml google-earth
我决定验证我的 KML 文件,但它返回说在命名空间区域找不到“http://www.google.com/kml/ext/2.2”。当我在浏览器中输入这个 url 时,我得到一个 not found。这个 url 被广泛发布为获取 gx 扩展的地方。为什么我看不到?
【问题讨论】:
标签: kml google-earth
XML 中的namespace 是一个 URI 引用。统一资源标识符 (URI) 是抽象或物理资源的标识符,而统一资源定位符 (URL) 是物理资源的位置。
Google KML reference 使用 xmlns:gx="http://www.google.com/kml/ext/2.2" 命名空间 URI 定义 Google Earth KML extensions。
URI http://www.google.com/kml/ext/2.2 不是可以解析为网页的物理 URL,但 gx 扩展的 XML 架构可以在此 URL 中找到:
https://developers.google.com/kml/schema/kml22gx.xsd
可以使用 xsi:schemaLocation 属性指定架构的物理位置,如下面的 KML 片段所示。
<?xml version="1.0" encoding="utf-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"
xmlns:gx="http://www.google.com/kml/ext/2.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/kml/2.2 http://schemas.opengis.net/kml/2.2.0/ogckml22.xsd
http://www.google.com/kml/ext/2.2 http://developers.google.com/kml/schema/kml22gx.xsd">
...
</kml>
【讨论】: