Pregunta

¿Hay una manera de lograr lo siguiente transformación en el asignador de BT? si no, alguna idea inteligente?

<Person>
<Age>25</Age>
<Name>Paul</Name>
</Person>

a:

<Person>
<CustomProperties>
<CustomProperty>
<Name>Age</Name>
<Value>25</VAlue>
</CustomProperty>
<CustomProperty>
<Name>Name</Name>
<Value>Paul</VAlue>
</CustomProperty>
</CustomProperties>

Tengo que agregar unos elementos de una lista de nodos.

Gracias de antemano.

¿Fue útil?

Solución

No se sabe mucho sobre el asignador de BizTalk, pero el XSLT requerida sería bastante sencilla:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="Person">
    <xsl:copy>
      <CustomProperties>
        <xsl:apply-templates select="*" />
      </CustomProperties>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="Person/*">
    <CustomProperty>
      <Name><xsl:value-of select="name()" /></Name>
      <Value><xsl:value-of select="." /></Value>
    </CustomProperty>
  </xsl:template>
</xsl:stylesheet>

Otros consejos

También puede utilizar el TableLooping / functoids TableExtractor en su mapa para construir los nodos de destino.

Ver este post para ver un ejemplo:

http://hestia.typepad.com/flatlander/2007/01 /mapping_fixed_e.html

Parece que usted tiene un mapeo recta hacia adelante desde la entrada hasta la salida. Cuando usted hace su mapeo haga clic derecho sobre la línea trazada desde la entrada hasta la salida. Seleccione "Propiedades". Hay opciones para copiar el valor del nodo de entrada o el nombre del nodo de entrada. Se pueden utilizar dos asignaciones de cada nodo hijo, uno para extraer el nombre y otra para el valor.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top