Joern Turner
Joern Turner

Reputation: 99

migrate from SaxonHE 9.6 to SaxonHE 9.7

i have an xforms engine working on SaxonHE 9.6.0-10 and my tests run green. Tried to migrate to latest version 9.9.1-5 for the last two working days but with no luck.

Narrowing down the problem the first issues come with version 9.7 where i get compile errors for the classes:

net.sf.saxon.expr.Container

net.sf.saxon.functions.SystemFunctionCall

These classes seem to have removed in 9.7 but i can't figure out how to replace them.

When switching to 9.9.1-5 also this class seem to have gone:

net.sf.saxon.functions.StandardFunction

Tried documentation of changes on saxonica.com but did not reveal anything to me.

Problem area is a FunctionLibrary i need to provide all the XForms-specific functions. Code for that libary is here: XFormsFunctionLibrary.java

it's superclass here: XPathFunctionLibrary.java

and well as my base function class here: XFormsFunction.java

Any hints how to replace those classes or to rewrite those classes to conform to latest release are highly appreciated as i've run out of ideas - thanks Joern

Upvotes: 1

Views: 76

Answers (1)

Michael Kay
Michael Kay

Reputation: 163262

You've obviously been diving pretty deep into the Saxon internals, and at that level things do tend to change a bit from one release to the next.

The Container object was part of the implementation of Saxon's internal expression tree, and there is some discussion of the way this was redesigned in Saxon 9.7 in a blog post: http://dev.saxonica.com/blog/mike/2015/09/parent-pointers-in-the-saxon-expression-tree.html

The representation of system functions in Saxon was changed because of the change in the data model in XPath 3.0 whereby functions become first class values in the data model. Again, there is a 2015 blog post that explains the motivation for the changes: http://dev.saxonica.com/blog/mike/2015/02/functions-function-calls-function-items.html

Your question reads like a general plea for help rather than a specific request for information. That makes it rather badly suited to the StackOverflow protocol. It's probably better to raise such matters on the Saxonica forums at http://saxonica.plan.io, which are more suited to open-ended discussion rather than a rigid question/answer format. Having said that, you obviously got your code working by diving into the Saxon code and developing an understanding of how it works, and you're probably going to have to do the same again. Hopefully the changes we have made make your integration easier rather than more difficult.

Upvotes: 1

Related Questions