使用内联 XSLT 和 XSLT 调用模板编写脚本

可以直接编写可扩展样式表语言转换 (XSLT) 样式表以用于 脚本 functoid。 这样,您就可以执行链接和内置 functoid 可能无法表示的转换。 XSLT 脚本有两种类型:内联 XSLT 和 XSLT 调用模板。 在“配置脚本”Functoid 对话框的“选择脚本类型”下拉列表中选择任一类型时,将显示可以使用的示例代码。

内联 XSLT 脚本和内联 XSLT 调用模板可以调用外部程序集中的函数。 进行此类调用需要设置网格的 自定义扩展 XML 属性。 有关详细信息,请参阅 UI 指南和开发人员 API 命名空间参考中的自定义扩展 XML (网格属性)

内联 XSLT

内联 XSLT 脚本只能生成输出。 脚本 functoid 可能没有任何输入链接。 该 functoid 还必须直接链接到目标架构中的记录或字段。

此外,该脚本还用于创建目标节点及其任何下级结构。

以下输入实例消息包含表示联系人信息的两个元素:

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

在脚本缓冲区中输入的以下内联 XSLT 脚本将 ContactContactType 字段转换为属性。

<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>  

如果具有适当的输出架构,那么,在针对前面的输入实例消息运行时,该脚本将生成以下输出:

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

请注意,缺少指向 Scripting functoid 的链接不会阻止 XSLT 脚本从输入实例消息获取数据。 该脚本指定了输入实例值的路径。

有关内联 XSLT 脚本的另一个示例,请参阅 XML Tools (BizTalk Server Samples Folder)

内联 XSLT 调用模板

与内联 XSLT 脚本类似,内联 XSLT 调用模板必须直接连接到目标节点。 不过,内联 XSLT 调用模板可以使用源自源架构和其他 functoid 的链接。

调用模板用于创建目标节点及其任何子结构。

在“选择脚本类型”下拉列表中选择“内联 XSLT 调用模板”时,输入脚本缓冲区中会显示连接两个元素的示例 XSLT 调用模板

有关内联 XSLT 调用模板的另一个示例,请参阅 XML Tools (BizTalk Server Samples Folder)

另请参阅

“脚本编写”Functoid
使用外部程序集编写脚本
使用内联 C#、JScript .NET 和 Visual Basic .NET 编写脚本
如何向映射添加“脚本”Functoid
如何配置“脚本”Functoid