2

过去,BizTalk(以及一般的 .NET 框架)不支持除 1.0 之外的任何 XSLT 版本。我们公司即将升级到 BizTalk Server 2016,我想知道是否可以(并且本机支持)在所述 BizTalk Server 版本中使用 XSLT 2.0 或 3.0 进行自定义映射?

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

4

2 回答 2

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-网络框架/

我们没有实现 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 方解决方案:例如 Saxon

也就是说,在 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

于 2017-06-30T08:11:23.263 回答
4

不,它只支持 XSLT 1.0。

然而,在它退役之前,它已在用户语音上请求过

微软回应了

Tord Glad Nordahl(微软公司项目经理)回复 · 2017 年 3 月 18 日 我们已将此请求转发给 .NET 团队。我们将保持开放。

但是,XSLT 3 是 BizTalk 2020 的一项功能,请参阅BizTalk Server 2020 中的新增功能

XSLT 3.0 用于运行时映射执行的新可扩展模型,开箱即用的接线可与 Saxon XSLT3.0 一起使用。

于 2017-06-30T08:08:34.800 回答