使Saxon XSLT引擎更宽松类型不匹配错误

问题描述

我正在将大量XSL从本机XSL 1.0语法转换为与Saxon-XSL3兼容。

我通常会遇到的常见合并错误是由于类型不匹配引起的,例如:

XPTY0004:的第一个参数的必需项类型 fn:string-length()是xs:string;提供的值1不 比赛。提供的值是xs:integer

类型

当我使用MSXML 6.0引擎时,从未发生这种合并错误

我的问题是-我可以以某种方式将Saxon引擎配置为更宽容并忽略此类错误吗?

谢谢!

解决方法

通过在version="1.0"元素上指定xsl:stylesheet,可以选择以1.0向后兼容模式运行。但是我的建议是继续前进,并进行更改,以进行更严格的2.0+类型检查。宽松的1.0规则会导致许多难以发现的错误。