XQuery函数

特性数据功能

功能处理功能

几何数据功能

几何处理功能

特性数据功能

FME提供了几个可以在XQuery脚本中使用的函数。这些函数允许XQuery脚本和模板访问和操作特性属性值。所有特征函数的前缀都是fme名称空间前缀。

功能处理功能

使用XMLTemplaterJSONTemplater,该模板可以包含处理子模板的结果。有两个函数允许处理子模板。

几何数据功能

FME提供了许多使用XQuery访问几何数据的函数。所有几何数据函数都以“geom”命名空间前缀为前缀。

几何处理功能

在评估模板时,XQuery函数现在可以访问几何图形。默认情况下,被访问的几何图形只是与正在处理的特性相关联的几何图形。然而,使用本节中描述的函数,正在处理的几何图形可能会改变。例如,如果一个特性的几何图形是一个聚合体,则几何学:process-parts函数可用于对聚合的每个部分上的子模板进行顺序求值。在评估这些子模板时,上面列出的几何数据函数将访问聚合的各个部分,而不是整个聚合。

请注意,如果在模板的每次计算中访问的是不同的几何图形,则可以递归地调用模板。这允许对嵌套聚合几何图形进行任意深度的处理,只需使用几何学:process-parts函数。

每一个函数,除了几何学:工艺要点函数,接受一个参数,该参数定义为不同的几何类型运行哪个模板。这个映射是使用一个名为“conf”的XML元素完成的,它包含不同几何类型的属性。属性值包含要为该几何类型运行的模板的名称。如果几何图形在conf元素中没有type属性,或者该属性包含空字符串,则不计算任何模板。

例子:

如果将以下conf元素传递给一个函数,该函数将在所有线形图形上计算道路模板,在所有点图形上计算POI模板,在所有多边形图形上计算包裹模板。

下列值是conf元素的有效几何类型名称:

骨料 brepsolid
复合固体 复合表面 csgsolid
甜甜圈 椭圆 挤压
面对 线 啮合
多领域 多曲线 多点
多实 多表面 多文本
空值 路径
点云 多边形 光栅
长方形脸 文本 三角形扇
三角形条

除了上面的类型名之外,conf元素中还可以使用许多属性来命名要为一组相关几何类型运行的模板。

CONF属性名称 影响
所有 已命名的模板适用于任何类型的几何形状进行评估。
区域 命名模板将多边形,甜甜圈和椭圆的几何形状进行评估。
曲线 已命名的模板会为直线,圆弧和路径的几何形状进行评估。
采集 已命名的模板将聚集体和多几何形状,例如多点,多曲线等来评价

如果一个几何图形中有多个conf属性名,则将使用更具体的属性名的值。因此,只有在没有其他属性可用时,才会使用“all”的值。

例子:

如果将下面的conf元素传递给一个函数,该函数将计算所有直线和圆弧几何图形上的路径模板、路径几何图形上的路径模板和所有其他几何图形上的其他模板。

当这些conf元素命名一个模板来运行特定类型的几何图形时,a几何特征可以用来命名要为特定对象运行的模板吗几何实例。将特定几何图形上的' geometry_template '特征设置为模板名称,将使函数为该几何图形运行该模板,而不是运行conf元素中指定的模板。

发表的参数

XQueryFactory可以检索工作空间(或映射文件)中任何已发布的参数(或宏)的值。这些值是查询中的全局变量,可以使用“fme”前缀和参数/宏名访问它们。例如,访问FME_HOME宏的值,fme:美元:FME_HOME可以使用变量。由于XQuery语言的限制,名称以数字开头的参数/宏不能通过这种方式访问。