原文发布时间:2014-02-20
翻译:毛毛虫
模板和数据参见:https://knowledge.safe.com/articles/1360/inspire-geographic-names-demo.html
本文介绍的是一个从联合国地名(SHP数据)中使用XML模板生成欧洲空间信息基础设施(INSPIRE)符合地名GML 3.2.1。使用带INSPIRE模式的FME GML读模块重新读取GML,验证转换是成功的。这说明FME有从多个数据源中提取关联数据、转换模式和符合地名GML加载到INSPIRE的能力,这些都体现在这个工作空间上。
模板的大概流程是:
1) 读取源数据提取符合要求的数据并处理属性
2)生成符合要求的GML
在这里,首先进行了一系列属性处理,主要是获取要素id,x、y坐标等GML信息
之后XMLTemplater处理要写入到GML的NamedPlace要素,生成GML文件内容
为了能更好的显示XML文件,增加可读性,使用XMLFormatter规范化XML文件
最后用XMLValidator检查语法和结构的正确,模式结构符合GeographicalNames.xsd中的定义。转换器的设置如下:
生成的GML在Viewer中打开效果和在模板中设置的相关属性,如下:
从这个模板中可以学习到:
1) 格式化XML文件(XMLFormatter转换器)
在输出前能格式化XML更好;可以检查下在级联处理中的干扰空格;删除多余的命名空间说明,也就是不必要的xsi:schemaLocations
2) 验证XML文件:(XMLValidator转换器)
检查XML的有效性,有两个设置,只检查语法与检查语法和应用模式(需要xsd文件)
3) XMLTemplater和XMLSampleGenerator
XMLTemplater转换器其实包含了XMLSampleGenerator转换器。
这个转换器完成了XML的主要内容。基于用户选择的节点浏览XSD文件创建实例XML模板。
当只有结构xsd没有源XML数据时,可以使用这个转换器作为XML要素或数据集的模板。