文档内的KML文档

时间:2014-05-11 16:18:49

标签: kml

我最近遇到了一个KML文件,<Document>内部有<Document>(实际上是根文档中文件夹内的文档)。由于Document是一个功能,这似乎是有效的,但这在语义上是否可以接受?我在我的应用程序中解析KML,我应该接受它还是拒绝它?

1 个答案:

答案 0 :(得分:1)

KML中的Document和Folder元素都是容器类型,文档中的Document,文档内的Document,文档内的文件夹等都是完全有效的。几乎在所有情况下都可以使用Folder和Document互换。

从概念上讲,“文件夹”中包含“文档”是有意义的,但KML文件夹或文档没有这样的限制。 KML 2.2规范中文档和文件夹之间唯一的语义差异是只有Document可以将Schema元素或Shared Styles作为子元素,而Folder不能。除此之外,文件夹和文档是相同的。

以下是KML参考中“Folder”和“Document”元素的语法摘要说明:

<Folder id="ID">
  <!-- inherited from Feature element -->
  <name>...</name>                      <!-- string -->
  ...
  <ExtendedData>...</ExtendedData>
  <!-- specific to Folder -->
  <!-- 0 or more Feature elements -->
</Folder>

<Document id="ID">
  <!-- inherited from Feature element -->
  <name>...</name>                      <!-- string -->
  ...
  <ExtendedData>...</ExtendedData>
  <!-- specific to Document -->
  <!-- 0 or more Schema elements -->
  <!-- 0 or more Feature elements -->
</Document>