原文发布时间: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要素或数据集的模板。

写GML到一个复杂的应用模式相关推荐

  1. thonny python ide_学习用 Thonny 写代码:一个面向初学者的Python IDE

    原标题:学习用 Thonny 写代码:一个面向初学者的Python IDE 编译自: https://fedoramagazine.org/learn-code-thonny-python-ide-b ...

  2. 《自己动手写操作系统》读书笔记——初识保护模式

    <自己动手写操作系统>读书笔记--初识保护模式 http://www.cnblogs.com/pang123hui/archive/2010/11/27/2309930.html 书本第三 ...

  3. python写篮球游戏_程序员们把“蔡徐坤打篮球”写成了一个游戏

    原标题:程序员们把"蔡徐坤打篮球"写成了一个游戏 github一直是一个人才辈出的地方 从"杨超越杯编程大赛" 到"清华课程笔记" 无数令人 ...

  4. 挑战坚持每天写算法题一个月

    目录 前言 2021-10-8 题目 合并两个有序数组 解题思路 代码 其他思路 2021-10-9 题目 数组中的重复数字 二维数组中的查找 解题思路 数组中的重复数字 二维数组中的查找 代码 总结 ...

  5. 从一个简单的AT模式事务例子入手

    傅青阳眯了一下眼睛,心想这个手下飘了,不给点颜色看看是不行了:talk is cheap show me the code.从AT模式的源码来开始讲整个流程. 元始背转身,负手而立,白衣飘飘,一副胸有 ...

  6. 每天一个设计模式之组合模式

    作者按:<每天一个设计模式>旨在初步领会设计模式的精髓,目前采用javascript和python两种语言实现.诚然,每种设计模式都有多种实现方式,但此小册只记录最直截了当的实现方式 :) ...

  7. 【重难点】【JUC 03】怎么实现一个线程安全的队列、手写模拟实现一个阻塞队列

    [重难点][JUC 03]怎么实现一个线程安全的队列.手写模拟实现一个阻塞队列 文章目录 [重难点][JUC 03]怎么实现一个线程安全的队列.手写模拟实现一个阻塞队列 一.怎么实现一个线程安全的队列 ...

  8. 写公众号一个月关注量破900,聊聊我的感受

    写公众号一个月关注量破900,聊聊我的感受 前言 写公众号一个多月了,于2019年12月7日零点关注量定格在900人. 最近有好多公众号号主好奇,在微信上问我是怎么做到的,他们说,他们有的做公众号几年 ...

  9. Laravel php 框架的使用写出第一个hello world,Laravel 入门配置

    Laravel 第一次使用,如何写出第一个hello world Laravel php 框架第一次接触,遇到一些困难,在这里记录一下,有需要的童鞋可以看一下 从github上下载下来最新版,地址如下 ...

最新文章

  1. .net调试插件sosex的mk命令显示调用堆栈
  2. 自律到极致-人生才精致:第6期
  3. php的__FILE__常量和dirname()
  4. python xpath语法-Python爬虫之XPath语法和lxml库的用法
  5. 初学者python用哪个版本好-python用哪个版本好
  6. java web: Servlet JSP MVC
  7. 【PAT乙级】1085 PAT单位排行 (25 分)
  8. mybatis中使用mysql的模糊查询字符串拼接(like)
  9. #define const typedef
  10. coverity代码检测工具介绍_兴业证券:静态代码检测最佳实践
  11. Linux - Redis介绍以及安装 (简易版本)
  12. css3中的渐变效果及花斑动画的实现
  13. 用域代码任何带圈字符都能做出来
  14. 时间序列数据处理2——时间序列聚类算法
  15. networkx节点显示、节点中心性度量
  16. 思科交换机与路由器常用基础配置
  17. NDK 入门与进阶—第一个NDK程序(一)
  18. Python TODO说明
  19. 【C语言初阶】求最小公倍数的三种方法
  20. 使用JOL工具计算Java对象的大小

热门文章

  1. [PHP] 解决TP5 出现错误 continue targeting switch is equivalent to break. Did you mean to use continue...
  2. JMeter 常见问题总结
  3. 2020年第十五届全国大学生智能汽车竞赛技术报告
  4. 读懂微信:从1.0到7.0版本,一个主流IM社交工具的进化史...
  5. msf获取靶机shell进行远控
  6. codecombat计算机科学入门五(python)
  7. P3654 First Step (ファーストステップ)——暴力枚举
  8. 网易企业邮箱:给国外公司发邮件用什么邮箱?
  9. 用Python爬取了2900多款防脱洗发水数据并进行可视化分析,助你缓解脱发困扰
  10. Request和Response的使用以及html连接java同步到数据的实例