[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: XSL Processing to avoid repetitions - Part 2

Subject: Re: XSL Processing to avoid repetitions - Part 2
From: Michael Kay <mike@xxxxxxxxxxxx>
Date: Thu, 17 Jun 2010 10:06:01 +0100
Re:  XSL Processing to avoid repetitions - Part 2
Saxon-HE 9.2 doesn't recognize the function exslt:node-set(). It's actually a no-op in XSLT 2.0, so a workaround is to add the following to your stylesheet:

<xsl:function name="exslt:node-set" xmlns:exslt="http://exslt.org/common" as="node()?>
<xsl:param name="node" as="node()?/>
<xsl:sequence select="$node"/>

If you don't want to modify the docbook stylesheets you could put this in a stylesheet that imports docbook.xsl, and then use your importing stylesheet as the entry point.

I don't have detailed knowledge of the status, but although the XSLT 2.0 docbook stylesheets are still described as expermental, I get the impression that many people are using them without problems.

Michael Kay

On 17/06/2010 09:48, Fabien Tillier wrote:
So, now I have an XSL Stylesheet that did work nicely.
My problem is that I am using the docbook stylesheets, which are expecting an XSLT processor 1.0.
I have used Kernow for testing (so Saxon) and then added Saxon (9) to my java app.
Sadly, my app failed when transforming my docbook xml to html because my XSLT processor is now saxon, and not the default 1.0 one (or so I assume it is the case).
I know the XSLT 2.0 version of the DB stylesheets are experimental, thus I cannot use them (or so it seems).
I have two options.
	- change the XSL provided to a version 1.0 (thus, as I just understood the 2.0 fashion, and version 1.0 seems a lot more complicated, I am a bit afraid)
	- use a different processor "on demand" (which seems complicated too), either Java internal Xalan or saxon.

Or I may be completely wrong (when using saxon in my app, the message I get is
Error on line 357 of docbook.xsl:
   Cannot find a matching 1-argument function named {http://exslt.org/common}node-set()
; SystemID: jndi:/localhost/CerepWeb/xsl/docBook/xsl/html/docbook.xsl; Line#: 357; Column#: -1
net.sf.saxon.trans.XPathException: Cannot find a matching 1-argument function named {http://exslt.org/common}node-set()

Any help from you, guys ?
Best regards,

-----Message d'origine----- De : Fabien Tillier [mailto:f.tillier@xxxxxxxx] Envoyi : mercredi 16 juin 2010 16:37 @ : xsl-list@xxxxxxxxxxxxxxxxxxxxxx Objet : RE: XSL Processing to avoid repetitions

Yes !
Sorry for being so blind.
Your code works. It is just (I think) that I was messing with the way to set the "fields"
Thanks a lot
Best regards,

-----Message d'origine----- De : Martin Honnen [mailto:Martin.Honnen@xxxxxx] Envoyi : mercredi 16 juin 2010 16:30 @ : xsl-list@xxxxxxxxxxxxxxxxxxxxxx Objet : Re: XSL Processing to avoid repetitions

Fabien Tillier wrote:

Thanks for your answer, but it doesn't work for me.
I have resent a message with my real data.
Maybe your solution would work if I don't change it to fit my data :)
Andrew already suggested what to do, you simply can nest for-each-group e.g.

    <xsl:for-each-group select="/Results/Row" group-by="CONTRACT">
        <xsl:value-of select="current-grouping-key()"/>
          <xsl:for-each-group select="current-group()" group-by="CODE">
              <xsl:value-of select="current-grouping-key()"/>
                <xsl:for-each select="current-group()/NUMERO">
                    <xsl:value-of select="."/>

Current Thread


Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
First Name
Last Name
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.