斯潘8
斯潘4
这篇文章是在我们XML读取器的功能路径选项.在你深入研究xfmaps之前,值得注意的是,在大多数情况下,您不再需要创建xfmap来读取XML。在这种情况下,您最好只使用配置为type=“feature path”且启用扁平化的XML阅读器,而feature path=“case”。结果大致相同,您不必创建任何脚本,如xfmap。使用xfmap的唯一原因是,如果您希望XML阅读器的功能路径高级设置(例如复杂的几何处理或动态模式)。仍然,我们将把本文暂时放在这里,以供那些希望使用另一个示例帮助他们学习Xfmap的人参考。
L -解译领结 线性环(0 0),100 100,100 0,0 100,0 0)假 … L型领结 列线(0 0),100 100,100 0,0 100,0 0)真
天真地,最初的出发点是看看我们的FME中的XML(通用)阅读器是否可以接受这个问题,没有任何调整或配置。所以我们启动了Workbench并尝试添加一个XML(通用)的源数据集作为其格式,未指定XFMAP或其他设置。
不去。
所以我们必须制作一个XFMAP。
从来没有这样做过,而且由于它亚搏在线圣诞节前夜,我们卷起袖子,打开了文件.在XML阅读器部分有一个很大的小节,其中有很多关于xfmap的主题,其中有一些例子。(进入文档后,您必须单击“显示”按钮才能查看子部分并浏览它们。)但没有一个特别简单的示例可以完成或查看。因此,如果(剧透警告:什么时候)成功了,写这篇文章的想法就诞生了。
为了进一步推进比赛,访问fme_home/xfmap目录是正确的。没有什么比一个好的例子更能让你埋头苦干了。在这个目录中有很多非常复杂的例子。记住gpx是一种相对简单的格式,那个xfmap是先看的。我们在这里需要的东西也更加复杂,但是有了这个和医生,可以取得一些进展。
然后我们又去了工作台,尝试添加XML generic的源数据集,这一次,我们的设置框指向了刚刚创建的XFMAP文件(并保存为jts_tests.xmp)。
不去。
不知怎么找不到xfmap.dtd,所以与其想清楚,我们决定把xfmap和它的兄弟(以及xfmap.dtd)放在fme_home/xfmap目录中。然后我们再次尝试添加源数据集,指向新搬迁的XFMAP。
答对了。
属性类型来自fme_home/metafile/xml_common_attr_map.fm允许的词汇表。XML缓冲区只是指任意长的一大块东西,在本例中是文本。
所以,再一次,我们回到工作台添加源数据集,指向新修订的XFMAP。
现在我们在谈……
这次,我们的计划恰到好处。因此,我们在新读取的源特性类型定义之后立即插入一个记录器,然后点击跑步按钮。
哎呀。没有正在读取的数据。为什么不呢?好,我们还没有指定如何将数据从case xml对象移动到fme特性中。
这就是XFMAP的精髓所在。
我们必须建立我们的功能图。现在,这是一个非常简单的情况,因为我们实际上只有一种特性我们将要阅读(在许多情况下,生活不会那么简单)。感恩我们深入研究,发现在xfmap中有一些您可以指定的东西可以满足需要。
(注意我们是如何添加一条评论的,就像那些很酷的XML家伙所做的那样:)
我们保存它并再次运行工作区,现在,我们将发布和记录功能。真的!
L -解译领结 线性环(0 0),100 100,100 0,0 100,0 0)假
注意 测试/运算在 萃取萃取--这抓住了 假出来。
这是圣诞节前夜,最后一步是以自定义格式“包装所有这些内容”,以使其最方便使用。这样做的好处是将xfmap与格式打包在一起,这样,最终用户在尝试读取格式时就不必选择xfmap。
做这件事的细节留给任何一位读者作为练习。
?2019安全亚搏在线软件公司|合法的