Altova Mailing List Archives

Re: [xsl] Re: Identity transformation for XSLT 2.0

From: "G. Ken Holman" <gkholman@-------------------->
Date: 12/23/2007 6:57:00 PM
At 2007-12-23 23:43 +0530, Mukul Gandhi wrote:
On Dec 23, 2007 11:01 PM, Michael Kay <mike@xxxxxxxxxxxx> wrote:

> The fact that something can be coded in XSLT is not itself an argument not

> to include it in the standard function library. That argument can 
be used to

> show that you don't need a "+" operator, because people can always write

> "--".

I recently needed to do set difference operation in a 2.0 stylesheet,
using Saxon 9 (basic version). I was a bit surprised to find that
Saxon reported, "Unknown system function except()".

"except" is an operator, not a function.

The F&O spec defines this function
( Could you please
tell, why this built in function not implemented in Saxon 9.

As a workaround, I had to resort to $seq1[not(. = $seq2)] ...

The above is comparing _values_ of each node, not the identity of each node.

Using "$seq1 except $seq2" engages the function defined in the specification.

Note how is described as:

  op:except($parameter1 as node()*, $parameter2 as node()*) as node()*

I hope this helps.

. . . . . . . . Ken

Comprehensive in-depth XSLT2/XSL-FO1.1 classes: Austin TX,Jan-2008
World-wide corporate, govt. & user group XML, XSL and UBL training
RSS feeds:     publicly-available developer resources and training
G. Ken Holman                 mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Crane Softwrights Ltd.
Box 266, Kars, Ontario CANADA K0A-2E0    +1(613)489-0999 (F:-0995)
Male Cancer Awareness Nov'07
Legal business disclaimers:


These Archives are provided for informational purposes only and have been generated directly from the Altova mailing list archive system and are comprised of the lists set forth on Therefore, Altova does not warrant or guarantee the accuracy, reliability, completeness, usefulness, non-infringement of intellectual property rights, or quality of any content on the Altova Mailing List Archive(s), regardless of who originates that content. You expressly understand and agree that you bear all risks associated with using or relying on that content. Altova will not be liable or responsible in any way for any content posted including, but not limited to, any errors or omissions in content, or for any losses or damage of any kind incurred as a result of the use of or reliance on any content. This disclaimer and limitation on liability is in addition to the disclaimers and limitations contained in the Website Terms of Use and elsewhere on the site.