西班牙
斯潘4
快速回顾fme xml术语可能会有所帮助,因为其中很多是新的:
xquery是一种脚本语言,用于读取和查询xml以构建属性和记录(与xml读取相关)。xfmap提供了另一种可用于执行相同功能的方法。
XMLTemplater是一个合并工具,它允许您将FME属性合并到一个XML模板中,以构建文本文件写入器(与XML写入相关)编写的XML文本。
FME 2010的例子使用for循环来处理将FME特性列表合并到XML模板中的问题。这是现在在FME 2011更容易,因为我们增加了一个列表功能。所以在2011年,你现在有四个可用的templater函数:
get-list-属性函数将获取一个FME列表,并将所有列表值连接到函数所在的位置。这减少了模板中使用for循环代码的需要。
从简单的事情开始,然后在此基础上进行构建总是好的。为此,我将使用一个基于Xfmaps基本示例的示例数据集(如果您曾经使用Xfmaps阅读XML,就会熟悉它)。请注意,此工作区需要FME 2011或更高版本才能运行(FME:get-xml-list-attribute()、XMLFormatter、XMLValidator是FME 2011中的新特性)。我强烈建议在使用XML时使用FME 2011,因为最近有许多增强将对您有所帮助。
该工作区读取一个示例CSV文件并生成一个具有特定模式的XML文件。它使用一个XMLTemplater构建特性xml,使用另一个XMLTemplater将特性组装到数据集xml中。这是因为每个层次结构或嵌套的不同级别都需要另一个XMLTemplate—特别是在父级和子级之间存在一对多关系的情况下。XML模板嵌入在XMLTemplaters中,但是也可以在外部维护它们。
要了解它是如何工作的,查看源CSV、模板和它们生成的输出XML是很有帮助的。
id、_xmax _xmin、_ymax _ymin, _zmax, _zmin,名字,城市,最终,101年开始,-122.9,-123.1,49.25,49.15,0,0,约翰,温哥华,12-11-09,102年11-22-99,-122.5,-122.8,49.12,49岁,0,0,6月,萨里,9-15-10,02-25-05
约翰 温哥华 11-22-99 12-11-09 -123.1,49.25 - -122.9,49.15
{fme: get-attribute(“名字”)} {fme: get-attribute(“城市”)} {fme: get-attribute(“开始”)} {fme: get-attribute("结束")} {fme: get-attribute (_xmin)}, {fme: get-attribute (_ymax)} {fme: get-attribute (_xmax)}, {fme: get-attribute (_ymin)}
注意,我们用FME函数替换了字段值,FME函数在将值输入XMLTemplater时从每个特性动态插入值。还请注意,围绕这些函数的结构可以非常复杂。例如,我不需要使用额外的模板来构建box几何体,因为每个特性只有一个,所以我可以将整个几何体结构连同属性一起插入到feature模板中。
{fme: get-xml-list-attribute (“_list {} feature”)}
注意,XML文档的页眉/页脚可以像您希望的那样复杂。通常,您还会包括编码信息、名称空间声明,以及一些编写文档。为了简单起见,我没有在这里包含它。
数据集模板|——父特性类型|的XML模板——子特性类型的XML模板
构建几何图形也是如此。您可能需要使用一个单独的模板来构建XML几何图形,然后使用fme:get-xml-attribute命令将其插入到特性模板中。
-您可以使用GeometryExtractor转换器来提取您的特征几何图形,如XML、GML 3.1.1、GML 3.2.1、GeoJason等,以便更容易地将其插入到您的特征模板中(其中一些提取类型在2011年是新的)。
?2019安全亚搏在线软件公司|合法的