这是两个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)
当我用notepad ++打开2个文件并逐行浏览时,python生成的文件与示例文件相同,但是当我尝试使用citygml xsd验证python生成的文件时模式失败,而示例文件传递。为什么会这样,因为他们是身份 l,我做错了什么? (我是处理xml文件的新手)
这是我的python代码的片段,使用etree构建的xml文件(因为我无法发布两个以上的链接供您下载我的代码):
et = ElementTree(root) cityObjectMember = SubElement(root,'cityObjectMember') luse = SubElement(cityObjectMember, "{" + XMLNamespaces.luse+ "}" +'Landuse') luse.attrib["{" + XMLNamespaces.gml+ "}" +'id'] = 'ID_ground_texture'
提前致谢。
答案 0 :(得分:0)
不要相信你的眼睛,让电脑比较文件:
$ 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
。