在 MRM 域中访问消息中元素的多个出现
您可以使用特定 ESQL 代码设置在消息中多次出现的元素的一次出现的值。 您还可以使用箭头符号来指示搜索元素的多个出现时的搜索方向。
关于此任务
您可以遵循 访问已知多次出现的元素 和 访问未知多次出现的元素中提供的一般指导来访问 MRM 域元素。 在这个主题中提供进一步的 MRM 域消息的特定信息。
考虑以下语句:
DECLARE brw NAMESPACE 'http://www.ibm.com/Borrowed';
SET OutputRoot.MRM.brw:Borrowed[1].VideoTitle = 'MRM Greatest Hits Volume 1';
SET OutputRoot.MRM.brw:Borrowed[2].VideoTitle = 'MRM Greatest Hits Volume 2';
以上 SET 语句在元素 Borrowed 的两个出现上操作。 每个语句设置子代 VideoTitle 的值。 数组下标表明您感兴趣的重复元素的出现。
当您在消息集中定义复杂类型(其 Composition 属性设置为 Sequence)的子元素时,可多次将同一元素添加到复杂类型中。 这些实例不需要是相连的,但您必须使用同一方法(数组符号)来在 ESQL 中引用它们。
例如,如果您创建一个复杂类型,其 Composition 为 Sequence,且包含以下元素:
StringElement1IntegerElement1StringElement1
使用以下 ESQL 设置 StringElement1 的值:
SET OutputRoot.MRM.StringElement1[1] =
'This is the first occurrence of StringElement1';
SET OutputRoot.MRM.StringElement1[2] =
'This is the second occurrence of StringElement1';
您还可以使用箭头表示法(大于 (>) 和小于 (<) 符号)以指示搜索方向和要指定的索引:
SET OutputRoot.MRM.StringElement1[>] =
'This is the first occurrence of StringElement1';
SET OutputRoot.MRM.StringElement1[<2] =
'This is the last but one occurrence of
StringElement1';
SET OutputRoot.MRM.StringElement1[<1] =
'This is the last occurrence of StringElement1';
有关更多详细信息,请参阅 访问已知多次出现的元素 和 访问未知多次出现的元素 。