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

Subject: Re: [xsl] Re: Identity transformation for XSLT 2.0
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Sun, 23 Dec 2007 13:55:37 -0500
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
(http://www.w3.org/TR/xquery-operators/#func-except). 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 http://www.w3.org/TR/xquery-operators/#func-except 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. http://www.CraneSoftwrights.com/s/ Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995) Male Cancer Awareness Nov'07 http://www.CraneSoftwrights.com/s/bc Legal business disclaimers: http://www.CraneSoftwrights.com/legal

Current Thread