在 消息映射 中强制类型转换元素
在 " 图形数据映射编辑器" 中,使用 强制类型转换 函数在 消息映射中重新定义输入或输出模型的部分。 此函数也称为 mapping cast。
关于此任务
要创建灵活的消息模型,您可以将 XML 模式中的元素定义为通配符,也可以提供基本类型的扩展或派生类型。 在 JSON 模式中,您可以使用 "oneOf" 或 "anyOf" 关键字来提供灵活性。
通配符是 XML 模式中定义为 xsd:any、xsd:anyType 或 xsd:anySimpleType 的元素。
消息模型模式可能包含一个或多个通配符。 此外,Message Assembly Environment、Local Environment、传输头文件夹以及 SOAP 和 JSON 域消息的模型(包括通配符,例如,在环境 Variables 文件夹下),这允许您专门为流操作定义数据。
在 " 图形数据映射编辑器" 中,可以使用 强制类型转换 函数来重新定义这些通配符,以选择在消息模型中定义的元素或类型,例如 XML 模式, DFDL 模式, JSON 模式或 Swagger 文档。 有关更多信息,请参阅 将定义为 xsd: any 的通配符强制转换为 SOAP 消息的特定类型 和 使用强制转换函数在本地环境树中配置通用类型。
如果您没有提供适合强制类型转换的元素的消息模型,请考虑添加用户定义的元素,如 定义用户定义的元素中所述。 添加用户定义元素后,可以根据消息模型中的全局类型设置其类型,如 定义复杂用户定义元素的结构中所述。
- xsd:any
- 因此,在包含于同一个应用程序或所引用库中的消息模型内定义的所有全局元素对映射可见。 这包含来自 XML、DFDL 和顶级对象的元素以及 JSON 模式中的数组。
- xsd:anyType
- 因此,在包含于同一个应用程序或所引用库中的消息模型内定义的所有全局类型对映射可见。 这包含来自 XML 和 DFDL 的全局类型、为顶级对象定义的类型以及 JSON 模式中的数组。
- xsd:anySimpleType
- 因此,针对包含于同一个应用程序或所引用库中的 XML 消息模型内定义的 XML 简单类型的所有标准 XML 类型和任何全局类型扩展对映射可见。
- <namespace>:<base XML schema type>
- 定义为此 XML 模式类型的扩展或派生类型的所有 XML 类型。
- 使用
"oneOf"或"anyOf"定义的 JSON 类型 - 在
"oneOf"或"anyOf"数组中定义的 JSON 类型。
您可以多次使用强制类型转换函数来重新定义通配符或基本类型。 您强制转换的每种类型都会显示在所选组的通配符或基本类型下。
要在 XML 数据类型的子类型之间定义变换,您可以使用扩展或派生类型。 派生类型是与另一数据类型(称为基本类型或超类型)相关的数据类型。 您可以使用强制类型转换函数将基本类型强制转换为派生类型。 有关更多信息,请参阅 将 XML 模式基本类型转换为派生类型或扩展类型。
当输入消息或输出消息是 IBM 提供的 JSON 域对象或 JSON 域数组消息,那么可以使用强制类型转换函数重新定义类型为 anyType 的 Data 元素。 有关更多信息,请参阅 使用等效 XML 模式模型对 JSON 消息进行建模以在消息映射中使用。
您还可以使用 JSON 模式 "oneOf" 和 "anyOf" 关键字来构造和组合更复杂的 JSON 模式。 有关更多信息,请参阅 Casting with JSON schema types 和 消息映射的 JSON 模式需求。
过程
要使用强制类型转换函数对输入模型或输出模型中的元素进行重新定义,请完成下列步骤:
结果
使用强制类型转换函数对使用通配符定义的元素的类型进行限定后,该类型将显示在该通配符之下。 您可以在输入消息与输出消息之间定义变换。 有关更多信息,请参阅 指定变换 (映射操作)。
