访问已迁移消息模型中嵌入式简单类型

在前发行版中,您可以在消息模型中的复合类型内嵌入简单类型。这允许建模在 XML 标记之间可以发生匿名文本。这些简单类型被引用为嵌入式简单类型以将它们与 XML 模式简单类型区分开来。 本主题仅当您在处理在前发行版中建模并且已使用mqsimigratemsgsets 命令导入的消息时适用。

当 MRM 消息被解析为逻辑树时,嵌入式简单类型没有唯一在 ESQL 中定义它们的标识。如果要查询或更新在嵌入式简单类型中保存的数据,必须在引用它时关联消息中的其他已知对象。

例如,如果您要以文本“Mr. Smith”更新嵌入式简单类型,请在 Compute 节点中包含以下 ESQL:

SET OutputRoot.MRM.Person.*[3] = 'Mr.Smith';

这条语句将 Person 元素的第三个子代设置为 Mr.Smith。因为这条语句在树中寻址匿名元素(没有名称的嵌入式简单类型),所以您只有知道它在树中的位置才能设置它的值。

请查看以下 MRM XML 消息:

<Mess1>
  <Elem1>abc</Elem1>
  <Elem2>def<Child1>ghi</Child1></Elem2>
</Mess1>

您可以使用以下对象在 MRM 中构建此 XML 消息的模型。

消息
消息 Name 属性设置为 Mess1 以匹配 XML 标记。

Type 属性设置为 tMess1

类型
复杂类型 Name 属性设置为 tMess1

Composition 属性设置为 Ordered Set

复杂类型包含下列对象:

元素
Name 属性设置为 Elem1 以匹配 XML 标记。

Type 属性设置为 XML 模式简单类型 xsd:string

元素
Name 属性设置为 Elem2 以匹配 XML 标记。

Type 属性设置为复杂类型 tElem2

类型
复杂类型 Name 属性设置为 tMess2

Composition 属性设置为 Sequence

复杂类型包含下列对象:

元素
Name 属性设置为 Child1 以匹配 XML 标记。

Type 属性设置为 XML 模式简单类型 xsd:string

嵌入式简单类型
ComIbmMRM_BaseValueString

在 tMess2 中嵌入式简单类型 ComIbmMRM_BaseValueString 用来从输入消息解析数据 def。如果您要更改在输出上与嵌入式简单类型关联的数据的值,则编写以下 ESQL:

SET OutputRoot.MRM.Elem2.*[1] = 'xyz';

这生成以下输出消息:

<Mess1>
  <Elem1>abc</Elem1>
  <Elem2>xyz<Child1>ghi</Child1></Elem2>
</Mess1>

如果您不愿意在 MRM 中为此消息建模,可以使用以下 ESQL 获得相同的结果:

SET OutputRoot.XML.Elem2.*[1] = 'xyz';

嵌入式简单类型没有用于空值处理的工具,而很多元素提供空值处理。如果您将一个嵌入式简单类型设置为空,则它将从消息树中删除。

在 ESQL 中,元素名称通常用来引用和更新 MRM 元素。例外是当嵌入式消息中存在简单类型时。如果您正在使用多段式消息,且该消息不是位流中的第一个消息对象,则必须指定消息名称来进一步限定嵌入式简单类型引用。访问 MRM 域中嵌入式消息 提供更多信息。

相关概念
消息流概述
ESQL 概述
消息建模
相关任务
设计消息流
定义消息流内容
管理 ESQL 文件
迁移消息集
相关参考
Compute 节点
Database 节点
Filter 节点
ESQL 引用
SET 语句
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ac12260_