“GML翻译需要帮助”的评论和回答 https://knowledge.亚搏在线safe.com/questions/85650/need-help-with-gml-translation.html “GML翻译需要帮助”问题的最新评论和答案 Deanatsafe对Deanat亚搏在线safe评论的评论 https://knowledge.亚搏在线safe.com/comments/85793/view.html网站

谢谢你的注意。只是重新加载附件并测试它-现在看起来很好。

结婚,2019年1月23日18:05:55格林尼治标准时间 DeaNAT亚搏在线SSAFE
Drejkzet对Drejkzet答案的评论 https://knowledge.亚搏在线safe.com/comments/85765/view.html网站

你好@ DeanA亚搏在线tSafe,感谢您的全面回答!

问题1:如何公开、保留或修改FeatureCollection属性。

这是一个更大的问题。我试过你的建议,它不起作用。我花了好几个小时试图弄清楚我的工作区出了什么问题。我遇到的问题归结为这个问题:Postgis动态编写器强制使用小写属性名

我已经报告了这个问题,这是众所周知的,我只希望能修好,因为它严重阻碍了我动态地做这件事的计划,现在我要检查每个XSD更新,如果有任何不是小写的新属性

正如您在我提供的XSD片段中看到的那样,所有FeatureCollection属性都是snakeCase:

        
        
        
        
        
        

但是,当动态地编写它们时,会执行数据库操作,他们被转换成小写。因此,当使用XSD映射我的数据时,这些属性不匹配,稍后验证失败。

一旦我重命名了数据库中的那些列(这仍然是非常糟糕的解决方案)。一切正常。

问题2:如何抑制输出中的空元素

即使我没有暴露任何属性,设置为映射所有属性的nullattributemapper空->丢失了。


问题3:如何设置默认命名空间以从元素名称中删除命名空间前缀

重写XSD和使用命名空间声明也解决了我的问题,很不错的!


现在希望动态作家问题得到解决。:(

结婚,2019年1月23日12:17:08格林尼治标准时间 德雷克泽特
Nielsgerrits对Nielsgerrits答案的评论 https://knowledge.亚搏在线safe.com/comments/85755/view.html网站

@ DeanA亚搏在线tSafe附件拉链丢失(403),请重新上传拉链好吗?谢谢。

结婚,2019年1月23日05:47:12格林尼治标准时间 尼尔斯格利茨
由死亡保险箱回答亚搏在线 https://knowledge.亚搏在线safe.com/answers/85753/view.html网站

嗨,Radek,

我已经设法整理出一个简单的例子,说明了解决上述3个挑战的方法-请参阅:地名gmlwriter2018.zip.对于特定于数据集和模式的问题,仍然欢迎您通过支持系统进行后续操作。

问题1:如何公开、保留或修改FeatureCollection属性。

默认情况下,FME的GML编写器倾向于隐藏FeatureCollection容器对象。然而,下面的方法将允许您根据需要公开、保存或修改它。

第一,确保将GML或在本例中,将Inspire Reader参数gml:FeatureCollection设置为GML。

下一步,您将需要在读卡器和编写器上导入FeatureCollection功能类型。您可能需要设置从架构而不是数据集导入FeatureType。一旦你有了FeatureCollection功能类型,然后在编写器上,您需要设置这些GML编写器参数:

特征集:功能集合

功能集合ID在.HR。0。

功能集合ns-urihttp://www.opengis.net/gml/3.2

在我的例子中,我使用的是geographicalNames.xsd应用程序模式,它没有任何附加的featureCollection属性,所以我启用了映射预定义属性如果为“是”,则可以将gml_描述字段的值添加到FeatureCollection对象。请注意,每个namedplace功能的gml_parent_id是如何设置为at.hr.it.0的。

问题2:如何抑制输出中的空元素

目前,GML编写器没有用于抑制空输出的设置。FME支持nillable,因此,如果一个属性是nillable,那么fme将为空值设置xsi:nil=true。

禁止空写入 在这种情况下,有两种可能的解决方法。可以使用gmlFeatureComposer生成gml,然后通过xmlFormatter传递它,并将其设置为“移除空元素”为“是”。然后,您需要使用textfilewriter编写GML。

我的首选方法是坚持GML作者,并使用NullAttributeMapper检测空属性并将其映射到“Missing”。这可以有效地从FME功能模式中删除字段。在附加的示例中,我使用nullattributemapper扫描所有属性,并将任何空属性或空属性映射到Missing。这将获取gml_name_2 list元素并有效地将其从列表中删除。

问题3:如何设置默认命名空间以从元素名称中删除命名空间前缀

在你的情况下,你有 你想让这个看起来像 .要做到这一点,您需要使eczr成为默认的名称空间。

在我的情况下,我有 .如果要删除gn名称空间前缀,我需要使与gn关联的名称空间成为默认名称空间。查看输出的名称空间头,我发现:

xmlns:gn=“urn:x-inspire:规格:gmlas:地理名称:3.0”

因此,要删除此命名空间,我们需要设置:

重写XSD并使用命名空间声明到:

xmlns=“urn:x-inspire:规格:gmlas:地理名称:3.0”

此后,输出将

希望这能给你一些尝试。因为无法共享应用程序架构,我认为有一个基本的GML写作范例可以发挥作用。上面的示例基于Inspire GeoNames文章。如果遇到问题,请随意编辑此工作区以进行测试,并发送修改后的版本。或者设法重现问题。

如果您有特定于数据的问题,请通过支持系统随时跟进。

院长

结婚,2019年1月23日02:50:15格林尼治标准时间 DeaNAT亚搏在线SSAFE
由死亡保险箱回答亚搏在线 https://knowledge.亚搏在线safe.com/answers/85746/view.html网站

嗨,Radek,

谢谢你的问题。考虑到你问题的深层次本质,我们最好通过我们的支持系统跟进。我创建了一个新的支持案例,因此您应该很快收到一封电子邮件。

与此同时,因为你刚接触GML,我会在这里发布一些支持资源的链接,以防您还没有看到它们。虽然我们还没有通用的GML教程,我们为AIXM和Inspire提供了一些相关的教程。因为这些读写器是基于GML读写器的,基本原则是一样的。因此,这些示例在学习如何配置GML编写器方面应该很有帮助。例如,aixm文章展示了如何写入数据集容器(在本例中为aixmbasicmessage),以及如何使用父子GML ID嵌套特性。

https://knowledge.亚搏在线safe.com/articles/1312/aixm-xml-and-gml-formats-eu-airports-demo.html网站

https://knowledge.亚搏在线safe.com/articles/573/inspire-gml-reading-writing-and-validation-basics.html

https://docs.亚搏在线safe.com/fme/html/fme_desktop_documentation/fme_readerswriters/gml/gml_writer.htm(https://docs.safe.com/fme/html/fme_桌面_文档/fme_readerswriters/gml/gm

院长

星期二,2019年1月22日23:26:07格林尼治标准时间 DeaNAT亚搏在线SSAFE