Avalados por :
Una vez que comienzas la creación de una función de mapeo, encuentras el elemento XSLT xsl:sequence como predeterminado en el cuadro del editor de funciones. Este elemento escribe secuencias de nodos y/o valores atómicos en la salida. Los conocedores de XSLT saben que XSLT ofrece otros elementos que puedes usar para escribir valores en los nodos de salida. Aparte de xsl:sequence, los elementos utilizables son xsl:copy-of o xsl:value-of en el Asesor de Integración. Para utilizar los elementos, es bastante útil comprender el comportamiento de los elementos XSLT en el contexto de un elemento de mapeo. Los elementos tienen un comportamiento significativamente diferente. Este blog describe especialmente el comportamiento y la salida de los elementos XSLT, si los usas en funciones de mapeo de un elemento de mapeo.
Si utilizas los elementos XSLT xsl:sequence, xsl:copy-of o xsl:value-of en un script XSLT que no es generado por el Asesor de Integración, obtendrás las siguientes diferencias:
Ambos, xsl:sequence y xsl:copy-of tienen un comportamiento similar y pueden reemplazarse entre sí en la mayoría de los casos. La principal diferencia entre xsl:sequence y xsl:copy-of puede expresarse mediante el siguiente ejemplo que muestra claramente el carácter de referencia de xsl:sequence.
Entrada:
...
XSLT:
...
Ambas variables, $vSeq y $vCopy, contienen el elemento y el valor de TextElementText. Pero el TextElementText en la variable $vSeq es solo una referencia y el objeto de entrada sigue siendo conocido. La variable $vCopy mantiene una copia de TextElementText. La salida mostrada a continuación muestra que al usar la variable $vSeq se obtiene un elemento Language no vacío y al usar la variable $vCopy nos deja con un elemento Language vacío.
...
Una de las principales intenciones del Asesor de Integración es generar scripts de transformación que escriban valores de una carga fuente estructurada a una carga objetivo estructurada. Las estructuras siempre siguen esquemas de interfaces predefinidos de mensajes comerciales. Los XSLTs generados por el Asesor de Integración atomizan implícitamente los valores de entrada mediante un xsl:value-of, porque estas funciones de mapeo se utilizan para escribir los resultados en los nodos hoja objetivo mapeados. Esto elimina las diferencias de otros elementos XSLT xsl:sequence y xsl:copy-of, ya que el enfoque de estos elementos es la escritura o copia de secuencias y estructuras complejas.
Principalmente tiene razones históricas, porque xsl:sequence es más eficiente que xsl:copy-of, y mantiene los tipos relacionados con los nodos al procesar la entrada en la salida. Esta es también la motivación para que los desarrolladores de XSLT 2.0 utilicen principalmente xsd:sequence. Originalmente, nuestro desarrollo comenzó con el retorno de varios nodos al procesar estructuras complejas, que deberían usarse para el tipo de activación de las instancias objetivo. Pero este tipo de activación ha cambiado. Ahora es posible establecer mapeos condicionales con su comportamiento de activación específico. El blog ###BLOG### te brinda más detalles al respecto.
El elemento xsl:copy se utiliza generalmente para copiar el nodo de entrada actual en la salida. El efecto real depende de si el nodo es un elemento, un atributo o un nodo de texto. Dado que el Asesor de Integración ya considera los nodos predefinidos en el lado fuente y objetivo, no tiene sentido usar un xsl:copy con una selección de solo nodos. La siguiente figura muestra las consecuencias del uso diferente de xsl:copy. El primer ejemplo es una xsl:copy del valor usando text(), que localiza el valor del nodo de contexto. La selección de la xsl:copy en el segundo ejemplo termina solo con el nodo hoja en sí. Esto no devuelve nada,
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute