我需要使用Xquery
处理器调用Saxon
中的java函数。我发现saxon
有各种版本,如
HOME, PROFESSIONAL and ENTERPRISE
。
我正在寻找一个可以帮助我调用edition
的开源external java functions in xquery
。
有人可以帮我提供示例代码吗?
答案 0 :(得分:2)
如果你回到Saxon 9.1 B,你可以在开源版本中完成。从9.2和HE,PE和EE版本的引入,你需要一个商业版PE或EE直接调用Java(使用反身扩展函数)。使用HE,您可以实现集成扩展功能http://saxonica.com/html/documentation/extensibility/integratedfunctions/。
答案 1 :(得分:1)
您可以在所有版本的Saxon中调用Java扩展函数。
使用开源版本(Saxon HE),您只能使用必须在Java中编写扩展函数类的机制,从Saxon实现一些抽象类,并使用这些类配置Saxon。
对于其他版本,您还可以使用内省机制,在该机制中使用具有特定格式的命名空间,该机制将查找与类路径中的QName函数匹配的实现。
对于一个更强大的方法,它也让你可以自由选择命名空间(而不是将其整理到任何实现细节),我推荐上面的第一个。