Xalan nodeset extension in XSLT debugger

Here should go questions about transforming XML with XSLT and FOP.
wmillows
Posts: 1
Joined: Wed Dec 21, 2005 10:34 pm

Xalan nodeset extension in XSLT debugger

Post by wmillows »

Hi,

I am evaluating Oxygen 6.2. I am trying to debug
a xslt with nodeset extension. But, I've got the following error. I am using
Xalan 2.7.0. I've copied bsf.jar and js.jar to Oxygen/lib dir.

Description: The URI http://xml.apache.org/xalan does not identify an external Java class
sorin_ristache
Posts: 4141
Joined: Fri Mar 28, 2003 2:12 pm

Post by sorin_ristache »

Hello,

That error message is generated when you run a stylesheet referencing a Xalan extension with the Saxon processor. The nodeset function is a built-in extension so you don't need additional jars. Just select Xalan instead of Saxon in the XSLT engine combo box of the control toolbar. For example the following stylesheet applied to any XML document

Code: Select all

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:xalan="http://xml.apache.org/xalan" exclude-result-prefixes="xalan">
<xsl:template match="/">
<out>
<xsl:variable name="rtf">
<docelem>
<elem1>
<elem1a>ELEMENT1A</elem1a>
<elem1b>,ELEMENT1B</elem1b>
</elem1>
<elem2>
<elem2a>ELEMENT2A</elem2a>
</elem2>
</docelem>
</xsl:variable>
<xsl:for-each select="xalan:nodeset($rtf)/docelem//*">
<xsl:value-of select="name(.)"/>
<xsl:text>,</xsl:text>
</xsl:for-each>
</out>
</xsl:template>
</xsl:stylesheet>
should give the output:

Code: Select all

<out>elem1,elem1a,elem1b,elem2,elem2a,</out>
Regards,
Sorin
Post Reply