2017-06-30 85 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的立場在過去。謝謝你的分享! –