过去,BizTalk(以及一般的.NET框架)除1.0之外不支持任何XSLT版本。我们公司即将升级到BizTalk Server 2016,我想知道在所述BizTalk Server版本中使用XSLT 2.0或3.0进行自定义映射是否可能(并且本机支持)?
我知道他们不太可能实现这一点,但我一直在互联网上漫游,我似乎无法找到这个问题的具体答案。
答案 0 :(得分:4)
MS支持XSLT> 1.0
可悲的是,MS决定不提供对XSLT的支持> 1.0。这是他们2004年的推理;而且据我所知,它没有被修改过。 https://blogs.msdn.microsoft.com/dareobasanjo/2004/05/13/why-you-wont-see-xslt-2-0-or-xpath-2-0-in-the-next-version-of-the-net-framework/
我们没有实现XSLT 2.0和XPath 2.0有几个原因。
需要付出很多努力......
他们的XslCompiledTransform
确实支持XSLT 1.0的一些额外功能;但它不是标准的,绝不是完全的支持。
https://msdn.microsoft.com/en-us/library/system.xml.xsl.xslcompiledtransform(v=vs.110).aspx
XslCompiledTransform类是一个支持XSLT 1.0语法的XSLT处理器。这是一个新的实现,与过时的XslTransform类相比,包括性能提升。 XslCompiledTransform类的结构与XslTransform类非常相似。 Load方法加载并编译样式表,而Transform方法执行XSLT转换。
解决方法:使用第三方解决方案:例如撒克逊强>
也就是说,在BT中,您可以在业务流程中使用C#类。 Saxon为.net提供XSLT 3.0支持,因此您只需要使用他们的第三方库。这是一个入门指南:
http://www.saxonica.com/html/documentation/about/gettingstarted/gettingstarteddotnet.html
功能请求
.Net Core Framework
网站上有一个未解决的问题,请求此支持。一旦它进入框架,BT肯定会利用它。请thumbs up
此建议以帮助确定其优先顺序:https://github.com/dotnet/corefx/issues/2295
答案 1 :(得分:3)
不,它只支持XSLT 1.0。
但是已在uservoice上请求Support for XSLT2 or XSLT3
微软回复了
Tord Glad Nordahl(微软公司项目经理)回应·2017年3月18日 我们已将此请求转发给.NET团队。我们将保持开放。
如果BizTalk存在任何其他功能或问题,请务必在UserVoice
上提出或投票