XTSE1650:net.sf.saxon.trans.LicenseException:请求的功能(xsl:impor



我使用java和saxone-9.5.1.6.jar包含的构建路径,当运行时,在不同的时间得到这些错误。

stylesheet.xslt的第6行第169列xsl:import schema出错:XTSE1650:net.sf.saxon.trans.LicenseException:请求的功能(xsl:import schema)需要Saxon EE

第1行第1列出现错误SXXP0003:XML分析器报告错误:prolog中不允许有内容。javax.xml.transform.TransformerConfigurationException:未能编译样式表。检测到1个错误。

我在十六进制编辑器中打开.xslt文件,在开始时没有看到任何不同的字符and我在另一个项目中使用transformerfactory,但我遇到了任何错误。

检查tFactory的实现类是什么。我猜它可能是net.sf.saxon.TransformerFactoryImpl,基本上是Saxon HE版本。

当您像这样使用JAXP时,您会非常容易遇到配置问题,因为它加载类路径上的任何内容,或者受系统属性设置的影响,这些设置可能在您一无所知的应用程序部分中设置。

如果您的应用程序依赖于特定的功能,最好加载特定的TransformerFactory,例如tFactory=new com.saxonic.config.EnterpriseTransformerFactory()。

我不知道样式表是否希望根据模式验证源文档,但确实如此,请注意,这不是自动的:您可以在工厂上设置属性来实现这一点。

对于这种事情,我建议使用Saxon的s9api接口,而不是JAXP。JAXP接口是为XSLT1.0设计的,将它用于一些新的2.0功能(如模式感知)是一个真正的延伸:它是可以做到的,但您会不断遇到限制。

最新更新