Elementos de casting em um mapa de mensagens

No editor de Mapeamento de Dados Gráficos, use a função Cast para redefinir partes da entrada ou do modelo de saída em um mapa de mensagens. Essa função também é conhecida como um mapping cast.

Sobre esta tarefa

Para criar um modelo de mensagem flexível, é possível definir elementos em seu esquema XML como curingas, ou é possível fornecer uma extensão ou tipo derivado de um tipo base. Em um esquema JSON, é possível usar as palavras-chave "oneOf" ou "anyOf" para permitir flexibilidade.

Um curinga é um elemento em seu esquema XML que é definido como xsd:any, xsd:anyType ou xsd:anySimpleType.

Um esquema de modelo de mensagem pode conter um ou mais curingas. Além disso, o modelo para o Ambiente do conjunto da mensagem, Ambiente local, pastas de cabeçalhos de transporte e mensagens de domínio SOAP e JSON, inclui curingas, como na pasta Variables do ambiente, que permite definir dados especificamente para a operação do fluxo.

No editor de Mapeamento de Dados Gráficos, é possível redefinir esses curingas usando a função Cast para selecionar um elemento ou tipo que é definido em um modelo de mensagem, como um esquema XML, esquema DFDL, esquema JSON ou o documento Swagger. Para obter mais informações, consulte Casting um curinga definido como xsd: any em um tipo específico para uma mensagem SOAP e Configurando um tipo genérico na árvore de ambientes locais usando a função Cast.

Se você não tiver um modelo de mensagem que forneça um elemento adequado para cast, considere incluir um elemento definido pelo usuário, conforme descrito em Definindo elementos definidos pelo usuário. Quando você tiver incluído um elemento definido pelo usuário, será possível configurar seu tipo a partir de um tipo global em seu modelo de mensagens, conforme descrito em Definindo a estrutura de um elemento complexo definido pelo usuário

Ao aplicar um cast de mapeamento, as opções que estão disponíveis variam de acordo com o tipo. As opções a seguir estão disponíveis para o tipo especificado:
xsd:any
Todos os elementos globais definidos nos modelos de mensagem que estão contidos no mesmo aplicativo ou biblioteca referenciada e que são, portanto, visíveis para o mapa. Isso inclui elementos de XML, DFDL e objetos e matrizes de nível superior no esquema JSON.
xsd:anyType
Todos os tipos globais definidos nos modelos de mensagens que estão contidos no mesmo aplicativo ou biblioteca referenciada e que são, portanto, visíveis para o mapa. Isso inclui tipos globais de XML, DFDL e os tipos definidos para objetos e matrizes de nível superior no esquema JSON.
xsd:anySimpleType
Todos os tipos XML padrão e quaisquer extensões de tipo global para tipos simples XML definidos nos modelos de mensagem XML que estão contidos no mesmo aplicativo ou biblioteca referenciada e que são, portanto, visíveis para o mapa.
<namespace>:<base XML schema type>
Todos os tipos XML que são definidos como extensões ou derivados desse tipo de esquema XML.
Tipo JSON definido com "oneOf" ou "anyOf"
Os tipos JSON definidos na matriz "oneOf" ou "anyOf".
Se você estiver convertendo para um elemento ou tipo derivado de um esquema JSON ou documento Swagger, consulte Requisitos do esquema JSON para mapas de mensagens.

É possível usar a função Cast para redefinir um curinga ou tipo base várias vezes. Cada tipo que você efetua cast aparece sob o curinga ou o tipo base em um grupo de opções.

Para definir transformações entre subtipos de um tipo de dados XML, é possível usar extensão ou tipos derivados. Um tipo derivado é um tipo de dados relacionado a um outro tipo de dados conhecido como o tipo de base ou supertipo. É possível efetuar cast de um tipo de base para um tipo derivado usando a função Cast. Para obter mais informações, consulte Casting um tipo de base de esquema XML para um tipo derivado ou tipo de extensão.

Quando a mensagem de entrada ou a mensagem de saída for o objeto de domínio JSON ou a mensagem de matriz de domínio JSON fornecidos pela IBM, será possível redefinir o elemento Dados que é do tipo anyType usando a função Cast. Para obter mais informações, consulte Modelando uma mensagem JSON a ser usada em um mapa de mensagem usando um modelo de esquema XML equivalente

Também é possível usar as palavras-chave "oneOf" e "anyOf" do esquema JSON, para estruturar e combinar esquemas JSON mais complexos. Para obter mais informações, consulte Casting com tipos de esquema JSON e Requisitos de esquema JSON para mapas de mensagens

Procedimento

Para redefinir um elemento em seu modelo de entrada ou saída usando a função Cast, conclua as seguintes etapas:

  1. Abra o mapa no editor Graphical Data Mapping.
  2. Clique com o botão direito do mouse sobre o elemento que você deseja redefinir, e selecione Cast.

    O diálogo Seleção de tipo é aberta:

    Esta figura mostra a janela de Seleção de Tipo que você pode ver ao lançar um tipo JSON.

  3. Selecione o tipo que você deseja lançar para, e em seguida, clique em OK.

    O diálogo Seleção de Tipo lista somente aqueles elementos e tipos que são apropriados para o elemento que você deseja converter e que estão contidos em um aplicativo ou uma biblioteca referenciado. Ao efetuar cast de um elemento de base, o diálogo Seleção de Tipo lista apenas os tipos derivados.

    Nota: Nas situações a seguir, escolha de itens de elenco contém mais de um item:
    • Você converte um tipo de entrada de curinga em um tipo de esquema específico.
    • Você converte um tipo de entrada de esquema base em uma extensão ou um tipo restrito.
    Ao aplicar a extensão XML ou o tipo de tipo de esquema do tipo derivado do tipo, o editor de Mapeamento de Dados Gráficos automaticamente aplica uma expressão XPath aos mapeamentos a partir desses casts. No tempo de execução, a expressão XPath verifica o atributo xsi:type do elemento de entrada para determinar qual dos tipos está presente nos dados de entrada. Então, somente o mapeamento do tipo apropriado é executado. A expressão verifica somente o nome do tipo em cada cast; o namespace não é considerado. Se opção de itens cast incluir tipos que têm o mesmo nome, mas estão em namespaces diferentes, deve-se incluir a própria conversão condicional que verifica o namespace e a parte do nome do atributo xsi:type dos dados de entrada. Quando opção de itens cast inclui somente um único tipo, o atributo xsi:type não é verificado e deve-se assegurar que os dados de entrada apresentem somente o único tipo de cast.

Resultados

Após usar a função Cast para qualificar o tipo do elemento que é definido com um curinga, o tipo aparecerá abaixo do curinga. É possível definir transformações entre a mensagem de entrada e a mensagem de saída. Para obter mais informações, consulte Especificando uma transformação (operação de mapeamento).