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

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

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

内联 XSLT

内联 XSLT 脚本只能生成输出。 Scripting 函数体可能没有任何输入链接。 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 工具(BizTalk Server 示例文件夹)。

内联 XSLT 调用模板

与内联 XSLT 脚本一样,内联 XSLT 调用模板必须直接连接到目标节点。 但是,内联 XSLT 调用模板可能会使用来自源架构和其他功能模块的链接。

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

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

有关内联 XSLT 调用模板的另一个示例,请参阅 XML 工具(BizTalk Server 示例文件夹)。

另请参阅

编写 Functoid 脚本
使用外部程序集编写脚本
使用内联 C#、JScript .NET 和 Visual Basic .NET 编写脚本
如何将脚本 Functoid 添加到地图
如何配置脚本 Functoid