SAXON - 在 Xquery 中调用外部 java 函数

SAXON - Calling external java functions in Xquery

我需要使用 SaxonXquery 中调用 java 函数 processor.I 了解到 saxon 有多种版本,例如 HOME, PROFESSIONAL and ENTERPRISE

我正在寻找可以帮助我调用 external java functions in xquery 的开源 edition

有人可以帮我提供示例代码吗?

如果你回到 Saxon 9.1 B,你可以在开源版本中进行。自 9.2 和引入 HE、PE 和 EE 版本后,您需要商业版 PE 或 EE 之一才能直接调用 Java(使用自反扩展功能)。使用 HE,您可以实现集成扩展功能 http://saxonica.com/html/documentation/extensibility/integratedfunctions/.

您可以在所有版本的 Saxon 中调用 Java 扩展函数。

对于开源版本 (Saxon HE),您只能使用必须在 Java 中编写扩展函数 class 的机制,实现一些抽象 classes来自 Saxon,并用这些配置 Saxon。

对于其他版本,您还可以使用内省机制,在其中使用具有特定格式的命名空间,它将在 class 路径中查找与函数 QName 匹配的实现。

对于更健壮的方法,它还可以让您自由选择命名空间(而不是将其整理到任何实现细节),我推荐上面的第一个。