使用内联 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 脚本将 Contact 和 ContactType 字段转换为属性。
<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