ÿþ<?xml version="1.0" encoding="UTF-16"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <style type="text/css">html{background-color:azure} body{font-family:Verdana, Arial, Helvetica, san-serif; background-color:azure} code{font-size:115%} h2, h3, h4{margin-top: 1.5em} table, tr, th, td{border: 1px solid silver; margin:1em 0em 1em 0em} tr{background-color:seashell} tr.th{background-color:silver} tr.altcolor{background-color:white} .negative{color:red} /* toc */ ol.itoc, ul.itoc{list-style-type:none;margin-top: 0em; margin-bottom: 0em} .itoc li span span{font-size: 80%} /* none navy */ #itoc a:link {color:navy; background-color: transparent; text-decoration: none} #itoc a:visited {color: navy; background-color: transparent; text-decoration: none} #itoc a:hover {color: red; background-color: transparent; text-decoration: underline} #itoc a:active {color: white; background-color: blue; text-decoration: none} #itoc a:focus {color: white; background-color: blue; text-decoration: none} .altc{color: black; background-color:#F5F5F5} /*white smoke*/ h2 span, h3 span, h4 span, h5 span, h6 span{font-size:80%}</style> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>Elements and functions available in Microsoft, MSXML 3</title> </head> <body> <p> <small>Report based on <a href="http://www.xmlplease.com/element-function-available.xsl">element-function-available.xsl</a> <br/>Report generated 2008-10-21</small> </p> <h1>Microsoft (MSXML 3): Elements and Functions Available</h1> <p> <big>XSLT 1.0, <a href="http://www.microsoft.com">http://www.microsoft.com</a> </big> </p> <ul id="itoc" class="itoc"> <li> <span class="altc"> <span>1. </span> <a href="#s1">The XSLT stylesheet behind the report</a> </span> </li> <li> <span> <span>2. </span> <a href="#s2">XSLT and XPath</a> </span> <ul class="itoc"> <li> <span class="altc"> <span>2.1 </span> <a href="#s2.1">XSLT/XPath 2.0 Functions</a> </span> </li> <li> <span> <span>2.2 </span> <a href="#s2.2">XSLT Elements</a> </span> <ul class="itoc"> <li> <span class="altc"> <span>2.2.1 </span> <a href="#s2.2.1">Warning</a> </span> </li> </ul> </li> </ul> </li> <li> <span> <span>3. </span> <a href="#s3">User-defined XSLT functions</a> </span> </li> <li> <span class="altc"> <span>4. </span> <a href="#s4">Saxon Extensions</a> </span> <ul class="itoc"> <li> <span> <span>4.1 </span> <a href="#s4.1">Saxon Extension Functions</a> </span> </li> <li> <span class="altc"> <span>4.2 </span> <a href="#s4.2">Saxon Extension Elements</a> </span> </li> </ul> </li> <li> <span> <span>5. </span> <a href="#s5">EXSLT Extensions</a> </span> <ul class="itoc"> <li> <span class="altc"> <span>5.1 </span> <a href="#s5.1">EXSL Dates and Times Functions</a> </span> </li> <li> <span> <span>5.2 </span> <a href="#s5.2">EXSL Dates and Times Elements</a> </span> </li> <li> <span class="altc"> <span>5.3 </span> <a href="#s5.3">EXSL Dynamic Functions</a> </span> </li> <li> <span> <span>5.4 </span> <a href="#s5.4">EXSL Common Functions</a> </span> </li> <li> <span class="altc"> <span>5.5 </span> <a href="#s5.5">EXSL Common Elements</a> </span> </li> <li> <span> <span>5.6 </span> <a href="#s5.6">EXSL Functions Elements</a> </span> </li> <li> <span class="altc"> <span>5.7 </span> <a href="#s5.7">EXSL Math Functions</a> </span> </li> <li> <span> <span>5.8 </span> <a href="#s5.8">EXSL Random Functions</a> </span> </li> <li> <span class="altc"> <span>5.9 </span> <a href="#s5.9">EXSL Regular Expressions Functions</a> </span> </li> <li> <span> <span>5.10 </span> <a href="#s5.10">EXSL Sets Functions</a> </span> </li> <li> <span class="altc"> <span>5.11 </span> <a href="#s5.11">EXSL String Functions</a> </span> </li> </ul> </li> </ul> <h2 id="s1"> <span>1.</span> The XSLT stylesheet behind the report</h2> <p>With the help of the XSLT functions <code>element-available()</code> and <code>function-available()</code>, the XSLT stylesheet, <a href="http://www.xmlplease.com/element-function-available.xsl">element-function-available.xsl</a>, tests:</p> <ol> <li> <p>If instruction elements in XSLT and functions in XSLT and XPath are available in the XSLT processor.</p> </li> <li> <p>If EXSLT extensions are available.</p> </li> <li> <p>If proprietary Saxon extension instruction elements and functions are available in Saxon processors.</p> </li> </ol> <p> <strong>Note that:</strong> </p> <ul> <li> <p>AltovaXML supports no extensions of any kind. If the transformation takes place from inside an ordinary programming language the parameter method can help AltovaXML out.</p> </li> <li> <p>Many XSLT 1.0 processors have their own proprietary sets of extensions which I am not testing. We test for Saxon extensions because of the importance of Saxon in XSLT 2.0.</p> </li> <li> <p>There are other extensions than elements and functions which we can't test with <code>element-available()</code> and <code>function-available()</code>. <a href="http://www.saxonica.com/documentation/extensions/intro.html">Saxon extensions</a>, e.g., include a few extension attributes and additional serialization parameters.</p> </li> <li> <p>If an XSLT processor has a "script" extension element, often named "prefix:script", the programming languages supported can be used from inside the XSLT stylesheet. This makes it easy to use the functions of those programming languages when needed.</p> </li> <li><p>In e.g. Saxon, it is fairly easy to make additional extension functions in <a href="http://www.saxonica.com/documentation/extensibility/functions.html">Java</a> or <a href="http://www.saxonica.com/documentation/extensibility/dotnetextensions.html">.Net</a>. Example: <a href="http://www.fgeorges.org/xslt/saxon-ext/">XSLT 2.0 extensions for Saxon</a> made by Florent Georges.</p></li> <li> <p>We are only testing what the processor reports. We must use the element and function for real to see if it really is implemented or not and if the implementation is in accordance with the specs.</p> </li> </ul> <h2 id="s2"> <span>2.</span> XSLT and XPath</h2> <h3 id="s2.1"> <span>2.1</span> XSLT/XPath 1.0 Functions</h3> <p>We can use <a href="http://www.w3.org/TR/xslt20/#function-function-available">function-available()</a> to test if an XSLT or XPath function or even an extension function is available in an XSLT processor. Right below we test for XSLT/XPath functions, later we are going to test for extension function.</p> <table cellspacing="0" cellpadding="5"> <tr class="th"> <th>No</th> <th>XSLT/XPath Function</th> <th>Available</th> <th>Spec</th> </tr> <tr> <td>1</td> <td> <a href="http://www.w3.org/TR/xpath#function-boolean">boolean</a> </td> <td>true</td> <td>XPath</td> </tr> <tr class="altcolor"> <td>2</td> <td> <a href="http://www.w3.org/TR/xpath#function-ceiling">ceiling</a> </td> <td>true</td> <td>XPath</td> </tr> <tr> <td>3</td> <td> <a href="http://www.w3.org/TR/xpath#function-concat">concat</a> </td> <td>true</td> <td>XPath</td> </tr> <tr class="altcolor"> <td>4</td> <td> <a href="http://www.w3.org/TR/xpath#function-contains">contains</a> </td> <td>true</td> <td>XPath</td> </tr> <tr> <td>5</td> <td> <a href="http://www.w3.org/TR/xpath#function-count">count</a> </td> <td>true</td> <td>XPath</td> </tr> <tr class="altcolor"> <td>6</td> <td> <a href="http://www.w3.org/TR/xslt#function-current">current</a> </td> <td>true</td> <td>XSLT</td> </tr> <tr> <td>7</td> <td> <a href="http://www.w3.org/TR/xslt#function-document">document</a> </td> <td>true</td> <td>XSLT</td> </tr> <tr class="altcolor"> <td>8</td> <td> <a href="http://www.w3.org/TR/xslt#function-element-available">element-available</a> </td> <td>true</td> <td>XSLT</td> </tr> <tr> <td>9</td> <td> <a href="http://www.w3.org/TR/xpath#function-false">false</a> </td> <td>true</td> <td>XPath</td> </tr> <tr class="altcolor"> <td>10</td> <td> <a href="http://www.w3.org/TR/xslt#function-format-number">format-number</a> </td> <td>true</td> <td>XSLT</td> </tr> <tr> <td>11</td> <td> <a href="http://www.w3.org/TR/xslt#function-function-available">function-available</a> </td> <td>true</td> <td>XSLT</td> </tr> <tr class="altcolor"> <td>12</td> <td> <a href="http://www.w3.org/TR/xslt#function-generate-id">generate-id</a> </td> <td>true</td> <td>XSLT</td> </tr> <tr> <td>13</td> <td> <a href="http://www.w3.org/TR/xpath#function-id">id</a> </td> <td>true</td> <td>XPath</td> </tr> <tr class="altcolor"> <td>14</td> <td> <a href="http://www.w3.org/TR/xslt#function-key">key</a> </td> <td>true</td> <td>XSLT</td> </tr> <tr> <td>15</td> <td> <a href="http://www.w3.org/TR/xpath#function-lang">lang</a> </td> <td>true</td> <td>XPath</td> </tr> <tr class="altcolor"> <td>16</td> <td> <a href="http://www.w3.org/TR/xpath#function-last">last</a> </td> <td>true</td> <td>XPath</td> </tr> <tr> <td>17</td> <td> <a href="http://www.w3.org/TR/xpath#function-local-name">local-name</a> </td> <td>true</td> <td>XPath</td> </tr> <tr class="altcolor"> <td>18</td> <td> <a href="http://www.w3.org/TR/xpath#function-name">name</a> </td> <td>true</td> <td>XPath</td> </tr> <tr> <td>19</td> <td> <a href="http://www.w3.org/TR/xpath#function-namespace-uri">namespace-uri</a> </td> <td>true</td> <td>XPath</td> </tr> <tr class="altcolor"> <td>20</td> <td> <a href="http://www.w3.org/TR/xpath#function-normalize-space">normalize-space</a> </td> <td>true</td> <td>XPath</td> </tr> <tr> <td>21</td> <td> <a href="http://www.w3.org/TR/xpath#function-not">not</a> </td> <td>true</td> <td>XPath</td> </tr> <tr class="altcolor"> <td>22</td> <td> <a href="http://www.w3.org/TR/xpath#function-number">number</a> </td> <td>true</td> <td>XPath</td> </tr> <tr> <td>23</td> <td> <a href="http://www.w3.org/TR/xpath#function-position">position</a> </td> <td>true</td> <td>XPath</td> </tr> <tr class="altcolor"> <td>24</td> <td> <a href="http://www.w3.org/TR/xpath#function-round">round</a> </td> <td>true</td> <td>XPath</td> </tr> <tr> <td>25</td> <td> <a href="http://www.w3.org/TR/xpath#function-starts-with">starts-with</a> </td> <td>true</td> <td>XPath</td> </tr> <tr class="altcolor"> <td>26</td> <td> <a href="http://www.w3.org/TR/xpath#function-string">string</a> </td> <td>true</td> <td>XPath</td> </tr> <tr> <td>27</td> <td> <a href="http://www.w3.org/TR/xpath#function-string-length">string-length</a> </td> <td>true</td> <td>XPath</td> </tr> <tr class="altcolor"> <td>28</td> <td> <a href="http://www.w3.org/TR/xpath#function-substring">substring</a> </td> <td>true</td> <td>XPath</td> </tr> <tr> <td>29</td> <td> <a href="http://www.w3.org/TR/xpath#function-substring-after">substring-after</a> </td> <td>true</td> <td>XPath</td> </tr> <tr class="altcolor"> <td>30</td> <td> <a href="http://www.w3.org/TR/xpath#function-substring-before">substring-before</a> </td> <td>true</td> <td>XPath</td> </tr> <tr> <td>31</td> <td> <a href="http://www.w3.org/TR/xpath#function-sum">sum</a> </td> <td>true</td> <td>XPath</td> </tr> <tr class="altcolor"> <td>32</td> <td> <a href="http://www.w3.org/TR/xslt#function-system-property">system-property</a> </td> <td>true</td> <td>XSLT</td> </tr> <tr> <td>33</td> <td> <a href="http://www.w3.org/TR/xpath#function-translate">translate</a> </td> <td>true</td> <td>XPath</td> </tr> <tr class="altcolor"> <td>34</td> <td> <a href="http://www.w3.org/TR/xpath#function-true">true</a> </td> <td>true</td> <td>XPath</td> </tr> <tr> <td>35</td> <td> <a href="http://www.w3.org/TR/xslt#function-unparsed-entity-uri">unparsed-entity-uri</a> </td> <td>true</td> <td>XSLT</td> </tr> </table> <h3 id="s2.2"> <span>2.2</span> XSLT Elements</h3> <p>The XSLTstandards (Recommendations) say (2.0 more clearly than 1.0) that <a href="http://www.w3.org/TR/xslt20/#function-element-available">element-available()</a> is about instruction elements. This means that non-instruction elements like declaration elements, e.g. xsl:strip-space and xsl:output, and sub-elements of instruction elements like xsl:when and xsl:sort can't be tested with <code>element-available()</code>. It is very confusing that non-instruction elements return "false" as if they don't exist.</p> <p>Some XSLT processors like AltovaXML 2008 and MSXML 3.0 return true for all implemented elements. XMLSpy 2008 returns true for all elements except for xsl:strip-space (not implemented) and xsl-preserve-space (not implemented) and xsl:transform (implemented). The last one must be a bug. <code>Element-available()</code>would be more useful and less confusing if also Saxon returned "true" for any element implemented.</p> <h4 id="s2.2.1"> <span>2.2.1</span> Warning</h4> <p>If <code>element-available()</code> returns "false" for all non-instruction elements, the "false" will be high-lighted with red but the elements are probably supported anyway. The "false" for non-instruction elements most often just means that the element is not an instruction element. If only some of the non-instruction elements return "false", as in AltovaXML, they are probably not available.</p> <p>If an instruction-element returns "false", we always have a real problem.</p> <table cellspacing="0" cellpadding="5"> <tr class="th"> <th>No</th> <th>XSLT Element</th> <th>Available</th> </tr> <tr> <td>1</td> <td> <a href="http://www.w3.org/TR/xslt#element-apply-imports">xsl:apply-imports</a> </td> <td>true</td> </tr> <tr class="altcolor"> <td>2</td> <td> <a href="http://www.w3.org/TR/xslt#element-apply-templates">xsl:apply-templates</a> </td> <td>true</td> </tr> <tr> <td>3</td> <td> <a href="http://www.w3.org/TR/xslt#element-attribute">xsl:attribute</a> </td> <td>true</td> </tr> <tr class="altcolor"> <td>4</td> <td> <a href="http://www.w3.org/TR/xslt#element-attribute-set">xsl:attribute-set</a> </td> <td>true (not instruction)</td> </tr> <tr> <td>5</td> <td> <a href="http://www.w3.org/TR/xslt#element-call-template">xsl:call-template</a> </td> <td>true</td> </tr> <tr class="altcolor"> <td>6</td> <td> <a href="http://www.w3.org/TR/xslt#element-choose">xsl:choose</a> </td> <td>true</td> </tr> <tr> <td>7</td> <td> <a href="http://www.w3.org/TR/xslt#element-comment">xsl:comment</a> </td> <td>true</td> </tr> <tr class="altcolor"> <td>8</td> <td> <a href="http://www.w3.org/TR/xslt#element-copy">xsl:copy</a> </td> <td>true</td> </tr> <tr> <td>9</td> <td> <a href="http://www.w3.org/TR/xslt#element-copy-of">xsl:copy-of</a> </td> <td>true</td> </tr> <tr class="altcolor"> <td>10</td> <td> <a href="http://www.w3.org/TR/xslt#element-decimal-format">xsl:decimal-format</a> </td> <td>true (not instruction)</td> </tr> <tr> <td>11</td> <td> <a href="http://www.w3.org/TR/xslt#element-element">xsl:element</a> </td> <td>true</td> </tr> <tr class="altcolor"> <td>12</td> <td> <a href="http://www.w3.org/TR/xslt#element-fallback">xsl:fallback</a> </td> <td>true</td> </tr> <tr> <td>13</td> <td> <a href="http://www.w3.org/TR/xslt#element-for-each">xsl:for-each</a> </td> <td>true</td> </tr> <tr class="altcolor"> <td>14</td> <td> <a href="http://www.w3.org/TR/xslt#element-if">xsl:if</a> </td> <td>true</td> </tr> <tr> <td>15</td> <td> <a href="http://www.w3.org/TR/xslt#element-import">xsl:import</a> </td> <td>true (not instruction)</td> </tr> <tr class="altcolor"> <td>16</td> <td> <a href="http://www.w3.org/TR/xslt#element-include">xsl:include</a> </td> <td>true (not instruction)</td> </tr> <tr> <td>17</td> <td> <a href="http://www.w3.org/TR/xslt#element-key">xsl:key</a> </td> <td>true (not instruction)</td> </tr> <tr class="altcolor"> <td>18</td> <td> <a href="http://www.w3.org/TR/xslt#element-message">xsl:message</a> </td> <td>true</td> </tr> <tr> <td>19</td> <td> <a href="http://www.w3.org/TR/xslt#element-namespace-alias">xsl:namespace-alias</a> </td> <td>true (not instruction)</td> </tr> <tr class="altcolor"> <td>20</td> <td> <a href="http://www.w3.org/TR/xslt#element-number">xsl:number</a> </td> <td>true</td> </tr> <tr> <td>21</td> <td> <a href="http://www.w3.org/TR/xslt#element-otherwise">xsl:otherwise</a> </td> <td>true (not instruction)</td> </tr> <tr class="altcolor"> <td>22</td> <td> <a href="http://www.w3.org/TR/xslt#element-output">xsl:output</a> </td> <td>true (not instruction)</td> </tr> <tr> <td>23</td> <td> <a href="http://www.w3.org/TR/xslt#element-param">xsl:param</a> </td> <td>true (not instruction)</td> </tr> <tr class="altcolor"> <td>24</td> <td> <a href="http://www.w3.org/TR/xslt#element-preserve-space">xsl:preserve-space</a> </td> <td>true (not instruction)</td> </tr> <tr> <td>25</td> <td> <a href="http://www.w3.org/TR/xslt#element-processing-instruction">xsl:processing-instruction</a> </td> <td>true</td> </tr> <tr class="altcolor"> <td>26</td> <td> <a href="http://www.w3.org/TR/xslt#element-sort">xsl:sort</a> </td> <td>true (not instruction)</td> </tr> <tr> <td>27</td> <td> <a href="http://www.w3.org/TR/xslt#element-strip-space">xsl:strip-space</a> </td> <td>true (not instruction)</td> </tr> <tr class="altcolor"> <td>28</td> <td> <a href="http://www.w3.org/TR/xslt#element-stylesheet">xsl:stylesheet</a> </td> <td>true (not instruction)</td> </tr> <tr> <td>29</td> <td> <a href="http://www.w3.org/TR/xslt#element-template">xsl:template</a> </td> <td>true (not instruction)</td> </tr> <tr class="altcolor"> <td>30</td> <td> <a href="http://www.w3.org/TR/xslt#element-text">xsl:text</a> </td> <td>true</td> </tr> <tr> <td>31</td> <td> <a href="http://www.w3.org/TR/xslt#element-transform">xsl:transform</a> </td> <td>true (not instruction)</td> </tr> <tr class="altcolor"> <td>32</td> <td> <a href="http://www.w3.org/TR/xslt#element-value-of">xsl:value-of</a> </td> <td>true</td> </tr> <tr> <td>33</td> <td> <a href="http://www.w3.org/TR/xslt#element-variable">xsl:variable</a> </td> <td>true</td> </tr> <tr class="altcolor"> <td>34</td> <td> <a href="http://www.w3.org/TR/xslt#element-when">xsl:when</a> </td> <td>true (not instruction)</td> </tr> <tr> <td>35</td> <td> <a href="http://www.w3.org/TR/xslt#element-with-param">xsl:with-param</a> </td> <td>true (not instruction)</td> </tr> </table> <h2 id="s3"> <span>3.</span> User-defined XSLT functions</h2> <p>Before we continue with extension elements and functions, let us not forget user-defined XSLT functions. That is collections of functions using named templates, the xsl:function element in XSLT 2.0, etc., and based on standard XSLT functionality.</p> <p>Here is a list of some collections of user-defined XSLT-functions:</p> <ol> <li> <p>Priscilla Walmsley's <a href="http://www.xsltfunctions.com/xsl/">The FunctX XSLT 2.0 Function Library</a>. Here we have many small examples of how to use XSLT/XPath functions and additional user-defined functions using the "functx" prefix.</p> </li> <li> <p>Peter Rushforth's <a href="http://sourceforge.net/projects/geofunctions/">Geofunctions</a>, an open-source library of XSLT / functions, templates, stylesheets and classes devoted to the processing of geographic data in XML.</p> </li> <li> <p>Dimitre Novatchev's <a href="http://fxsl.sourceforge.net/">FXSL</a>, "the functional programming library for XSLT".</p> </li> <li>Xia Li's function library that enables applications to use <a href="http://www.ibm.com/developerworks/xml/library/x-schemanode/">XPath 2.0 schema-related node tests</a>.</li> </ol> <h2 id="s4"> <span>4.</span> Saxon Extensions</h2> <p>Saxon's extensions are not necessarily relevant for Saxon only. If you use another XSLT processor, it can be nice to know what extensions are available in the trendsetting Saxon XSLT 2.0 processor. It can give you a hint for what to look or ask for in the XSLT processor you use. If some new XSLT 2.0 processor needs extensions, why not implement Saxon's?</p> <p>A few of Saxon's extensions are only available in the "SA" (schema-aware) version.</p> <h3 id="s4.1"> <span>4.1</span> Saxon Extension Functions</h3> <p>Many of <a href="http://www.saxonica.com/documentation/extensions/functions.html">Saxon's extension functions</a> are unique, adding functionality to XSLT.2.0</p> <table cellspacing="0" cellpadding="5"> <tr class="th"> <th>No</th> <th>Saxon Function</th> <th>Available</th> </tr> <tr style="color:red"> <td>1</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/analyze-string.html">saxon:analyze-string</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>2</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/base64binarytooctets.html">saxon:base64Binary-to-octets</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>3</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/base64binarytostring.html">saxon:base64Binary-to-string</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>4</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/call.html">saxon:call</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>5</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/columnnumber.html">saxon:column-number</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>6</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/compile-query.html">saxon:compile-query</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>7</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/compile-stylesheet.html">saxon:compile-stylesheet</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>8</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/decimaldivide.html">saxon:decimal-divide</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>9</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/deepequal.html">saxon:deep-equal</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>10</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/discarddocument.html">saxon:discard-document</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>11</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/eval.html">saxon:eval</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>12</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/evaluate.html">saxon:evaluate</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>13</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/evaluate-node.html">saxon:evaluate-node</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>14</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/expression.html">saxon:expression</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>15</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/file-last-modified.html">saxon:file-last-modified</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>16</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/find.html">saxon:find</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>17</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/for-each-group.html">saxon:for-each-group</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>18</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/format-dateTime.html">saxon:format-dateTime</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>19</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/format-number.html">saxon:format-number</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>20</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/function.html">saxon:function</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>21</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/generateid.html">saxon:generate-id</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>22</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/getpseudoattribute.html">saxon:get-pseudo-attribute</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>23</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/hassamenodes.html">saxon:has-same-nodes</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>24</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/hexBinarytooctets.html">saxon:hexBinary-to-octets</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>25</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/hexBinarytostring.html">saxon:hexBinary-to-string</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>26</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/highest.html">saxon:highest</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>27</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/index.html">saxon:index</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>28</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/in-summer-time.html">saxon:in-summer-time</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>29</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/is-whole-number.html">saxon:is-whole-number</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>30</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/item-at.html">saxon:item-at</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>31</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/last-modified.html">saxon:last-modified</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>32</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/leading.html">saxon:leading</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>33</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/linenumber.html">saxon:line-number</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>34</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/lowest.html">saxon:lowest</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>35</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/namespace-node.html">saxon:namespace-node</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>36</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/stream.html">saxon:stream</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>37</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/octetstobase64Binary.html">saxon:octets-to-base64Binary</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>38</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/octetstohexBinary.html">saxon:octets-to-hexBinary</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>39</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/parse.html">saxon:parse</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>40</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/path.html">saxon:path</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>41</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/printstack.html">saxon:print-stack</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>42</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/query.html">saxon:query</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>43</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/result-document.html">saxon:result-document</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>44</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/serialize.html">saxon:serialize</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>45</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/sort.html">saxon:sort</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>46</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/string-to-base64Binary.html">saxon:string-to-base64Binary</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>47</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/string-to-hexBinary.html">saxon:string-to-hexBinary</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>48</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/stringtoutf8.html">saxon:string-to-utf8</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>49</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/systemid.html">saxon:system-id</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>50</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/transform.html">saxon:transform</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>51</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/try.html">saxon:try</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>52</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/typeannotation.html">saxon:type-annotation</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>53</td> <td> <a href="http://www.saxonica.com/documentation/extensions/functions/unparsedentities.html">saxon:unparsed-entities</a> </td> <td>false</td> </tr> </table> <h3 id="s4.2"> <span>4.2</span> Saxon Extension Elements</h3> <p>Many of <a href="http://www.saxonica.com/documentation/extensions/instructions.html">Saxon's extension elements</a> are unique, adding functionality to XSLT.2.0</p> <table cellspacing="0" cellpadding="5"> <tr class="th"> <th>No</th> <th>Saxon Element</th> <th>Available</th> </tr> <tr style="color:red"> <td>1</td> <td> <a href="http://www.saxonica.com/documentation/extensions/instructions/assign.html">saxon:assign</a> </td> <td>false</td> </tr> <tr class="altcolor"> <td>2</td> <td> <a href="http://www.saxonica.com/documentation/extensions/instructions/break.html">saxon:break</a> </td> <td> <span class="negative">false</span> (not instruction)</td> </tr> <tr style="color:red"> <td>3</td> <td> <a href="http://www.saxonica.com/documentation/extensions/instructions/call-template.html">saxon:call-template</a> </td> <td>false</td> </tr> <tr class="altcolor"> <td>4</td> <td> <a href="http://www.saxonica.com/documentation/extensions/instructions/collation.html">saxon:collation</a> </td> <td> <span class="negative">false</span> (not instruction)</td> </tr> <tr style="color:red"> <td>5</td> <td> <a href="http://www.saxonica.com/documentation/extensions/instructions/doctype.html">saxon:doctype</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>6</td> <td> <a href="http://www.saxonica.com/documentation/extensions/instructions/entity-ref.html">saxon:entity-ref</a> </td> <td>false</td> </tr> <tr> <td>7</td> <td> <a href="http://www.saxonica.com/documentation/extensions/instructions/import-query.html">saxon:import-query</a> </td> <td> <span class="negative">false</span> (not instruction)</td> </tr> <tr class="altcolor"> <td>8</td> <td> <a href="http://www.saxonica.com/documentation/extensions/instructions/iterate.html">saxon:iterate</a> </td> <td> <span class="negative">false</span> (not instruction)</td> </tr> <tr> <td>9</td> <td> <a href="http://www.saxonica.com/documentation/extensions/instructions/script.html">saxon:script</a> </td> <td> <span class="negative">false</span> (not instruction)</td> </tr> <tr class="altcolor" style="color:red"> <td>10</td> <td> <a href="http://www.saxonica.com/documentation/extensions/instructions/while.html">saxon:while</a> </td> <td>false</td> </tr> </table> <h2 id="s5"> <span>5.</span> EXSLT Extensions</h2> <p>EXSLT is a community initiative to provide extensions to XSLT. This was needed for XSLT 1.0 having limited functionality and very few functions. Almost anything in EXSLT made it into XSLT 2.0 making EXSLT less relevant today with few exceptions like the math functions. EXSLT is still a necessity if we must make stylesheets that work both in XSLT 2.0 processors an in XSLT 1.0 processors.</p> <h3 id="s5.1"> <span>5.1</span> EXSL Dates and Times Functions</h3> <p>Except for <code>date:parse-date()</code> the functions in <a href="http://www.exslt.org/date/index.html">EXSLT DATES AND TIMES</a> are irrelevant in XSLT 2.0 having similar functions. If we need to make stylesheets that work both in XSLT 2.0 and in XSLT 1.0, EXSL extensions can some times help us out if supported in older XSLT processors.</p> <table cellspacing="0" cellpadding="5"> <tr class="th"> <th>No</th> <th>EXSL Function</th> <th>Available</th> </tr> <tr style="color:red"> <td>1</td> <td> <a href="http://www.exslt.org/date/functions/add/index.html">date:add</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>2</td> <td> <a href="http://www.exslt.org/date/functions/add-duration/index.html">date:add-duration</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>3</td> <td> <a href="http://www.exslt.org/date/functions/date/index.html">date:date</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>4</td> <td> <a href="http://www.exslt.org/date/functions/date-time/index.html">date:date-time</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>5</td> <td> <a href="http://www.exslt.org/date/functions/day-abbreviation/index.html">date:day-abbreviation</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>6</td> <td> <a href="http://www.exslt.org/date/functions/day-in-month/index.html">date:day-in-month</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>7</td> <td> <a href="http://www.exslt.org/date/functions/day-in-week/index.html">date:day-in-week</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>8</td> <td> <a href="http://www.exslt.org/date/functions/day-in-year/index.html">date:day-in-year</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>9</td> <td> <a href="http://www.exslt.org/date/functions/day-name/index.html">date:day-name</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>10</td> <td> <a href="http://www.exslt.org/date/functions/day-of-week-in-month/index.html">date:day-of-week-in-month</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>11</td> <td> <a href="http://www.exslt.org/date/functions/difference/index.html">date:difference</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>12</td> <td> <a href="http://www.exslt.org/date/functions/duration/index.html">date:duration</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>13</td> <td> <a href="http://www.exslt.org/date/functions/format-date/index.html">date:format-date</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>14</td> <td> <a href="http://www.exslt.org/date/functions/hour-in-day/index.html">date:hour-in-day</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>15</td> <td> <a href="http://www.exslt.org/date/functions/leap-year/index.html">date:leap-year</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>16</td> <td> <a href="http://www.exslt.org/date/functions/minute-in-hour/index.html">date:minute-in-hour</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>17</td> <td> <a href="http://www.exslt.org/date/functions/month-abbreviation/index.html">date:month-abbreviation</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>18</td> <td> <a href="http://www.exslt.org/date/functions/month-in-year/index.html">date:month-in-year</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>19</td> <td> <a href="http://www.exslt.org/date/functions/month-name/index.html">date:month-name</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>20</td> <td> <a href="http://www.exslt.org/date/functions/parse-date/index.html">date:parse-date</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>21</td> <td> <a href="http://www.exslt.org/date/functions/second-in-minute/index.html">date:second-in-minute</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>22</td> <td> <a href="http://www.exslt.org/date/functions/seconds/index.html">date:seconds</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>23</td> <td> <a href="http://www.exslt.org/date/functions/sum/index.html">date:sum</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>24</td> <td> <a href="http://www.exslt.org/date/functions/time/index.html">date:time</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>25</td> <td> <a href="http://www.exslt.org/date/functions/week-in-month/index.html">date:week-in-month</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>26</td> <td> <a href="http://www.exslt.org/date/functions/week-in-year/index.html">date:week-in-year</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>27</td> <td> <a href="http://www.exslt.org/date/functions/year/index.html">date:year</a> </td> <td>false</td> </tr> </table> <h3 id="s5.2"> <span>5.2</span> EXSL Dates and Times Elements</h3> <p>Extension element in <a href="http://www.exslt.org/date/index.html">EXSLT DATES AND TIMES</a> is irrelevant in XSLT 2.0 having a similar element.</p> <table cellspacing="0" cellpadding="5"> <tr class="th"> <th>No</th> <th>EXSL Element</th> <th>Available</th> </tr> <tr> <td>1</td> <td> <a href="http://www.exslt.org/date/elements/date-format/index.html">date:date-format</a> </td> <td> <span class="negative">false</span> (not instruction)</td> </tr> </table> <h3 id="s5.3"> <span>5.3</span> EXSL Dynamic Functions</h3> <p>Except for <code>dyn:evaluate()</code> the functions in <a href="http://www.exslt.org/dyn/index.html">EXSLT - DYNAMIC</a> are irrelevant in XSLT/XPath 2.0 having similar functions. Saxon has a better and more complete set of "evaluate" functions. "Evaluate" makes it possible to create XPath expressions dynamically. Expressions in pure XPath can not be created dynamically except that predicates can contain variables.</p> <table cellspacing="0" cellpadding="5"> <tr class="th"> <th>No</th> <th>EXSL Function</th> <th>Available</th> </tr> <tr style="color:red"> <td>1</td> <td> <a href="http://www.exslt.org/dyn/functions/closure/index.html">dyn:closure</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>2</td> <td> <a href="http://www.exslt.org/dyn/functions/evaluate/index.html">dyn:evaluate</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>3</td> <td> <a href="http://www.exslt.org/dyn/functions/map/index.html">dyn:map</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>4</td> <td> <a href="http://www.exslt.org/dyn/functions/max/index.html">dyn:max</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>5</td> <td> <a href="http://www.exslt.org/dyn/functions/min/index.html">dyn:min</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>6</td> <td> <a href="http://www.exslt.org/dyn/functions/sum/index.html">dyn:sum</a> </td> <td>false</td> </tr> </table> <h3 id="s5.4"> <span>5.4</span> EXSL Common Functions</h3> <p>Functions in <a href="http://www.exslt.org/exsl/index.html">EXSLT Common</a> are irrelevant in XSLT/XPath 2.0 having similar functions.</p> <table cellspacing="0" cellpadding="5"> <tr class="th"> <th>No</th> <th>EXSL Function</th> <th>Available</th> </tr> <tr style="color:red"> <td>1</td> <td> <a href="http://www.exslt.org/exsl/functions/node-set/index.html">exsl:node-set</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>2</td> <td> <a href="http://www.exslt.org/exsl/functions/object-type/index.html">exsl:object-type</a> </td> <td>false</td> </tr> </table> <h3 id="s5.5"> <span>5.5</span> EXSL Common Elements</h3> <p>Elements in <a href="http://www.exslt.org/exsl/index.html">EXSLT Common</a> are irrelevant in XSLT 2.0 having similar elements.</p> <table cellspacing="0" cellpadding="5"> <tr class="th"> <th>No</th> <th>EXSL Element</th> <th>Available</th> </tr> <tr style="color:red"> <td>1</td> <td> <a href="http://www.exslt.org/exsl/elements/document/index.html">exsl:document</a> </td> <td>false</td> </tr> </table> <h3 id="s5.6"> <span>5.6</span> EXSL Functions Elements</h3> <p>Elements in <a href="http://www.exslt.org/func/index.html">EXSLT Functions</a> are irrelevant in XSLT/XPath 2.0 having similar elements.</p> <table cellspacing="0" cellpadding="5"> <tr class="th"> <th>No</th> <th>EXSL Element</th> <th>Available</th> </tr> <tr> <td>1</td> <td> <a href="http://www.exslt.org/func/elements/function/index.html">func:function</a> </td> <td> <span class="negative">false</span> (not instruction)</td> </tr> <tr class="altcolor" style="color:red"> <td>2</td> <td> <a href="http://www.exslt.org/func/elements/result/index.html">func:result</a> </td> <td>false</td> </tr> <tr> <td>3</td> <td> <a href="http://www.exslt.org/func/elements/script/index.html">func:script</a> </td> <td> <span class="negative">false</span> (not instruction)</td> </tr> </table> <h3 id="s5.7"> <span>5.7</span> EXSL Math Functions</h3> <p>Most of the functions in <a href="http://www.exslt.org/math/index.html">EXSLT Math</a> are still very relevant in XSLT 2.0.</p> <table cellspacing="0" cellpadding="5"> <tr class="th"> <th>No</th> <th>EXSL Function</th> <th>Available</th> </tr> <tr style="color:red"> <td>1</td> <td> <a href="http://www.exslt.org/math/functions/abs/index.html">math:abs</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>2</td> <td> <a href="http://www.exslt.org/math/functions/acos/index.html">math:acos</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>3</td> <td> <a href="http://www.exslt.org/math/functions/asin/index.html">math:asin</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>4</td> <td> <a href="http://www.exslt.org/math/functions/atan/index.html">math:atan</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>5</td> <td> <a href="http://www.exslt.org/math/functions/atan2/index.html">math:atan2</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>6</td> <td> <a href="http://www.exslt.org/math/functions/constant/index.html">math:constant</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>7</td> <td> <a href="http://www.exslt.org/math/functions/cos/index.html">math:cos</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>8</td> <td> <a href="http://www.exslt.org/math/functions/exp/index.html">math:exp</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>9</td> <td> <a href="http://www.exslt.org/math/functions/highest/index.html">math:highest</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>10</td> <td> <a href="http://www.exslt.org/math/functions/log/index.html">math:log</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>11</td> <td> <a href="http://www.exslt.org/math/functions/lowest/index.html">math:lowest</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>12</td> <td> <a href="http://www.exslt.org/math/functions/max/index.html">math:max</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>13</td> <td> <a href="http://www.exslt.org/math/functions/min/index.html">math:min</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>14</td> <td> <a href="http://www.exslt.org/math/functions/power/index.html">math:power</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>15</td> <td> <a href="http://www.exslt.org/math/functions/random/index.html">math:random</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>16</td> <td> <a href="http://www.exslt.org/math/functions/sin/index.html">math:sin</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>17</td> <td> <a href="http://www.exslt.org/math/functions/sqrt/index.html">math:sqrt</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>18</td> <td> <a href="http://www.exslt.org/math/functions/tan/index.html">math:tan</a> </td> <td>false</td> </tr> </table> <h3 id="s5.8"> <span>5.8</span> EXSL Random Functions</h3> <p>The <code>random()</code> function in <a href="http://www.exslt.org/random/index.html">EXSLT Random</a> is still relevant in XSLT 2.0.</p> <table cellspacing="0" cellpadding="5"> <tr class="th"> <th>No</th> <th>EXSL Function</th> <th>Available</th> </tr> <tr style="color:red"> <td>1</td> <td> <a href="http://www.exslt.org/random/functions/random-sequence/index.html">random:random-sequence</a> </td> <td>false</td> </tr> </table> <h3 id="s5.9"> <span>5.9</span> EXSL Regular Expressions Functions</h3> <p>Functions in <a href="http://www.exslt.org/regexp/index.html">EXSLT Regular Expressions</a> are irrelevant in XSLT/XPath 2.0 having similar functionality.</p> <table cellspacing="0" cellpadding="5"> <tr class="th"> <th>No</th> <th>EXSL Function</th> <th>Available</th> </tr> <tr style="color:red"> <td>1</td> <td> <a href="http://www.exslt.org/regexp/functions/match/index.html">regexp:match</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>2</td> <td> <a href="http://www.exslt.org/regexp/functions/replace/index.html">regexp:replace</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>3</td> <td> <a href="http://www.exslt.org/regexp/functions/test/index.html">regexp:test</a> </td> <td>false</td> </tr> </table> <h3 id="s5.10"> <span>5.10</span> EXSL Sets Functions</h3> <p>Functions in <a href="http://www.exslt.org/set/index.html">EXSLT Sets</a> are irrelevant in XSLT/XPath 2.0 having similar functionality.</p> <table cellspacing="0" cellpadding="5"> <tr class="th"> <th>No</th> <th>EXSL Function</th> <th>Available</th> </tr> <tr style="color:red"> <td>1</td> <td> <a href="http://www.exslt.org/set/functions/difference/index.html">set:difference</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>2</td> <td> <a href="http://www.exslt.org/set/functions/distinct/index.html">set:distinct</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>3</td> <td> <a href="http://www.exslt.org/set/functions/has-same-node/index.html">set:has-same-node</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>4</td> <td> <a href="http://www.exslt.org/set/functions/intersection/index.html">set:intersection</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>5</td> <td> <a href="http://www.exslt.org/set/functions/leading/index.html">set:leading</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>6</td> <td> <a href="http://www.exslt.org/set/functions/trailing/index.html">set:trailing</a> </td> <td>false</td> </tr> </table> <h3 id="s5.11"> <span>5.11</span> EXSL String Functions</h3> <p>Functions in <a href="http://www.exslt.org/str/index.html">EXSLT Strings</a> are irrelevant in XSLT 2.0 having similar functionality.</p> <table cellspacing="0" cellpadding="5"> <tr class="th"> <th>No</th> <th>EXSL Function</th> <th>Available</th> </tr> <tr style="color:red"> <td>1</td> <td> <a href="http://www.exslt.org/str/functions/align/index.html">str:align</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>2</td> <td> <a href="http://www.exslt.org/str/functions/concat/index.html">str:concat</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>3</td> <td> <a href="http://www.exslt.org/str/functions/decode-uri/index.html">str:decode-uri</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>4</td> <td> <a href="http://www.exslt.org/str/functions/encode-uri/index.html">str:encode-uri</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>5</td> <td> <a href="http://www.exslt.org/str/functions/padding/index.html">str:padding</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>6</td> <td> <a href="http://www.exslt.org/str/functions/replace/index.html">str:replace</a> </td> <td>false</td> </tr> <tr style="color:red"> <td>7</td> <td> <a href="http://www.exslt.org/str/functions/split/index.html">str:split</a> </td> <td>false</td> </tr> <tr class="altcolor" style="color:red"> <td>8</td> <td> <a href="http://www.exslt.org/str/functions/tokenize/index.html">str:tokenize</a> </td> <td>false</td> </tr> </table> <p>END</p> </body> </html>