Saxon-HE 9.5.1-6 中缺少 SaxonXQDataSource 类

4
最新的Saxon-HE 9.5.1-6 maven存储库中缺少SaxonXQDataSource类。该类存在于Saxaon-HE 9.5.1.4中。实际上,整个net.sf.saxon.xqj包似乎在最新的9.5.1-6版本中丢失了。那个类是否被移动和重命名到其他地方了?
3个回答

3
由于有些关心此事的人指出XQJ许可证在严格意义上不是“开源”的,因此我们故意从主要的saxon-he JAR文件中删除了XQJ包;对于开源狂热者来说,它无法符合资格,因为Oracle(许可方)坚持接口不能被修改,并且除非实现通过所有兼容性测试,否则不能将其与实现一起分发。虽然这些规则可能对你和我来说似乎很合理,但对于一些人(例如某些Lunix分布)来说,这足以偏离开源原则,使整个Saxon-HE不能获得他们的开源认可。
我们本意是将XQJ支持作为单独的模块继续在Saxon中进行分发,以供需要的人使用。但是,我认为在9.5.1.6版本构建中(当然还包括Maven上传),我们做错了,这是我们需要修复的问题。同时,它仍然是Saxon-PE和Saxon-EE的一部分(您可以随时使用这些JAR文件,无需许可证,只要您不尝试使用PE或EE特定的功能)。

2
如第一条答案所述,XQJ已经被移动到单独的jar文件中。但是,在Saxon-HE中,它仍然可以在通常的位置(即SourceForge和Maven)中找到。
对于maven,文件名为Saxon-HE-9.5.1-6-xqj.jar。
请访问Saxon-HE Maven存储库: http://repo1.maven.org/maven2/net/sf/saxon/Saxon-HE/9.5.1-6/

问题在于我正在使用的maven pom.xml文件具有以下依赖项: <dependency> <groupId>net.sf.saxon</groupId> <artifactId>Saxon-HE</artifactId> <version>9.5.1-6</version> </dependency> 它没有下载Saxon-HE-9.5.1-6 XQJ jar。您是否知道是否有仅用于XQJ的maven依赖项? - Tom
我不太确定它是如何工作的。我会调查一下并回复你。 - ond1
ond1你好,你找到了最新的Saxon HE以及最新的XQJ依赖包通过maven下载的方法吗?你解决了这个问题吗? - Tom
1
抱歉回复晚了。您应该能够在依赖项中指定所需的jar文件分类器。请参见:https://dev59.com/0lLTa4cB1Zd3GeqPZliQ - ond1
1
如果使用Gradle,可以将带有分类器的Maven依赖项声明为compile 'net.sf.saxon:Saxon-HE:9.5.1-6:xqj' - Going Bananas
这对你真的有用吗?我尝试使用带有<classifier>xqj</classifier>的Saxon版本9.8.0-14,并且可以通过import com.saxonica.xqj.SaxonXQDataSource;访问DataSource。但是,在运行时,我收到了运行时错误:java.lang.NoClassDefFoundError: net/sf/saxon/om/SpaceStrippingRule。我想这是因为它试图查找net/sf/saxon/而实际上是com/... - Vegaaaa

0

升级Saxon-HE至9.5以上版本需要完成两件事。

对于Gradle,在compile "net.sf.saxon:Saxon-HE:$saxonHeVersion"下一行添加compile "net.sf.saxon:Saxon-HE:$saxonHeVersion:xqj"。对于Maven,您需要使用<classifier>xqj<classifier>

在Java代码中,将import net.sf.saxon.xqj.SaxonXQDataSource;更改为import com.saxonica.xqj.SaxonXQDataSource


这对你真的有用吗?我尝试使用带有<classifier>xqj</classifier>的Saxon版本9.8.0-14,并且我可以通过import com.saxonica.xqj.SaxonXQDataSource;访问DataSource。然而,在运行时,我遇到了运行时错误:java.lang.NoClassDefFoundError: net/sf/saxon/om/SpaceStrippingRule。我猜是因为它尝试查找net/sf/saxon/而它实际上是com/... - Vegaaaa
它对我真的很有效,我不知道你可能还有什么其他问题。 - Michal Kordas
我不知道。我按照你说的更新了Maven仓库,没有做其他操作,但是即使重新构建项目后仍然出现了错误。因此我使用版本9.5.1-4。 - Vegaaaa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接