2015-05-07 39 views
-3

我有一个要求使用Saxon processor.I才知道,saxon有各种版本像 HOME, PROFESSIONAL and ENTERPRISE调用Java功能XquerySAXON - 调用外部Java函数XQuery中

我要寻找一个开源edition这可以帮助我来调用external java functions in xquery

有人可以帮助我的示例代码?

回答

2

如果你回去撒克逊9.1 B可以做到这一点的开源版本。从9.2开始,引入HE,PE和EE版本,您需要使用商业版本PE或EE中的一种直接调用Java(使用自反扩展函数)。通过HE,您可以实现集成扩展功能http://saxonica.com/html/documentation/extensibility/integratedfunctions/

+0

感谢马丁的回应。如果有,请发布示例代码。这对我很有帮助。 –

+0

我挂的文件具有类似http://saxonica.com/html/documentation/extensibility/integratedfunctions/ext-simple-J.html和http://saxonica.com/html/documentation/extensibility/integratedfunctions/ext例子 - 满J.html。一个简单的例子调用自反扩展函数也从文档中获取:'declare namespace math =“java:java.lang.Math”; $(4,9,16,25) return math:sqrt($ d)'。 –

+0

我想它和它的工作,但即时寻找它使用撒克逊9.1B调用外部方法代码.. –

1

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

使用开源版本(Saxon HE),您只能使用必须使用Java编写扩展功能类,实现Saxon的一些抽象类以及使用这些类来配置Saxon的机制。

随着其他版本,你也可以使用内省机制,在您使用一个命名空间与特定的格式,这将寻找匹配classpath中函数的QName的实现。

对于一个更可靠的方法,这也让你在选择的命名空间(它没有整理到任何实现细节)所有的自由,我建议上面的第一个。