<refentry xmlns="http://docbook.org/ns/docbook"
          xmlns:xlink="http://www.w3.org/1999/xlink"
          xmlns:xi="http://www.w3.org/2001/XInclude"
          xmlns:exsl="http://exslt.org/common"
          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
          version="5.0" xml:id="exsl.node.set.available">
<refmeta>
<refentrytitle>exsl.node.set.available</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>exsl.node.set.available</refname>
<refpurpose>Is the test function-available('exsl:node-set') true?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<src:fragment xml:id="exsl.node.set.available.frag"><xsl:param name="exsl.node.set.available"> 
  <xsl:choose>
    <xsl:when exsl:foo="" xmlns:exsl="http://exslt.org/common"
      test="function-available('exsl:node-set') or
                       contains(system-property('xsl:vendor'),
                         'Apache Software Foundation')">1</xsl:when>
    <xsl:otherwise>0</xsl:otherwise>
  </xsl:choose>
</xsl:param>
</src:fragment>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If non-zero,
then the exsl:node-set() function is available to be used in
the stylesheet.
If zero, then the function is not available.
This param automatically detects the presence of
the function and does not normally need to be set manually.</para>

<para>This param was created to handle a long-standing
bug in the Xalan processor that fails to detect the
function even though it is available.</para>

</refsection>
</refentry>
