BizTalk 2020 XSLT 3.0 - 样式表编译期间报告错误
Posted
技术标签:
【中文标题】BizTalk 2020 XSLT 3.0 - 样式表编译期间报告错误【英文标题】:BizTalk 2020 XSLT 3.0 - Errors were reported during stylesheet compilation 【发布时间】:2020-06-21 21:30:56 【问题描述】:我正在 BizTalk 2020 中尝试我的第一个 XSLT 3.0,并在 Visual Studio 2019 中进行“测试地图”。 以下是来自输出窗口:
Invoking component...
C:\Users\Administrator\source\repos\SchemaLesson\MapXSLTDemos\Map_FlightReservation_to_FlightData_3.0.btm:
The compilation is using the CustomXslt and CustomExtensionXml tags to generate the output. The map content is ignored.
TestMap used the following file:
<file:///C:\Users\Administrator\AppData\Local\Temp\inputfile.xml> as input to the map.
C:\Users\Administrator\source\repos\SchemaLesson\MapXSLTDemos\Map_FlightReservation_to_FlightData_3.0.btm:
error btm1050: XSL transform error: Unable to write output instance to the following <file:///C:\Users\Administrator\AppData\Local\Temp\_MapData\MapXSLTDemos\Map_FlightReservation_to_FlightData_3.0_output.xml>.
Errors were reported during stylesheet compilation
Test Map failure for map file <file:///C:\Users\Administrator\source\repos\SchemaLesson\MapXSLTDemos\Map_FlightReservation_to_FlightData_3.0.btm>.
The output is stored in the following file: <file:///C:\Users\Administrator\AppData\Local\Temp\_MapData\MapXSLTDemos\Map_FlightReservation_to_FlightData_3.0_output.xml>
Component invocation succeeded.
对我来说,问题是存在错误 [正如它所说的“在样式表编译期间报告了错误”],但它们没有显示在输出窗口中。它们是否在输出窗口中未列出的某个神秘文件上写入磁盘?我不是要解决我的具体错误,所以我没有发布代码。我想知道如何查看“报告”的错误。
从自定义网格中,我转到属性窗口并将“XSLT 转换引擎”设置为“Saxon 9 HE”。
类似的问题是asked here。但是答案解决了具体的代码问题,而不是告诉人们如何找到错误。
【问题讨论】:
能否在 Visual Studio 中打开 XSLT,并使用 XML 菜单选择 Run XSLT with debugging? docs.microsoft.com/en-gb/biztalk/core/technical-reference/… 处的 MS 接口文档没有明确说明在Load
调用或 Transform
调用期间错误会发生什么,因此不清楚 Saxon 是否或如何报告任何错误在样式表编译或执行期间传播或报告。如果您从命令行使用Transform.exe
运行.NET 版本的Saxon 9,它将向控制台的错误流saxonica.com/html/documentation9.8/using-xsl/commandline 报告错误。
@Dijkgraaf - 起初这确实让我看到了我的第一个错误。但显然我还有其他无法识别的错误。在我修复了第一个并尝试逐步浏览我的地图后,单击 F10 或 F11 似乎正在开始部署,但失败了。所以这似乎完全是另一个问题。 Martin 我今晚可能会试试 Saxonica 命令行。我希望这不是必需的,Visual Studio 会处理所有事情。
@MartinHonnen - 我能够使用 Saxonica 命令行找到错误 - 一旦我安装了它 (***.com/questions/60627181/…)。我认为如果 Microsoft 没有捕获这些错误并在输出窗口中显示它们,这是一个错误。
张贴在 MSDN 论坛上,看看他们是否会承认这是一个错误并可能在未来的更新中修复。 social.msdn.microsoft.com/Forums/en-US/…
【参考方案1】:
您需要关注这篇文章: Create custom XSLT transform
-
转到
c:\Program Files (x86)\Microsoft BizTalk Server\Developer Tools\CustomTransform.xml
复制TypeAssemblyQualifiedName
的值
打开 regedit.exe 并在以下注册表中创建字符串值“XsltEngine”:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\BizTalk Server\3.0\Configuration
32 位主机实例:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\BizTalk Server\3.0\Configuration
-
粘贴
TypeAssemblyQualifiedName
的值作为值
重启服务器
【讨论】:
这个问题是 7 个月前的问题,我的 XSLT 出现错误,但 Visual Studio 没有显示实际错误。你是说你的答案解决了这个问题吗?如果 XSLT 代码正确,我可以毫无问题地运行 Saxon XSLT。 对不起,我现在从 Biz 20 开始 :) 所以我读到这个问题已通过累积更新 1 修复。support.microsoft.com/en-gb/help/4538666/… ypu 可以找到这些解决方案:修复:测试地图不提供有关 XSLT 样式表中错误的详细信息 酷,我还没有检查累积更新。 我尝试安装和工作。你可以在这里下载:microsoft.com/en-us/download/details.aspx?id=101582以上是关于BizTalk 2020 XSLT 3.0 - 样式表编译期间报告错误的主要内容,如果未能解决你的问题,请参考以下文章
BizTalk Server 2016 映射中是不是支持 XSLT 2.0 或 3.0?