最近,我遇到了一个KML文件,它在一个<Document>中有一个<Document> (实际上是根文档中的一个文件夹中的一个文档)。因为文档是一个特性,这似乎是有效的,但这在语义上是可以接受的吗?我在我的应用程序中解析KML,我应该接受它还是拒绝它?
发布于 2014-05-11 17:24:52
KML中的文档和文件夹元素都是容器类型,在文档中拥有文档、文件夹中的文档、文档中的文件夹等都是完全有效的。几乎在所有情况下,文件夹和文档都可以互换使用。
从概念上讲,“文件夹”中包含“文档”是有意义的,但是对KML文件夹或文档没有这样的限制。在KML2.2规范中,文档和文件夹之间唯一的语义区别是,只有文档可以作为子元素具有Schema元素或共享样式,而文件夹不能。除此之外,文件夹和文档是相同的。
以下是KML引用中的"文件夹“和"文档”元素的语法摘要描述:
<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>https://stackoverflow.com/questions/23594997
复制相似问题