node-set or nodeset?

<oXygen/> general issues.
Posts: 2

node-set or nodeset?

Fri Sep 22, 2017 11:49 am

I have been using Oxygen with an old XSLT stylesheet for many years without issues, but when I revisited the stylesheet today, I suddenly get an error upon transformation of a XML file:

Code: Select all

Engine name: Xalan
Severity: fatal
Description: java.lang.NoSuchMethodException: For extension function, could not find method org.apache.xalan.lib.Extensions.nodeSet([ExpressionContext,] #RTREEFRAG).
Checked both static and instance methods.

The offending function is: <xsl:for-each select="xalan:node-set($temp)">

Changing it to: <xsl:for-each select="xalan:nodeset($temp)"> throws no error and seens to work as before.

I cannot find any documentaion on why and how this occurs and if this fix is "safe".

I suspect the problem arose after a system upgrade on the Mac I am using, but I cannot be sure.
Posts: 2459

Re: node-set or nodeset?

Fri Sep 22, 2017 3:59 pm


The confusion over the name of this extension function is due to the fact that each XSLT 1.0 processor implemented it differently.
I found an article and table that clarifies this: Understanding the node-set() Function by Jirka Kosek - Support for node-set() in XSLT processors

In short, if your xalan namespace prefix is indeed declared to indicate Xalan (xmlns:xalan="") then the name of the function is nodeset(). Otherwise, if the namespace is (EXSLT), node-set() should be used.

Adrian Buza
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
Posts: 2

Re: node-set or nodeset?

Fri Sep 22, 2017 6:27 pm

Ok, thank you for the clarification.

Xalan is the processor in use by the host system, so I need to code for that.
Not sure if they support EXSLT.

Strange though that node-set has worked for years with the xalan prefix.

Anyway, thanks again.

Return to “Other Issues”

Who is online

Users browsing this forum: No registered users and 4 guests