Python-生成的 citygml 文件验证失败,尽管与示例文件相同

Python-generated citygml file failed validation, although identical to example file

这是两个 citygml 文件:

来自 citygml 网站的示例文件,手动对文件进行了一些更改 (https://drive.google.com/file/d/0Bx7bUIyq-ZEWY3FRb1hTbEU0SGc/view?usp=sharing)

一个由我的 python & lxml 代码生成,试图重新创建示例文件 (https://drive.google.com/file/d/0Bx7bUIyq-ZEWaU1tNU1Wc01XNW8/view?usp=sharing)

当我用记事本++打开这两个文件并逐行查看时,python 生成的文件与示例文件相同,但是当我尝试验证python-用 citygml xsd 模式生成的文件失败了,而示例文件通过了。为什么会这样,因为它们是 identical,我是不是做错了什么? (我是处理 xml 文件的新手)

这是我的 python 代码片段,使用 etree 构建的 xml 文件(因为我不能 post 两个以上的链接供您下载我的代码):

et = ElementTree(root) cityObjectMember = SubElement(root,'cityObjectMember') luse = SubElement(cityObjectMember, "{" + XMLNamespaces.luse+ "}" +'Landuse') luse.attrib["{" + XMLNamespaces.gml+ "}" +'id'] = 'ID_ground_texture'

提前致谢。

不要相信自己的眼睛,让电脑比对文件:

$ diff -u0 landusetest_validated.gml landusetest_cnntbevalidated.gml 
--- landusetest_validated.gml   2015-12-28 14:33:34.437635671 +0100
+++ landusetest_cnntbevalidated.gml     2015-12-28 14:33:34.437635671 +0100
@@ -4,2 +4,2 @@
-    <luse:LandUse gml:id="ID_ground_texture">
-      <gml:name>Simple textured patch</gml:name>
+    <luse:Landuse gml:id="ID_ground_texture">
+      <gml:name>simple textured patch</gml:name>
@@ -26 +26 @@
-    </luse:LandUse>
+    </luse:Landuse>

大小写很重要。 Landuse != LandUse.