Avalados por :
Quando você começa a criar uma função de mapeamento, você encontra o elemento XSLT xsl:sequence como padrão na caixa do editor de funções. Este elemento escreve sequências de nós e/ou valores atômicos na saída. Os conhecedores de XSLT sabem que o XSLT oferece outros elementos que você pode usar para escrever valores nos nós de saída. Além de xsl:sequence, os elementos utilizáveis são xsl:copy-of ou xsl:value-of no Consultor de Integração. Para usar os elementos, é bastante útil entender o comportamento dos elementos XSLT no contexto de um elemento de mapeamento. Os elementos têm um comportamento significativamente diferente. Este blog descreve especialmente o comportamento e a saída dos elementos XSLT, se você os usa em funções de mapeamento de um elemento de mapeamento.
Se você usar os elementos XSLT xsl:sequence, xsl:copy-of ou xsl:value-of em um script XSLT que não é gerado pelo Consultor de Integração, você obterá as seguintes diferenças:
Ambos, xsl:sequence e xsl:copy-of têm um comportamento semelhante e podem ser substituídos entre si na maioria dos casos. A principal diferença entre xsl:sequence e xsl:copy-of pode ser expressa pelo seguinte exemplo que mostra claramente o caráter de referência de xsl:sequence.
Entrada:
...
XSLT:
...
Ambas as variáveis, $vSeq e $vCopy, contêm o elemento e o valor de TextElementText. Mas o TextElementText na variável $vSeq é apenas uma referência e o objeto de entrada ainda é conhecido. A variável $vCopy mantém uma cópia de TextElementText. A saída mostrada abaixo mostra que ao usar a variável $vSeq, obtemos um elemento Language não vazio e ao usar a variável $vCopy, ficamos com um elemento Language vazio.
...
Uma das principais intenções do Consultor de Integração é gerar scripts de transformação que escrevam valores de uma carga fonte estruturada para uma carga alvo estruturada. As estruturas sempre seguem esquemas de interfaces predefinidos de mensagens comerciais. Os XSLTs gerados pelo Consultor de Integração atomizam implicitamente os valores de entrada por meio de um xsl:value-of, porque essas funções de mapeamento são usadas para escrever os resultados nos nós folha alvo mapeados. Isso elimina as diferenças de outros elementos XSLT xsl:sequence e xsl:copy-of, já que o foco desses elementos é escrever ou copiar sequências e estruturas complexas.
Principalmente por razões históricas, porque xsl:sequence é mais eficiente que xsl:copy-of, e mantém os tipos relacionados com os nós ao processar a entrada na saída. Esta é também a motivação para que os desenvolvedores de XSLT 2.0 usem principalmente xsd:sequence. Originalmente, nosso desenvolvimento começou com o retorno de vários nós ao processar estruturas complexas, que deveriam ser usadas para o tipo de ativação das instâncias alvo. Mas esse tipo de ativação mudou. Agora é possível estabelecer mapeamentos condicionais com seu comportamento de ativação específico. O blog ###BLOG### fornece mais detalhes a respeito.
O elemento xsl:copy é geralmente usado para copiar o nó de entrada atual na saída. O efeito real depende se o nó é um elemento, um atributo ou um nó de texto. Como o Consultor de Integração já considera os nós predefinidos no lado fonte e alvo, não faz sentido usar um xsl:copy com uma seleção de apenas nós. A seguinte figura mostra as consequências do uso diferente de xsl:copy. O primeiro exemplo é um xsl:copy do valor usando text(), que localiza o valor do nó de contexto. A seleção do xsl:copy no segundo exemplo termina apenas com o próprio nó folha. Isso não retorna nada,
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute