并置

您可以使用并置变换将两个或两个以上简单元素中的数据并置到字符串输出元素中。

概述

并置变换将两个或两个以上简单输入并置为字符串输出元素。

配置并置变换时,可以通过“属性”页面指定前缀、后缀和定界符:

您可以将字母数字字符指定为字符串之间的定界符。 还可以使用一个字符串前缀和一个字符串后缀。

Concat 变换属性窗格

例如,您可以将元素 名字姓氏中的字符串连接在一起,并指定空格作为定界符,前缀为 先生 。 并以逗号作为后缀,其结果如下:Mr. firstname lastname,

什么时候可使用“并置”变换?

您可在以下前提适用时使用并置变换:
  • 您希望并置来自两个或多个单一类型输入的数据。
  • 并置变换的输入类型可以是任何简单数据类型或基本数据类型。
    注: 类型不是 xs: string 的简单类型输入元素将强制类型转换为 xs: string
  • 并置变换的所有作为主连接进行连接的输入都用于计算输出字符串元素的值。
  • 您可能需要定义前缀。
  • 您可能需要在输入值之间定义同一个定界符。
  • 您可能需要定义后缀。
当在输入上以下任一条件适用时,不能选择和使用并置变换:
  • 并置变换的其中一个输入是复杂类型元素。
  • 其中一个输入是一个重复元素,即,输入元素基数设置为 [1 .. *] 或 [0 .. *]。

“并置”变换的输入

并置变换采用多个简单类型元素。

将输入作为主连接连接到并置变换。

您可以多次将相同输入连接到并置变换。

并置变换按顺序对输入数据进行并置。 输入到变换中的顺序会被识别,此顺序在顺序属性页面中进行设置。

此图显示映射中的 Concat 变换。

输入的顺序

缺省情况下,并置变换的输入的顺序是连接输入所采用的顺序。

您可以通过在变换属性的顺序选项卡中对输入进行重新排序,来修改顺序。

定义运行时在什么条件下应用变换

可以在输入元素与并置变换之间定义多个连接。 然后,在用于定义应用此变换的条件的条件表达式中,可以使用这些输入元素中的一个或多个元素。 如果条件求值为 true,那么应用变换。

注: 您只能使用与转换的主连接相连的输入,并且所有输入都将合并。 不可能使用仅在条件中使用的输入。
注: 当您需要有条件地应用 孔卡特 变换时,请使用 如果 变换并将 孔卡特 变换放置在 如果的嵌套映射中。

要定义条件表达式,您可以在已导入的 Java™ 类上定义 XPath 表达式或对静态方法的调用。 您还可以创建包含 XPath , Java 和扩展函数 (例如 iib:getUserDefinedProperty ("propertyname")) 的复杂表达式。  

您可以配置 条件选项卡中的表达式,该选项卡在变换的属性页面中提供。

有关更多信息,请参阅 配置变换的特性定义用于变换的 XPath 条件表达式定义用于变换的 Java 条件表达式

如果条件表达式需要使用并置变换中未使用的输入元素的值来设置输出元素,那么您必须使用 If 变换来定义在运行时应用该变换的时间。 有关更多信息,请参阅 If , Else if 和 Else

警告错误

缺省情况下,无法将重复简单元素连接到并置变换。 但是,如果您有一个在其中定义了并置变换的映射,并且您更改了某个输入元素的基数以使其变为可重复简单类型,那么并置变换将显示警告。

该警告消息如下所示:

Each input of the string concatenation function expects a single input. Make sure {0} will not pass multiple instances to the function at run time.

由于至少一个输入不是单一类型,因此会显示警告。

并置变换具有此类警告时,运行时行为如下:
  • 如果输入 XML 具有的可重复输入实例少于一个,那么并置变换会在运行时生成期望的结果。
  • 如果输入 XML 具有的可重复输入实例多于一个,那么并置变换会在运行时生成异常。

“并置”变换的重复单一输入元素的示例:

此图显示使用重复简单类型元素时的 Concat 变换警告错误。