2017-06-30 83 views
0

过去,BizTalk(和通常的.NET框架)不支持除1.0以外的任何XSLT版本。我们公司即将升级到BizTalk Server 2016年,我想知道是否有可能(和原生支持)使用XSLT 2.0或3.0所述的BizTalk Server版本自定义映射?BizTalk Server 2016映射中是否支持XSLT 2.0或3.0?

我知道这不太可能他们已经实现了这一点,但我一直在漫游互联网,我似乎无法找到这个问题的具体答案。

+1

对于.Net的XSLT> 1.0的通用答案是Saxon:http://www.saxonica.com/html/documentation/about/gettingstarted/gettingstarteddotnet.html。不知道BT 2016的本机支持,但考虑到您在英国电信拥有C#可供您使用,这提供了一种潜在的解决方法。当然,.Net的'XslCompiledTransform'现在只支持XSLT 1.0(在XSLT规范之外有几个MS插件)。 – JohnLBevan

+0

注释部分意味着不是(XSLT的搜索页面;首次出现):http://www.integrationusergroup.com/integration-not-monday-discussion-with-josh-twist/;但几乎不是这类信息的官方网站。 – JohnLBevan

+1

@JohnLBevan如果事实证明没有其他办法,我会仔细研究解决方法。感谢您的建议。 –

回答

2

不,它只支持XSLT 1.0。

然而,已经要求对UserVoice的看到Support for XSLT2 or XSLT3

而微软回应

托德很高兴诺达尔(项目经理,Microsoft公司)回应·2017年3月18日 我们已经转发此请求.NET团队。我们会保持这个开放。

如果有任何其他功能或问题与BizTalk,请务必在UserVoice

+3

不错的发现;仅供参考:这让我看看.net的建议,在这里你可以赞成这个选项:https://github.com/dotnet/corefx/issues/2295 – JohnLBevan

+1

如果它不完全清楚,这是一个.Net限制,而不是BizTalk :(。 –

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

再次感谢帮助我。他是正确的人,每个人都对这个建议进行投票,如果你想看到这一点添加! –

+1

好的发现,我不知道这是MSFT的立场在过去。谢谢你的分享! –