【发布时间】:2021-01-01 01:32:55
【问题描述】:
我正在尝试进行概念验证以使用 saxon xslt 3.0 运行 BizTalk 地图 有一种方法,我们可以使用自定义扩展(xml)扩展对象来执行方法。
我正在关注此链接,但在执行 TestMap
时出现错误Saxon 变换的扩展类 Test.TestMethod 无效,其类型应为“ExtensionFunction”或“ExtensionFunctionDefinition”
BizTalk Server 2020: A review of the new XSLT 3.0 & Custom Transform Features: Custom Engine Options (social.technet.microsoft.com)
自定义扩展 xml
<ExtensionObjects>
<ExtensionObject Namespace="http://schemas.microsoft.com/BizTalk/2003/ScriptNS0" AssemblyName="Test, Version=1.0.0.0, Culture=neutral, PublicKeyToken=11f992b93de945f2,processorArchitecture=MSIL" ClassName="Test.TestMethod" /></ExtensionObjects>
自定义扩展 xml 文件中是否缺少任何内容? 我不确定这里出了什么问题。
注意:在 BizTalk 2020 中部署应用程序后,我在运行时遇到同样的错误
【问题讨论】:
-
您的代码看起来如何?你实现
ExtensionFunctionDefinition和ExtensionFunctionCall了吗?并且不应该ClassName="Test.TestMethod"而是命名例如ClassName="MyNamespace.MyExtensionClass"?但后者取决于你的代码看起来如何,所以在你的问题中显示出来。 -
@MartinHonnen :是的,我尝试使用相同的示例 --CSharpExtension 类来实现(ExtensionFunctionDefinition 和 ExtensionFunctionCall)。在该示例链接中,您是否将 MyExtensionClass 称为“ExtensionFunctionDefinition”?
-
不,实现
ExtensionFunctionDefinition的类例如从示例中它是CSharpExtensions.Sqrt。在该示例中,CSharpExtensions是命名空间,Sqrt是该命名空间中实现ExtensionFunctionDefinition的类的名称。 -
是的,我已经用c#实现了。只是使用了不同的类和方法名。其余都一样
标签: xml xslt biztalk saxon biztalk-2020