写GML到一个复杂的应用模式
原文发布时间: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到一个复杂的应用模式相关推荐
- thonny python ide_学习用 Thonny 写代码:一个面向初学者的Python IDE
原标题:学习用 Thonny 写代码:一个面向初学者的Python IDE 编译自: https://fedoramagazine.org/learn-code-thonny-python-ide-b ...
- 《自己动手写操作系统》读书笔记——初识保护模式
<自己动手写操作系统>读书笔记--初识保护模式 http://www.cnblogs.com/pang123hui/archive/2010/11/27/2309930.html 书本第三 ...
- python写篮球游戏_程序员们把“蔡徐坤打篮球”写成了一个游戏
原标题:程序员们把"蔡徐坤打篮球"写成了一个游戏 github一直是一个人才辈出的地方 从"杨超越杯编程大赛" 到"清华课程笔记" 无数令人 ...
- 挑战坚持每天写算法题一个月
目录 前言 2021-10-8 题目 合并两个有序数组 解题思路 代码 其他思路 2021-10-9 题目 数组中的重复数字 二维数组中的查找 解题思路 数组中的重复数字 二维数组中的查找 代码 总结 ...
- 从一个简单的AT模式事务例子入手
傅青阳眯了一下眼睛,心想这个手下飘了,不给点颜色看看是不行了:talk is cheap show me the code.从AT模式的源码来开始讲整个流程. 元始背转身,负手而立,白衣飘飘,一副胸有 ...
- 每天一个设计模式之组合模式
作者按:<每天一个设计模式>旨在初步领会设计模式的精髓,目前采用javascript和python两种语言实现.诚然,每种设计模式都有多种实现方式,但此小册只记录最直截了当的实现方式 :) ...
- 【重难点】【JUC 03】怎么实现一个线程安全的队列、手写模拟实现一个阻塞队列
[重难点][JUC 03]怎么实现一个线程安全的队列.手写模拟实现一个阻塞队列 文章目录 [重难点][JUC 03]怎么实现一个线程安全的队列.手写模拟实现一个阻塞队列 一.怎么实现一个线程安全的队列 ...
- 写公众号一个月关注量破900,聊聊我的感受
写公众号一个月关注量破900,聊聊我的感受 前言 写公众号一个多月了,于2019年12月7日零点关注量定格在900人. 最近有好多公众号号主好奇,在微信上问我是怎么做到的,他们说,他们有的做公众号几年 ...
- Laravel php 框架的使用写出第一个hello world,Laravel 入门配置
Laravel 第一次使用,如何写出第一个hello world Laravel php 框架第一次接触,遇到一些困难,在这里记录一下,有需要的童鞋可以看一下 从github上下载下来最新版,地址如下 ...
最新文章
- .net调试插件sosex的mk命令显示调用堆栈
- 自律到极致-人生才精致:第6期
- php的__FILE__常量和dirname()
- python xpath语法-Python爬虫之XPath语法和lxml库的用法
- 初学者python用哪个版本好-python用哪个版本好
- java web: Servlet JSP MVC
- 【PAT乙级】1085 PAT单位排行 (25 分)
- mybatis中使用mysql的模糊查询字符串拼接(like)
- #define const typedef
- coverity代码检测工具介绍_兴业证券:静态代码检测最佳实践
- Linux - Redis介绍以及安装 (简易版本)
- css3中的渐变效果及花斑动画的实现
- 用域代码任何带圈字符都能做出来
- 时间序列数据处理2——时间序列聚类算法
- networkx节点显示、节点中心性度量
- 思科交换机与路由器常用基础配置
- NDK 入门与进阶—第一个NDK程序(一)
- Python TODO说明
- 【C语言初阶】求最小公倍数的三种方法
- 使用JOL工具计算Java对象的大小
热门文章
- [PHP] 解决TP5 出现错误 continue targeting switch is equivalent to break. Did you mean to use continue...
- JMeter 常见问题总结
- 2020年第十五届全国大学生智能汽车竞赛技术报告
- 读懂微信:从1.0到7.0版本,一个主流IM社交工具的进化史...
- msf获取靶机shell进行远控
- codecombat计算机科学入门五(python)
- P3654 First Step (ファーストステップ)——暴力枚举
- 网易企业邮箱:给国外公司发邮件用什么邮箱?
- 用Python爬取了2900多款防脱洗发水数据并进行可视化分析,助你缓解脱发困扰
- Request和Response的使用以及html连接java同步到数据的实例