Share via


Crear secuencias de comandos mediante XSLT en línea y plantillas de llamada XSLT en línea

Puede escribir directamente hojas de estilos de transformaciones de lenguaje de hoja de estilos extensibles (XSLT) para usarlas en el functoid Scripting . Esto le permite realizar transformaciones que tal vez los vínculos y functoids integrados no sean capaces de representar. Hay dos tipos de scripts XSLT: plantillas de llamada XSLT y XSLT insertadas. Al seleccionar en la lista desplegable Seleccionar tipo de script del cuadro de diálogo Configurar functoid de scripting , aparece el código de ejemplo que puede usar.

Las plantillas de secuencias de comandos XSLT en línea y llamada XSLT en línea pueden llamar funciones en ensamblados externos. Para realizar estas llamadas, es necesario establecer la propiedad XML de extensión personalizada de la cuadrícula. Para obtener más información, consulte Custom Extension XML (Propiedad Grid) en la guía de interfaz de usuario y la referencia del espacio de nombres de la API de desarrolladores.

XSLT en línea

Una secuencia de comandos XSLT en línea solo puede producir salidas. Es posible que el functoid Scripting no tenga ningún vínculo de entrada. El functoid también debe vincular directamente a un registro o campo en el esquema de destino.

Además, la secuencia de comandos es responsable de la creación del nodo de destino y cualquier estructura que esté debajo de él.

El siguiente mensaje de instancia de entrada contiene dos elementos que representan información de contacto.

<ns0:SourceInstance xmlns:ns0="http://SourceInstanceNamespace">  
    <Address>  
        <Contact>Karin Zimprich</Contact>  
        <ContactType>Referral</ContactType>  
    </Address>  
</ns0:SourceInstance>  

El siguiente script XSLT insertado, escrito en el búfer de script, convierte los campos Contact y ContactType en atributos.

<ContactInfo xmlns:p="http://SourceInstanceNamespace">  
     <xsl:variable name="var:var1" select="/p:SourceInstance/Address/ContactType" />  
     <xsl:attribute name="ContactType">  
          <xsl:value-of select="$var:var1" />  
     </xsl:attribute>  
     <xsl:variable name="var:var2" select="/p:SourceInstance/Address/Contact" />  
     <xsl:attribute name="Contact">  
          <xsl:value-of select="$var:var2" />  
     </xsl:attribute>  
</ContactInfo>  

La secuencia de comandos crea la siguiente salida, suponiendo que el esquema de salida sea el adecuado, cuando se ejecuta con respecto al mensaje de instancia de entrada anterior.

<ns0:OutInstance xmlns:ns0="http://More_XSLT.Out">  
    <ContactInfo ContactType="Referral" Contact="Karin Zimprich" xmlns:p="http://SourceInstanceNamespace">  
    </ContactInfo>  
</ns0:OutInstance>  

Tenga en cuenta que la ausencia de vínculos al functoid scripting no impide que el script XSLT obtenga datos del mensaje de instancia de entrada. La secuencia de comandos especifica rutas a los valores de instancia de entrada.

Para obtener otro ejemplo de un script XSLT insertado, vea XML Tools (BizTalk Server samples Folder).

Plantillas de llamada XSLT en línea

Al igual que una secuencia de comandos XSLT en línea, una plantilla de llamada XSLT en línea debe conectar directamente con un nodo de destino. Sin embargo, una plantilla de llamada XSLT en línea puede utilizar vínculos del esquema de origen y de otros functoids.

La plantilla de llamada es responsable de la creación del nodo de destino y todas sus subestructuras.

Una plantilla de llamada XSLT de ejemplo que concatena dos elementos aparece en el búfer de script de entrada al seleccionar Plantilla de llamada XSLT insertada en la lista desplegable Seleccionar tipo de script .

Para obtener otro ejemplo de una plantilla de llamada XSLT insertada, vea XML Tools (BizTalk Server Carpeta de ejemplos).

Consulte también

Functoid de scripting
Scripting mediante ensamblados externos
Scripting mediante C#, JScript .NET y Visual Basic .NET en línea
Cómo agregar functoids de secuencia de comandos a una asignación
Cómo configurar el functoid Secuencia de comandos