你在这里: 流行格式 > XML(可扩展标记语言)阅读器/编写器 > xfMap > 读取输入XML文档 > 在映射规则激活和失效过程中使用Force元素

在映射规则激活和失效过程中使用Force元素

为了提供直接到映射规则的挂钩,有一些force元素允许您在映射规则被激活、被取消或同时被激活时对表达式求值。force元素还提供了一种停止翻译执行的方法。虽然不会使用求值的表达式,但有些表达式有副作用(如日志记录或任意Tcl脚本),只有在求值表达式时才会激活这些副作用。

force元素必须是映射元素的直接子元素。有四种可能的属性:

  1. onActivation:合法值为“真”或“假”
  2. onDeactivation:合法值为“真”或“假”
  3. 停止:合法值为“真”或“假”
  4. 暂停:其中合法值为any,包括空字符串

如果没有指定,halt属性默认为false。

onActivation和onDeactivation属性指定应该在什么时候计算包含的表达式。onActivation或onDeactivation中至少有一个必须设置为“true”,否则表达式将不会被计算。可以指定在激活映射规则和取消激活映射规则时计算表达式。当与元素(稍后讨论)结合使用时,这通常很有用,以确定各种映射规则何时匹配。

halt-on属性没有默认值,此属性提供元素有条件地停止xfMap的能力。如果该属性存在,并且元素中的表达式序列的计算结果正好等于在halt-on属性上设置的字符串,则该属性将导致xfMap停止。

下面的例子将在匹配元素时停止阅读器,消息" ' Tablet ' - is not supported "也将作为错误打印到FME日志文件中。

<映射匹配=“平板”>
<力onActivation = " true "停止= " true " >
< logexpr严重性= "错误" >
<参数>
<文字expr = " " / >
<匹配expr = " qname " / >
< /参数>
< / logexpr >
> < /力
...
< / >映射

注意:如果所包含的XML表达式序列有一个' extract '元素,则元素有一个显著的限制。由于XML阅读器是一个流媒体阅读器,因此当激活映射规则时,尚未读取触发它的XML元素的全部内容。事实上,在激活阶段,只有触发元素的属性可用于提取。提取试图引用触发元素的子元素的元素将在激活映射规则时计算为空字符串。对映射规则去激活没有这样的限制。