BizTalk Server 2016 映射中是不是支持 XSLT 2.0 或 3.0?
Posted
技术标签:
【中文标题】BizTalk Server 2016 映射中是不是支持 XSLT 2.0 或 3.0?【英文标题】:Is there XSLT 2.0 or 3.0 support in BizTalk Server 2016 mapping?BizTalk Server 2016 映射中是否支持 XSLT 2.0 或 3.0? 【发布时间】:2017-12-04 02:20:38 【问题描述】:过去,BizTalk(以及一般的 .NET 框架)不支持除 1.0 之外的任何 XSLT 版本。我们公司即将升级到 BizTalk Server 2016,我想知道是否可以(并且本机支持)在所述 BizTalk Server 版本中使用 XSLT 2.0 或 3.0 进行自定义映射?
我知道他们不太可能实现了这一点,但我一直在互联网上漫游,似乎找不到这个问题的具体答案。
【问题讨论】:
.Net 的 XSLT >1.0 的通用答案是 Saxon:saxonica.com/html/documentation/about/gettingstarted/…。不确定 BT 2016 的本机支持,但鉴于您在 BT 中可以使用 C#,这提供了一个潜在的解决方法。当然 .Net 的XslCompiledTransform
目前只支持 XSLT 1.0(在 XSLT 规范之外还有一些 MS 插件)。
评论部分暗示不是(XSLT 的搜索页面;第一次出现):integrationusergroup.com/…;但几乎没有此类信息的官方网站。
@JohnLBevan 如果事实证明没有其他方法,我将仔细研究解决方法。感谢您的建议。
一篇旧帖子,但这是 MS 不实施 v2 支持的理由......他们是否重新考虑这些年来/现在他们落后 2 个版本 & XSLT 仍然很强大,谁知道. blogs.msdn.microsoft.com/dareobasanjo/2004/05/13/…
@JohnLBevan 是的,我曾经读过那篇文章。这也是我提出问题的主要原因。从那以后,他们的声明似乎没有更新。
【参考方案1】:
不,它只支持 XSLT 1.0。
但是在它退役之前已经在用户语音上请求过
微软回应了
Tord Glad Nordahl(微软公司项目经理)回复了 · 2017 年 3 月 18 日 我们已将此请求转发给 .NET 团队。我们将保持开放。
但是,XSLT 3 是 BizTalk 2020 的一项功能,请参阅 What's New in BizTalk Server 2020。
XSLT 3.0 用于运行时映射执行的新可扩展模型,可与 Saxon XSLT3.0 一起使用。
XSLT Transform Engine XSLT custom transform implementation
【讨论】:
不错的发现;仅供参考:这使我查看了 .net 建议,您可以在其中竖起大拇指:github.com/dotnet/corefx/issues/2295 如果不完全清楚,这是 .Net 限制,而不是 BizTalk :(.【参考方案2】: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 转换。
解决方法:使用第 3 方解决方案:例如撒克逊人
也就是说,在 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
【讨论】:
再次感谢您帮助我。他是对的人,如果你想在某个时候看到这个添加,每个人都会对这个建议投票! 很好的发现,我不知道这是 MSFT 过去的观点。谢谢分享!以上是关于BizTalk Server 2016 映射中是不是支持 XSLT 2.0 或 3.0?的主要内容,如果未能解决你的问题,请参考以下文章
当第 3 方系统使用 REST API 时,BizTalk Server 是不是支持通过 Azure 文件共享交换大文件?
BizTalk 中的 FHIR JSON 到 ORU HL7 映射