Update of /cvsroot/mvp-xml/WebSite/exslt In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20137/exslt Added Files: Functions.htm Functions.xml Functions.xslt GDNDatesAndTimes-avg.xml GDNDatesAndTimes-day-abbreviation.xml GDNDatesAndTimes-day-name.xml GDNDatesAndTimes-max.xml GDNDatesAndTimes-min.xml GDNDatesAndTimes-month-abbreviation.xml GDNDatesAndTimes-month-name.xml GDNDynamic-evaluate.xml GDNFunctions.xsl GDNMath-avg.xml GDNRegularExpressions-tokenize.xml GDNSets-subset.xml GDNStrings-lowercase.xml GDNStrings-uppercase.xml buildFuncList.cmd index.html Log Message: --- NEW FILE: Functions.xslt --- <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exslt="http://exslt.org/documentation" exclude-result-prefixes="exslt"> <xsl:output indent="yes" encoding="ISO8859-1"/> <!-- <xsl:template match="modules"> <modules> <xsl:for-each select="module"> <module namespace="{@namespace}"> <xsl:variable name="doc" select="document(@url)/*"/> <xsl:variable name="prefix" select="$doc/@prefix"/> <xsl:attribute name="prefix"><xsl:value-of select="$doc/@prefix"/></xsl:attribute> <xsl:attribute name="name"><xsl:value-of select="$doc/exslt:name"/></xsl:attribute> <xsl:attribute name="homepage"><xsl:value-of select="concat('http://exslt.org/', $prefix, '/index.html')"/></xsl:attribute> <xsl:for-each select="$doc/exslt:functions/exslt:function"> <function name="{@name}" descriptionURL="{concat('http://exslt.org/', $prefix, '/functions/', @name, '/index.html')}" supported="yes"/> </xsl:for-each> </module> </xsl:for-each> </modules> </xsl:template> --> <xsl:template match="/"> <html> <head> <title>EXSLT.NET <xsl:value-of select="modules/@version"/> Function List</title> <style type="text/css"> body { font-family: Verdana, Arial, helvetica;} .module-table { width: 100%; } </style> </head> <body> <h2>EXSLT.NET <xsl:value-of select="modules/@version"/> Function List</h2> <hr/> <div>EXSLT Modules:</div> <ol> <xsl:apply-templates select="modules/module[@is-exslt-module='yes']" mode="toc"/> </ol> <div>Additional modules:</div> <ol> <xsl:apply-templates select="modules/module[@is-exslt-module='no']" mode="toc"/> </ol> <hr/> <xsl:apply-templates select="modules/module"/> </body> </html> </xsl:template> <xsl:template match="module" mode="toc"> <li> <a href="#{@name}"><xsl:value-of select="@name"/></a> </li> </xsl:template> <xsl:template match="module"> <p> <a name="{@name}"> <div class="module-name"><b>Module:</b> <xsl:value-of select="@name"/></div></a> <div class="module-ns"><b>Namespace:</b> <xsl:value-of select="@namespace"/></div> <xsl:if test="@homepage"> <div class="module-homepage"><b>Homepage:</b> <a href="{@homepage}"><xsl:value-of select="@homepage"/></a></div> </xsl:if> <xsl:if test="@is-exslt-module='no'"> <div class="note"><b>Note:</b> These functions are not part of EXSLT.</div> </xsl:if> <table border="1" class="module-table"> <tr> <th>Function name</th> <th>Alias</th> <th>Supported</th> </tr> <xsl:for-each select="function"> <tr> <td> <xsl:choose> <xsl:when test="@descriptionURL"> <a href="{@descriptionURL}"><xsl:value-of select="concat(../@prefix, ':', @name)"/></a> </xsl:when> <xsl:otherwise> <xsl:value-of select="concat(../@prefix, ':', @name)"/> </xsl:otherwise> </xsl:choose> </td> <td align="center"> <xsl:choose> <xsl:when test="@alias"> <xsl:value-of select="@alias"/> </xsl:when> <xsl:otherwise>-</xsl:otherwise> </xsl:choose> </td> <td align="center"> <xsl:attribute name="style"> <xsl:choose> <xsl:when test="@supported='yes'">color:green;</xsl:when> <xsl:otherwise>color:red;</xsl:otherwise> </xsl:choose> </xsl:attribute> <xsl:value-of select="@supported"/></td> </tr> </xsl:for-each> </table> </p> <hr/> </xsl:template> </xsl:stylesheet> --- NEW FILE: index.html --- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Mvp.Xml project: EXSLT.NET module</title> <link href="../style.css" type="text/css" rel="stylesheet"> </head> <body> <h1><a class="mozTocH1" name="mozTocId507464"></a><a href="../index.html">Mvp.Xml Project</a>: EXSLT.NET module </h1> <p>EXSLT.NET library is community-developed implementation of the <a href="http://exslt.org"> EXSLT</a> extensions to XSLT for the .NET platform. EXSLT.NET fully implements the following EXSLT modules: <a href="http://exslt.org/date/index.html">Dates and Times</a>, <a href="http://exslt.org/exsl/index.html">Common</a>, <a href="http://exslt.org/math/index.html"> Math</a>, <a href="http://exslt.org/random/index.html">Random</a>, <a href="http://exslt.org/regexp/index.html"> Regular Expressions</a>, <a href="http://exslt.org/set/index.html">Sets</a> and <a href="http://exslt.org/str/index.html">Strings</a>. In addition EXSLT.NET library provides proprietary set of useful extension functions. See full list of supported extension functions and elements in "<a href="#funclist">Extension Functions and Elements</a>" section. For more info about EXSLT and EXSLT.NET see <a href="#refs">References</a>. </p> <h2>Contents</h2> <ol> <li> <a href="#new">What's New In This Version</a> </li> <li> <a href="#install">Installation</a> </li> <li> <a href="#build">Building</a> </li> <li> <a href="#usage">Usage</a> </li> <li> <a href="#funclist">Extension Functions and Elements</a> </li> <li> <a href="#multiout">Multiple Output</a> </li> <li> <a href="#credits">License</a></li> <li><a href="#bugs">Bug Reports</a></li> <li><a href="#feedback">Feedback</a><br> </li> <li> <a href="#refs">References</a></li> </ol> <h2>1<a name="new">. What's New In This Version</a></h2> <p>Since version 1.3 EXSLT.NET is a module of the <a href="http://mvp-xml.sf.net">Mvp.Xml library</a>. The only change done during codebase transition is new namespace: <font face="Courier New">Mvp.Xml.Exslt</font> instead of <font face="Courier New"> GotDotnet.Exslt</font>. Note that XML namespace of proprietary EXSLT.NET extention functions remains unchanged and still starts with "<a href="http://gotdotnet.com/exslt">http://gotdotnet.com/exslt</a>".</p> <h2>2<a name="install">. Installation</a></h2> <p>EXSLT.NET is designed as a component for .NET Framework and actually doesn't require any installation. You can use <font face="Courier New">Mvp.Xml.Exslt.dll</font> assembly as is in your application by referencing it in Visual Studio .NET. If you want to install the dll into the GAC, run <font face="Courier New">Exslt\install.cmd</font> script. To uninstall the dll, run <font face="Courier New">Exslt\uninstall.cmd</font> script.</p> <h2>3<a name="build">. Building</a></h2> <p>EXSLT.NET source distribution contains Visual Studio .NET 2003 solution, consisting of four projects: <font face="Courier New">Exslt</font>, which is the core EXSLT.NET implementation, <font face="Courier New">ExsltTest</font> - a collection of NUnit tests for each EXSLT.NET function along with primitive command line utility for testing EXSLT.NET in XSLT, <font face="Courier New">ExsltXPathTest</font> - primitive command line utility for testing EXSLT.NET in XPath-only environment, and <font face="Courier New">MethodRenamer</font> - auxiliary command line utility for EXSLT.NET assembly building.</p> <p>All the projects can be build in Visual Studio .NET 2003. Note, that due to implementation details we are using custom script hooked to Visual Studio .NET post-build event. In this script, which you can find in <font face="Courier New">Exslt</font> project properties, we disassemble <font face="Courier New">Mvp.Xml</font> <font face="Courier New"> .Exslt.dll</font> assembly, rename methods (e.g. from <font face="Courier New">dateTime()</font> to <font face="Courier New">date-time()</font>) and assemble it back.</p> <p>You can also build EXSLT.NET in command line using provided <font face="Courier New"> Makefile</font> files. To build any of EXSLT.NET projects, run command prompt (use Visual Studio .NET 2003 Command Prompt or make sure <font face="Courier New"> csc.exe</font>, <font face="Courier New">ildasm.exe</font> and <font face="Courier New">ilasm.exe</font> are in your PATH), change directory to a project directory and run <font face="Courier New"> nmake</font>.</p> <h2>4<a name="usage">. Usage</a></h2> <p>Typically you are using EXSLT.NET module in your application via <code><font face="Courier New"> Mvp.Xml</font>.Exslt.ExsltTransform</code> class, which encapsulates EXSLT implementation under the guise of standard <code>XslTransform</code> class (<code>ExsltTransform</code> class completely duplicates <code>XslTransform</code> API from .NET 1.0 you are familiar with). So the rules of the <code>ExsltTransform</code> usage are simple: just use it instead of standard <code>XslTransform</code> class:</p> <pre class="code">using System;<br>using System.Xml.XPath;<br>using <font face="Courier New">Mvp.Xml</font>.Exslt;<br><br>public class ExsltTest <br>{<br> public static void Main() <br> { <br> ExsltTransform xslt = new ExsltTransform(); <br> xslt.Load("foo.xsl"); <br> xslt.Transform("foo.xml", "result.html"); <br> } <br>}<br></pre> <p> </p> <p>Additionally <code>ExsltTransform</code> class has two properties - <font face="Courier New"> SupportedFunctions</font> and <font face="Courier New">MultiOutput</font>, which allow you to control which features should be supported, for instance you can define that you need all extension function modules, but not multiple output support (the default settings) by setting <font face="Courier New"> SupportedFunctions</font> and <font face="Courier New">MultipleOutput</font> properies in your code before the call to the <font face="Courier New">Transform()</font> method:</p> <p></p> <pre>xslt.SupportedFunctions = ExsltFunctionNamespace.All;<br>xslt.MultiOutput = false;</pre> <p>Note: You can find more information about practical usage of the EXSLT.NET in the "<a href="http://msdn.microsoft.com/xml/default.aspx?pull=/library/en-us/dnxml/html/practexslt.asp">Building Practical Solutions with EXSLT.NET</a>" article at <a href="http://msdn.com/xml"> MSDN XML Developer Center</a>.</p> <p>It's also possible to use EXSLT.NET in XPath-only environment. For doing that one makes use of <font face="Courier New">Mvp.Xml</font> <code>.Exslt.ExsltContext</code> class:</p> <pre>XPathExpression expr = nav.Compile("set:distinct(//author)");<br>expr.SetContext(new ExsltContext(doc.NameTable));<br>XPathNodeIterator authors = nav.Select(expr);<br>while (authors.MoveNext())<br> Console.WriteLine(authors.Current.Value);<br></pre> <p>See "<a href="http://http://msdn.microsoft.com/library/en-us/dnexxml/html/xml11172003.asp">EXSLT Meets XPath</a>" article for more information.</p> <h2>5<a name="funclist">. Extension</a> Functions and Elements</h2> <p>You can find full list of extension functions EXSLT.NET supports in <font face="Courier New"> doc\Functions.xml</font> document. <a href="Functions.htm">Here is</a> HTML version.</p> <p>Note: For compatibility, some extension functions (such as <font face="Courier New">date:date-time()</font>) have camelCased alias names, e.g. <font face="Courier New">date:dateTime()</font>. Both forms are equivalent names, referring to the same function implementation, although beware that alias names are non-standard ones, so most likely they won't be recognized by other EXSLT implementations.</p> <p>The only extension element supported is <a href="http://exslt.org/exsl/elements/document/index.html"> exsl:document</a> element. See "<a href="#multiout">Multiple Output</a>" section for more info.</p> <h2>6<a name="multiout">. Multiple Output</a></h2> <p>EXSLT.NET partially supports <a href="http://exslt.org/exsl/elements/document/index.html"> <font face="Courier New">exsl:document</font></a> extension element. Not all <font face="Courier New">exsl:document</font> attributes and their values are supported in this version of teh EXSLT.NET. The supported subset of attributes and values is as follows:</p> <pre><exsl:document <br> <b>href</b> = { <i>uri-reference</i> } <br> method = { "xml" | "text" } <br> encoding = { <i>string</i> } <br> omit-xml-declaration = { "yes" | "no" }<br> standalone = { "yes" | "no" } <br> doctype-public = { <i>string</i> } <br> doctype-system = { <i>string</i> } <br> indent = { "yes" | "no" } > <br> <-- Content: template --> <br></exsl:document></pre> <p><a href="http://exslt.org/exsl/elements/document/index.html"><font face="Courier New">exsl:document</font></a> extension element is not supported when transformation is done to <font face="Courier New"> XmlReader</font> or <font face="Courier New">XmlWriter</font>. In the latter case use overloaded <font face="Courier New">Transform()</font> method, which accepts instance of <font face="Courier New">MultiXmlTextWriter</font> class to transform to.</p> <p><a href="http://exslt.org/exsl/elements/document/index.html"><font face="Courier New">exsl:document</font></a> extension element is supported through postprocessing of transformation result using customized <font face="Courier New">XmlTextWriter</font> class. This unconditionally assumes the transformation is always done in XML, so actually currently there is no way to produce real HTML (not XHTML) result documents. More specifically, main result document is always XML, but subsidiary result documents may be written either as XML or as text, depending on the <b>method</b> attribute value of the appropriate <code class="ce">exsl:document</code> element. </p> <p></p> <p>Moreover, the <code class="ce">xsl:output</code> element is <a href="/library/en-us/cpguide/html/cpconinputsoutputstoxsltransform.asp"> ignored</a>. That only affects outputting of the main result document though, because the <code class="ce">xsl:output</code> element does not affect outputting of any subsidiary result documents. It's completely controlled by the <code class="ce">exsl:document</code> element. Instead, you can get some control over outputting of the main result document using the <font face="Courier New"> MultiXmlTextWriter</font> properties inherited from the <font face="Courier New"> XmlTextWriter</font> class, particularly with <a href="/library/en-us/cpref/html/frlrfSystemXmlXmlTextWriterClassctorTopic2.asp"> encoding</a> and <a href="/library/en-us/cpref/html/frlrfSystemXmlXmlTextWriterClassFormattingTopic.asp"> indentation</a>.</p> <p><a href="http://www.w3.org/TR/xslt.html#disable-output-escaping">The disabling of output escaping</a> feature is <a href="/library/en-us/cpguide/html/cpconinputsoutputstoxsltransform.asp"> ignored</a> as always when XSL transformation is performed to an <font face="Courier New"> XmlWriter</font>.</p> <p>For more info about how it's implemented see <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnexxml/html/xml06162003.asp"> "Producing Multiple Outputs from an XSL Transformation"</a> article.</p> <h2>7<a name="credits">. License</a></h2> <p>EXSLT.NET as part of the <a href="http://mvp-xml.sf.net/">Mvp.Xml project</a> is subject to the <a href="../license.html">Common Public License</a> - <a href="http://www.opensource.org/licenses/index.php"> OSI approved</a> free open-source license. It's distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.<br> </p> <h2><a class="mozTocH2" name="bugs"></a>8. Bug reports</h2> <p>Please feel free to report any bugs to the Mvp.Xml project's <a href="http://sourceforge.net/tracker/?group_id=102352&atid=633328"> Bug Tracker</a>. Feature requests are also <a href="http://sourceforge.net/tracker/?group_id=102352&atid=633331">welcome</a>.<br> </p> <h2><a class="mozTocH2" name="feedback"></a>9. Feedback</h2> <p>We appreciate any kind of feedback, feel free to post any questions or comments about EXSLT.NET module and Mvp.Xml project in general in the <a href="https://lists.sourceforge.net/mailman/listinfo/mvp-xml-help">mvp-xml-help</a> mailing list <a href="http://sourceforge.net/mailarchive/forum.php?forum=mvp-xml-help">(online archive)</a>.<br> </p> <h2>10<a name="refs">. References</a></h2> <ol> <li><!--StartFragment --> EXSLT community initiative - <a href="http://www.exslt.org/"> http://www.exslt.org</a>. </li> <li> "<a href="http://msdn.microsoft.com/library/en-us/dnexxml/html/xml05192003.asp">EXSLT: Enhancing the Power of XSLT</a>" by Dare Obasanjo, MSDN. </li> <li> "<a href="http://http//msdn.microsoft.com/library/en-us/dnexxml/html/xml11172003.asp">EXSLT Meets XPath</a>" by Dare Obasanjo, MSDN. </li> <li> "<a href="http://msdn.microsoft.com/xml/default.aspx?pull=/library/en-us/dnxml/html/practexslt.asp">Building Practical Solutions with EXSLT.NET</a>" by Oleg Tkachenko, MSDN. </li> <li> <a href="http://www.xmllab.net/Products/nxslt/tabid/62/Default.aspx">nxslt.exe</a> - EXSLT.NET enabled command line XSLT utility.</li> </ol> <p><br> </p> <hr style="width: 100%; height: 2px;"> <p> The project is hosted at <a target="_blank" href="http://www.sourceforge.net"> SourceForge</a>. Find more at the <a href="http://sourceforge.net/projects/mvp-xml">Mvp.Xml project page at SourceForge</a>.<br> <a href="http://sourceforge.net/" title="Link to SourceForge home page"><img src="http://sourceforge.net/sflogo.php?group_id=102352&type=1" alt="SourceForge logo" border="0"></a><br> <code>$Id: index.html,v 1.1 2005/07/19 20:58:40 helgy Exp $</code><br> </p> </body> </html> --- NEW FILE: Functions.xml --- <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="Functions.xslt"?> <modules version="1.3"> <module namespace="http://exslt.org/dates-and-times" prefix="date" name="Dates and Times" homepage="http://exslt.org/date/index.html" is-exslt-module="yes"> <function name="format-date" alias="formatDate" descriptionURL="http://exslt.org/date/functions/format-date/index.html" supported="yes"/> <function name="parse-date" alias="parseDate" descriptionURL="http://exslt.org/date/functions/parse-date/index.html" supported="yes"/> <function name="date-time" alias="dateTime" descriptionURL="http://exslt.org/date/functions/date-time/index.html" supported="yes"/> <function name="date" descriptionURL="http://exslt.org/date/functions/date/index.html" supported="yes"/> <function name="time" descriptionURL="http://exslt.org/date/functions/time/index.html" supported="yes"/> <function name="year" descriptionURL="http://exslt.org/date/functions/year/index.html" supported="yes"/> <function name="leap-year" alias="leapYear" descriptionURL="http://exslt.org/date/functions/leap-year/index.html" supported="yes"/> <function name="month-in-year" alias="monthInYear" descriptionURL="http://exslt.org/date/functions/month-in-year/index.html" supported="yes"/> <function name="month-name" alias="monthName" descriptionURL="http://exslt.org/date/functions/month-name/index.html" supported="yes"/> <function name="month-abbreviation" alias="monthAbbreviation" descriptionURL="http://exslt.org/date/functions/month-abbreviation/index.html" supported="yes"/> <function name="week-in-year" alias="weekInYear" descriptionURL="http://exslt.org/date/functions/week-in-year/index.html" supported="yes"/> <function name="week-in-month" alias="weekInMonth" descriptionURL="http://exslt.org/date/functions/week-in-month/index.html" supported="yes"/> <function name="day-in-year" alias="dayInYear" descriptionURL="http://exslt.org/date/functions/day-in-year/index.html" supported="yes"/> <function name="day-in-month" alias="dayInMonth" descriptionURL="http://exslt.org/date/functions/day-in-month/index.html" supported="yes"/> <function name="day-of-week-in-month" alias="dayOfWeekInMonth" descriptionURL="http://exslt.org/date/functions/day-of-week-in-month/index.html" supported="yes"/> <function name="day-in-week" alias="dayInWeek" descriptionURL="http://exslt.org/date/functions/day-in-week/index.html" supported="yes"/> <function name="day-name" alias="dayName" descriptionURL="http://exslt.org/date/functions/day-name/index.html" supported="yes"/> <function name="day-abbreviation" alias="dayAbbreviation" descriptionURL="http://exslt.org/date/functions/day-abbreviation/index.html" supported="yes"/> <function name="hour-in-day" alias="hourInDay" descriptionURL="http://exslt.org/date/functions/hour-in-day/index.html" supported="yes"/> <function name="minute-in-hour" alias="minuteInHour" descriptionURL="http://exslt.org/date/functions/minute-in-hour/index.html" supported="yes"/> <function name="second-in-minute" alias="secondInMinute" descriptionURL="http://exslt.org/date/functions/second-in-minute/index.html" supported="yes"/> <function name="difference" descriptionURL="http://exslt.org/date/functions/difference/index.html" supported="yes"/> <function name="add" descriptionURL="http://exslt.org/date/functions/add/index.html" supported="yes"/> <function name="add-duration" alias="addDuration" descriptionURL="http://exslt.org/date/functions/add-duration/index.html" supported="yes"/> <function name="sum" descriptionURL="http://exslt.org/date/functions/sum/index.html" supported="yes"/> <function name="seconds" descriptionURL="http://exslt.org/date/functions/seconds/index.html" supported="yes"/> <function name="duration" descriptionURL="http://exslt.org/date/functions/duration/index.html" supported="yes"/> </module> <module namespace="http://exslt.org/common" prefix="exsl" name="Common" homepage="http://exslt.org/exsl/index.html" is-exslt-module="yes"> <function name="node-set" alias="nodeSet" descriptionURL="http://exslt.org/exsl/functions/node-set/index.html" supported="yes"/> <function name="object-type" alias="objectType" descriptionURL="http://exslt.org/exsl/functions/object-type/index.html" supported="yes"/> </module> <module namespace="http://exslt.org/math" prefix="math" name="Math" homepage="http://exslt.org/math/index.html" is-exslt-module="yes"> <function name="min" descriptionURL="http://exslt.org/math/functions/min/index.html" supported="yes"/> <function name="max" descriptionURL="http://exslt.org/math/functions/max/index.html" supported="yes"/> <function name="highest" descriptionURL="http://exslt.org/math/functions/highest/index.html" supported="yes"/> <function name="lowest" descriptionURL="http://exslt.org/math/functions/lowest/index.html" supported="yes"/> <function name="abs" descriptionURL="http://exslt.org/math/functions/abs/index.html" supported="yes"/> <function name="sqrt" descriptionURL="http://exslt.org/math/functions/sqrt/index.html" supported="yes"/> <function name="power" descriptionURL="http://exslt.org/math/functions/power/index.html" supported="yes"/> <function name="constant" descriptionURL="http://exslt.org/math/functions/constant/index.html" supported="yes"/> <function name="log" descriptionURL="http://exslt.org/math/functions/log/index.html" supported="yes"/> <function name="random" descriptionURL="http://exslt.org/math/functions/random/index.html" supported="yes"/> <function name="sin" descriptionURL="http://exslt.org/math/functions/sin/index.html" supported="yes"/> <function name="cos" descriptionURL="http://exslt.org/math/functions/cos/index.html" supported="yes"/> <function name="tan" descriptionURL="http://exslt.org/math/functions/tan/index.html" supported="yes"/> <function name="asin" descriptionURL="http://exslt.org/math/functions/asin/index.html" supported="yes"/> <function name="acos" descriptionURL="http://exslt.org/math/functions/acos/index.html" supported="yes"/> <function name="atan" descriptionURL="http://exslt.org/math/functions/atan/index.html" supported="yes"/> <function name="atan2" descriptionURL="http://exslt.org/math/functions/atan2/index.html" supported="yes"/> <function name="exp" descriptionURL="http://exslt.org/math/functions/exp/index.html" supported="yes"/> </module> <module namespace="http://exslt.org/random" prefix="random" name="Random" homepage="http://exslt.org/random/index.html" is-exslt-module="yes"> <function name="random-sequence" alias="randomSequence" descriptionURL="http://exslt.org/random/functions/random-sequence/index.html" supported="yes"/> </module> <module namespace="http://exslt.org/regular-expressions" prefix="regexp" name="Regular Expressions" homepage="http://exslt.org/regexp/index.html" is-exslt-module="yes"> <function name="test" descriptionURL="http://exslt.org/regexp/functions/test/index.html" supported="yes"/> <function name="match" descriptionURL="http://exslt.org/regexp/functions/match/index.html" supported="yes"/> <function name="replace" descriptionURL="http://exslt.org/regexp/functions/replace/index.html" supported="yes"/> </module> <module namespace="http://exslt.org/sets" prefix="set" name="Sets" homepage="http://exslt.org/set/index.html" is-exslt-module="yes"> <function name="difference" descriptionURL="http://exslt.org/set/functions/difference/index.html" supported="yes"/> <function name="intersection" descriptionURL="http://exslt.org/set/functions/intersection/index.html" supported="yes"/> <function name="distinct" descriptionURL="http://exslt.org/set/functions/distinct/index.html" supported="yes"/> <function name="has-same-node" descriptionURL="http://exslt.org/set/functions/has-same-node/index.html" supported="yes"/> <function name="leading" descriptionURL="http://exslt.org/set/functions/leading/index.html" supported="yes"/> <function name="trailing" descriptionURL="http://exslt.org/set/functions/trailing/index.html" supported="yes"/> </module> <module namespace="http://exslt.org/strings" prefix="str" name="Strings" homepage="http://exslt.org/str/index.html" is-exslt-module="yes"> <function name="tokenize" descriptionURL="http://exslt.org/str/functions/tokenize/index.html" supported="yes"/> <function name="replace" descriptionURL="http://exslt.org/str/functions/replace/index.html" supported="yes"/> <function name="padding" descriptionURL="http://exslt.org/str/functions/padding/index.html" supported="yes"/> <function name="align" descriptionURL="http://exslt.org/str/functions/align/index.html" supported="yes"/> <function name="encode-uri" descriptionURL="http://exslt.org/str/functions/encode-uri/index.html" supported="yes"/> <function name="decode-uri" descriptionURL="http://exslt.org/str/functions/decode-uri/index.html" supported="yes"/> <function name="concat" descriptionURL="http://exslt.org/str/functions/concat/index.html" supported="yes"/> <function name="split" descriptionURL="http://exslt.org/str/functions/split/index.html" supported="yes"/> </module> <!-- Additional EXSLT.NET functions --> <module namespace="http://gotdotnet.com/exslt/dates-and-times" prefix="date2" name="GotDotNet Dates and Times" is-exslt-module="no"> <function name="avg" descriptionURL="GDNDatesAndTimes-avg.xml" supported="yes"/> <function name="min" descriptionURL="GDNDatesAndTimes-min.xml" supported="yes"/> <function name="max" descriptionURL="GDNDatesAndTimes-max.xml" supported="yes"/> <function name="day-name" alias="dayName" descriptionURL="GDNDatesAndTimes-day-name.xml" supported="yes"/> <function name="day-abbreviation" alias="dayAbbreviation" descriptionURL="GDNDatesAndTimes-day-abbreviation.xml" supported="yes"/> <function name="month-name" alias="monthName" descriptionURL="GDNDatesAndTimes-month-name.xml" supported="yes"/> <function name="month-abbreviation" alias="monthAbbreviation" descriptionURL="GDNDatesAndTimes-month-abbreviation.xml" supported="yes"/> </module> <module namespace="http://gotdotnet.com/exslt/math" prefix="math2" name="GotDotNet Math" is-exslt-module="no"> <function name="avg" descriptionURL="GDNMath-avg.xml" supported="yes"/> </module> <module namespace="http://gotdotnet.com/exslt/regular-expressions" prefix="regexp2" name="GotDotNet Regular Expressions" is-exslt-module="no"> <function name="tokenize" descriptionURL="GDNRegularExpressions-tokenize.xml" supported="yes"/> </module> <module namespace="http://gotdotnet.com/exslt/sets" prefix="set2" name="GotDotNet Sets" is-exslt-module="no"> <function name="subset" descriptionURL="GDNSets-subset.xml" supported="yes"/> </module> <module namespace="http://gotdotnet.com/exslt/strings" prefix="str2" name="GotDotNet Strings" is-exslt-module="no"> <function name="uppercase" descriptionURL="GDNStrings-uppercase.xml" supported="yes"/> <function name="lowercase" descriptionURL="GDNStrings-lowercase.xml" supported="yes"/> </module> <module namespace="http://gotdotnet.com/exslt/dynamic" prefix="dyn2" name="GotDotNet Dynamic" is-exslt-module="no"> <function name="evaluate" descriptionURL="GDNDynamic-evaluate.xml" supported="yes"/> </module> </modules> --- NEW FILE: GDNRegularExpressions-tokenize.xml --- <?xml-stylesheet type="text/xsl" href="GDNFunctions.xsl"?> <function name="tokenize" namespace="http://gotdotnet.com/exslt/regular-expressions" prefix="regexp2"> <syntax> <return>node-set</return> <params> <param>string</param> <param>string</param> <param optional="yes">string</param> </params> </syntax> <description> <p>The <tt>regexp2:tokenize</tt> function breaks the input string (first argument) into a sequence of strings, treating any substring that matches the regexp (second argument) as a separator.</p> <p>Third optional argument is concatenation of regexp flags - 'm' for multiline matching and 'i' for case-insensitive matching.</p> <p>The separators themselves are not returned.<br/> The matching strings are returned as a set of 'match' elements.</p> </description> <sample> <source><![CDATA[ <input>The quick brown fox jumps over a lazy dog.</input> ]]></source> <stylesheet><![CDATA[<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:regexp2="http://gotdotnet.com/exslt/regular-expressions" exclude-result-prefixes="regexp2"> <xsl:output indent="yes"/> <xsl:template match="/"> <out> Input string: <xsl:value-of select="input"/> Tokens: <xsl:copy-of select="regexp2:tokenize(input, ' ')"/> </out> </xsl:template> </xsl:stylesheet> ]]></stylesheet> <result><![CDATA[<out> Input string: The quick brown fox jumps over a lazy dog. Tokens: <match>The</match> <match>quick</match> <match>brown</match> <match>fox</match> <match>jumps</match> <match>over</match> <match>a</match> <match>lazy</match> <match>dog.</match> </out>]]></result> </sample> </function> --- NEW FILE: GDNDynamic-evaluate.xml --- <?xml-stylesheet type="text/xsl" href="GDNFunctions.xsl"?> <function name="evaluate" namespace="http://gotdotnet.com/exslt/dynamic" prefix="dyn2"> <syntax> <return>object</return> <params> <param>node-set</param> <param>string</param> <param optional="yes">string</param> </params> </syntax> <description> <p>The <tt>dyn2:evaluate</tt> function evaluates a string as an XPath expression and returns the resulting value, which might be a boolean, number, string, node set, result tree fragment or external object.</p> <p>First node-set argument provides a context node (the first node in the passed node-set), such that selection paths are evaluated relative to it. Second string argument is the XPath expression to be evaluated. Third optional string argument provides namespace bindings to be used to resolve namespace prefixes in the XPath expression. Namespaces are defined in the XML style, as a space separated list of namespace declaration attributes.</p> <p>All namespace prefixes that are in scope for the context node (or its parent node if the context node isn't element node) can be referenced in the evaluated XPath expression. Note though that relying on namespace prefixes defined in the source XML is very unreliable. We encourage users to define namespace bindings explicitly in the third argument instead.</p> <p>If the node-set passed as first argument is empty (no context node) or the expression string passed as the second argument is an invalid XPath expression (including an empty string), this function returns an empty string. Malformed namespace declarations in the third argument are ignored.</p> <p>Note that this function is more limited than EXSLT's <a href="http://exslt.org/dyn/functions/evaluate/index.html">dyn:evaluate()</a> function. More formally: <ul> <li>No context position and context size information is available.</li> <li>No variable bindings - this function is unable to evaluate XPath expressions, which contain variable references!</li> <li>No custom extension functions - only core XPath functions and all extension functions, supported by EXSLT.NET are available.</li> <li>No current node, so the expression cannot contain the <tt>current()</tt> function calls.</li> <li>No key definition information available, so the expression cannot contain the <tt>key()</tt> function calls.</li> <li>No custom decimal format definitions are avilable, so the expression cannot contain the <tt>fomat-number()</tt> function calls that refer to a <tt><xsl:decimal-format></tt> definition.</li> </ul> </p> <p> You should only use this function if the expression must be constructed dynamically - otherwise it is much more efficient to use the expression literally. For expressions that simply give an element or attribute's name (to select a child element or attribute), it is more efficient to use an expression in the style:<br/> <code>*[name() = $expression]</code> </p> </description> <sample> <source><![CDATA[<data xmlns:o="http://orders.com"> <orders> <order id="o234">T-Shirt</order> <order id="o12">Polo Shirt</order> <order id="o332">Shoes</order> </orders> <orders xmlns="http://orders.com"> <order id="o11">Foo</order> <order id="o22">Bar</order> <order id="o44">Baz</order> </orders> <path>/data/orders/order[@id='o12']</path> <path2>orders/order[@id='o12']</path2> <path7>foo:orders/foo:order[@id='o11']</path7> </data>]]></source> <stylesheet><![CDATA[<?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dyn2="http://gotdotnet.com/exslt/dynamic" exclude-result-prefixes="dyn2"> <xsl:output indent="yes" omit-xml-declaration="yes"/> <xsl:template match="data"> <out> <test1> <xsl:value-of select="dyn2:evaluate(., concat('2', '+', '2'))"/> </test1> <test2> <xsl:copy-of select="dyn2:evaluate(., /data/path)"/> </test2> <test3> <xsl:value-of select="dyn2:evaluate(., /data/path)/@id"/> </test3> <test4> <xsl:copy-of select="dyn2:evaluate(., /data/path2)"/> </test4> <test5> <xsl:copy-of select="dyn2:evaluate(., 'o:orders/o:order')"/> </test5> <test6> <xsl:variable name="namespaces">xmlns:foo="http://orders.com" xmlns:bar='http://bar.com/'</xsl:variable> <xsl:copy-of select="dyn2:evaluate(., /data/path7, $namespaces)"/> </test6> </out> </xsl:template> </xsl:stylesheet>]]></stylesheet> <result><![CDATA[<out> <test1>4</test1> <test2> <order id="o12" xmlns:o="http://orders.com">Polo Shirt</order> </test2> <test3>o12</test3> <test4> <order id="o12" xmlns:o="http://orders.com">Polo Shirt</order> </test4> <test5> <order id="o11" xmlns:o="http://orders.com" xmlns="http://orders.com">Foo</order> <order id="o22" xmlns:o="http://orders.com" xmlns="http://orders.com">Bar</order> <order id="o44" xmlns:o="http://orders.com" xmlns="http://orders.com">Baz</order> </test5> <test6> <order id="o11" xmlns:o="http://orders.com" xmlns="http://orders.com">Foo</order> </test6> </out>]]></result> </sample> </function> --- NEW FILE: GDNStrings-uppercase.xml --- <?xml-stylesheet type="text/xsl" href="GDNFunctions.xsl"?> <function name="uppercase" namespace="http://gotdotnet.com/exslt/strings" prefix="str2"> <syntax> <return>string</return> <params> <param>string</param> </params> </syntax> <description> <p>This function returns a copy of argument string in uppercase, using the casing rules of the current culture.</p> </description> <sample> <source><![CDATA[<input>The Quick Brown Fox Jumps Over a Lazy Dog.</input>]]></source> <stylesheet><![CDATA[<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:str2="http://gotdotnet.com/exslt/strings" extension-element-prefixes="str2"> <xsl:template match="/"> <out><xsl:value-of select="str2:uppercase(input)"/></out> </xsl:template> </xsl:stylesheet>]]></stylesheet> <result><![CDATA[<out>THE QUICK BROWN FOX JUMPS OVER A LAZY DOG.</out>]]></result> </sample> </function> --- NEW FILE: GDNStrings-lowercase.xml --- <?xml-stylesheet type="text/xsl" href="GDNFunctions.xsl"?> <function name="lowercase" namespace="http://gotdotnet.com/exslt/strings" prefix="str2"> <syntax> <return>string</return> <params> <param>string</param> </params> </syntax> <description> <p>This function returns a copy of argument string in lowercase, using the casing rules of the current culture.</p> </description> <sample> <source><![CDATA[<input>The Quick Brown Fox Jumps Over a Lazy Dog.</input>]]></source> <stylesheet><![CDATA[<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:str2="http://gotdotnet.com/exslt/strings" extension-element-prefixes="str2"> <xsl:template match="/"> <out><xsl:value-of select="str2:lowercase(input)"/></out> </xsl:template> </xsl:stylesheet>]]></stylesheet> <result><![CDATA[<out>the quick brown fox jumps over a lazy dog.</out>]]></result> </sample> </function> --- NEW FILE: GDNDatesAndTimes-max.xml --- <?xml-stylesheet type="text/xsl" href="GDNFunctions.xsl"?> <function name="max" namespace="http://gotdotnet.com/exslt/dates-and-times" prefix="date2"> <syntax> <return>string</return> <params> <param>node-set</param> </params> </syntax> <description> <p>The <tt>date2:avg</tt> function returns maximum duration.<br/> String values of nodes in the argument nodeset must be in the format defined for xs:duration in [<a href="http://www.w3.org/TR/xmlschema-2/#duration">3.2.6 duration</a>] of [<a href="http://www.w3.org/TR/xmlschema-2/">XML Schema Part 2: Datatypes</a>].</p> <p>If the argument is empty nodeset or string value of any node in the nodeset is not in correct format, empty string is returned.</p> <p>The return value is a string in the format defined for xs:duration in [<a href="http://www.w3.org/TR/xmlschema-2/#duration">3.2.6 duration</a>] of [<a href="http://www.w3.org/TR/xmlschema-2/">XML Schema Part 2: Datatypes</a>].</p> </description> <sample> <source><![CDATA[ <root> <timespan>P1M</timespan> <timespan>P3M</timespan> </root>]]></source> <stylesheet><![CDATA[ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:date2="http://gotdotnet.com/exslt/dates-and-times"> <xsl:template match="/"> Maximum time interval is <xsl:value-of select="date2:max(root/timespan)"/>. </xsl:template> </xsl:stylesheet>]]></stylesheet> <result>Maximum time interval is P90D.</result> </sample> </function> --- NEW FILE: GDNDatesAndTimes-month-name.xml --- <?xml-stylesheet type="text/xsl" href="GDNFunctions.xsl"?> <function name="month-name" namespace="http://gotdotnet.com/exslt/dates-and-times" prefix="date2"> <syntax> <return>string</return> <params> <param optional="yes">string</param> <param>string</param> </params> </syntax> <description> <p>The <tt>date2:month-name</tt> function is I18N extension of the <a href="http://exslt.org/date/functions/month-name/index.html"><tt>date:month-name</tt></a> function.<br/> Second non-optional argument is valid according to RFC 1766 culture name (supported by <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemGlobalizationCultureInfoClassTopic.asp">System.Globalization.CultureInfo</a> class of .NET framework) in "<languagecode2>-<country/regioncode2>" format, e.g. "en-US" or "he-IL". </p> </description> <sample> <source><![CDATA[ <root> <date>2004-09-01</date> </root>]]></source> <stylesheet><![CDATA[ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:date2="http://gotdotnet.com/exslt/dates-and-times" exclude-result-prefixes="date2"> <xsl:template match="root"> Month name in Italian: <xsl:value-of select="date2:month-name(date, 'it-IT')"/> </xsl:template> </xsl:stylesheet>]]></stylesheet> <result>Month name in Italian: settembre</result> </sample> </function> --- NEW FILE: GDNDatesAndTimes-min.xml --- <?xml-stylesheet type="text/xsl" href="GDNFunctions.xsl"?> <function name="min" namespace="http://gotdotnet.com/exslt/dates-and-times" prefix="date2"> <syntax> <return>string</return> <params> <param>node-set</param> </params> </syntax> <description> <p>The <tt>date2:avg</tt> function returns minimum duration.<br/> String values of nodes in the argument nodeset must be in the format defined for xs:duration in [<a href="http://www.w3.org/TR/xmlschema-2/#duration">3.2.6 duration</a>] of [<a href="http://www.w3.org/TR/xmlschema-2/">XML Schema Part 2: Datatypes</a>].</p> <p>If the argument is empty nodeset or string value of any node in the nodeset is not in correct format, empty string is returned.</p> <p>The return value is a string in the format defined for xs:duration in [<a href="http://www.w3.org/TR/xmlschema-2/#duration">3.2.6 duration</a>] of [<a href="http://www.w3.org/TR/xmlschema-2/">XML Schema Part 2: Datatypes</a>].</p> </description> <sample> <source><![CDATA[ <root> <timespan>P1M</timespan> <timespan>P3M</timespan> </root>]]></source> <stylesheet><![CDATA[ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:date2="http://gotdotnet.com/exslt/dates-and-times"> <xsl:template match="/"> Minimum time interval is <xsl:value-of select="date2:min(root/timespan)"/>. </xsl:template> </xsl:stylesheet>]]></stylesheet> <result>Minimum time interval is P30D.</result> </sample> </function> --- NEW FILE: GDNDatesAndTimes-avg.xml --- <?xml-stylesheet type="text/xsl" href="GDNFunctions.xsl"?> <function name="avg" namespace="http://gotdotnet.com/exslt/dates-and-times" prefix="date2"> <syntax> <return>string</return> <params> <param>node-set</param> </params> </syntax> <description> <p>The <tt>date2:avg</tt> function returns average duration.<br/> String values of nodes in the argument nodeset must be in the format defined for xs:duration in [<a href="http://www.w3.org/TR/xmlschema-2/#duration">3.2.6 duration</a>] of [<a href="http://www.w3.org/TR/xmlschema-2/">XML Schema Part 2: Datatypes</a>].</p> <p>If the argument is empty nodeset or string value of any node in the nodeset is not in correct format, empty string is returned.</p> <p>The return value is a string in the format defined for xs:duration in [<a href="http://www.w3.org/TR/xmlschema-2/#duration">3.2.6 duration</a>] of [<a href="http://www.w3.org/TR/xmlschema-2/">XML Schema Part 2: Datatypes</a>].</p> </description> <sample> <source><![CDATA[ <root> <timespan>P1M</timespan> <timespan>P3M</timespan> </root>]]></source> <stylesheet><![CDATA[ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:date2="http://gotdotnet.com/exslt/dates-and-times"> <xsl:template match="/"> Average time interval is <xsl:value-of select="date2:avg(root/timespan)"/>. </xsl:template> </xsl:stylesheet>]]></stylesheet> <result>Average time interval is P60D.</result> </sample> </function> --- NEW FILE: GDNDatesAndTimes-day-name.xml --- <?xml-stylesheet type="text/xsl" href="GDNFunctions.xsl"?> <function name="day-name" namespace="http://gotdotnet.com/exslt/dates-and-times" prefix="date2"> <syntax> <return>string</return> <params> <param optional="yes">string</param> <param>string</param> </params> </syntax> <description> <p>The <tt>date2:day-name</tt> function is I18N extension of the <a href="http://exslt.org/date/functions/day-name/index.html"><tt>date:day-name</tt></a> function.<br/> Second non-optional argument is valid according to RFC 1766 culture name (supported by <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemGlobalizationCultureInfoClassTopic.asp">System.Globalization.CultureInfo</a> class of .NET framework) in "<languagecode2>-<country/regioncode2>" format, e.g. "en-US" or "he-IL". </p> </description> <sample> <source><![CDATA[ <root> <date>2004-09-01</date> </root>]]></source> <stylesheet><![CDATA[ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:date2="http://gotdotnet.com/exslt/dates-and-times" exclude-result-prefixes="date2"> <xsl:template match="root"> Day name in Russian: <xsl:value-of select="date2:day-name(date, 'ru-RU')"/> </xsl:template> </xsl:stylesheet>]]></stylesheet> <result>Day name in Russian: ÑÑеда</result> </sample> </function> --- NEW FILE: GDNMath-avg.xml --- <?xml-stylesheet type="text/xsl" href="GDNFunctions.xsl"?> <function name="avg" namespace="http://gotdotnet.com/exslt/math" prefix="math2"> <syntax> <return>number</return> <params> <param>node-set</param> </params> </syntax> <description> <p>The <tt>math2:avg</tt> function returns average value of the nodes passed as the argument.</p> <p> If the node set is empty, or if the result of converting the string values of any of the nodes to a number is NaN, then NaN is returned.</p> </description> <sample> <source><![CDATA[<values> <value>7</value> <value>11</value> <value>8</value> <value>4</value> </values> ]]></source> <stylesheet><![CDATA[<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:math2="http://gotdotnet.com/exslt/math" exclude-result-prefixes="math2"> <xsl:template match="/"> <avg> Average value: <xsl:value-of select="math2:avg(values/value)"/>. </avg> </xsl:template> </xsl:stylesheet> ]]></stylesheet> <result> Average value: 7.5.</result> </sample> </function> --- NEW FILE: GDNFunctions.xsl --- <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="function"> <html> <head> <title>EXSLT.NET. Additional extenstion functions: <xsl:value-of select="concat(@prefix,':', @name)"/> </title> </head> <body> <h2>EXSLT.NET. Additional extenstion functions: <xsl:value-of select="concat(@prefix,':', @name)"/> </h2> <p> <b>Namespace: </b> <xsl:value-of select="@namespace"/> </p> <xsl:apply-templates select="syntax"/> <xsl:copy-of select="description"/> <xsl:apply-templates select="sample"/> </body> </html> </xsl:template> <xsl:template match="syntax"> <h3>Function Syntax</h3> <p> <i> <xsl:value-of select="return"/> </i> <xsl:value-of select="../@prefix"/>:<xsl:value-of select="../@name"/> (<xsl:for-each select="params/param"> <i> <xsl:value-of select="."/> <xsl:if test="@optional='yes'">?</xsl:if> <xsl:if test="position() != last()">, </xsl:if> </i> </xsl:for-each>)</p> </xsl:template> <xsl:template match="sample"> <h3>Example:</h3> <xsl:apply-templates/> </xsl:template> <xsl:template match="source"> <h4>Source XML document:</h4> <pre><xsl:value-of select="."/></pre> </xsl:template> <xsl:template match="stylesheet"> <h4>Stylesheet:</h4> <pre><xsl:value-of select="."/></pre> </xsl:template> <xsl:template match="result"> <h4>Result:</h4> <pre><xsl:value-of select="."/></pre> </xsl:template> </xsl:stylesheet> --- NEW FILE: Functions.htm --- <html> <head> <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>EXSLT.NET 1.3 Function List</title> <style type="text/css"> body { font-family: Verdana, Arial, helvetica;} .module-table { width: 100%; } </style> </head> <body> <h2>EXSLT.NET 1.3 Function List</h2> <hr> <div>EXSLT Modules:</div> <ol> <li> <a href="#Dates and Times">Dates and Times</a> </li> <li> <a href="#Common">Common</a> </li> <li> <a href="#Math">Math</a> </li> <li> <a href="#Random">Random</a> </li> <li> <a href="#Regular Expressions">Regular Expressions</a> </li> <li> <a href="#Sets">Sets</a> </li> <li> <a href="#Strings">Strings</a> </li> </ol> <div>Additional modules:</div> <ol> <li> <a href="#GotDotNet Dates and Times">GotDotNet Dates and Times</a> </li> <li> <a href="#GotDotNet Math">GotDotNet Math</a> </li> <li> <a href="#GotDotNet Regular Expressions">GotDotNet Regular Expressions</a> </li> <li> <a href="#GotDotNet Sets">GotDotNet Sets</a> </li> <li> <a href="#GotDotNet Strings">GotDotNet Strings</a> </li> <li> <a href="#GotDotNet Dynamic">GotDotNet Dynamic</a> </li> </ol> <hr> <p> <a name="Dates and Times"> <div class="module-name"> <b>Module:</b> Dates and Times</div> </a> <div class="module-ns"> <b>Namespace:</b> http://exslt.org/dates-and-times</div> <div class="module-homepage"> <b>Homepage:</b> <a href="http://exslt.org/date/index.html">http://exslt.org/date/index.html</a></div> <table border="1" class="module-table"> <tr> <th>Function name</th> <th>Alias</th> <th>Supported</th> </tr> <tr> <td> <a href="http://exslt.org/date/functions/format-date/index.html">date:format-date</a> </td> <td align="center">formatDate</td> <td align="center" style="color:green;">yes</td> </tr> <tr> <td> <a href="http://exslt.org/date/functions/parse-date/index.html">date:parse-date</a> </td> <td align="center">parseDate</td> <td align="center" style="color:green;">yes</td> </tr> <tr> <td> <a href="http://exslt.org/date/functions/date-time/index.html">date:date-time</a> </td> <td align="center">dateTime</td> <td align="center" style="color:green;">yes</td> </tr> <tr> <td> <a href="http://exslt.org/date/functions/date/index.html">date:date</a> </td> <td align="center">-</td> <td align="center" style="color:green;">yes</td> </tr> <tr> <td> <a href="http://exslt.org/date/functions/time/index.html">date:time</a> </td> <td align="center">-</td> <td align="center" style="color:green;">yes</td> </tr> <tr> <td> <a href="http://exslt.org/date/functions/year/index.html">date:year</a> </td> <td align="center">-</td> <td align="center" style="color:green;">yes</td> </tr> <tr> <td> <a href="http://exslt.org/date/functions/leap-year/index.html">date:leap-year</a> </td> <td align="center">leapYear</td> <td align="center" style="color:green;">yes</td> </tr> <tr> <td> <a href="http://exslt.org/date/functions/month-in-year/index.html">date:month-in-year</a> </td> <td align="center">monthInYear</td> <td align="center" style="color:green;">yes</td> </tr> <tr> <td> <a href="http://exslt.org/date/functions/month-name/index.html">date:month-name</a> </td> <td align="center">monthName</td> <td align="center" style="color:green;">yes</td> </tr> <tr> <td> <a href="http://exslt.org/date/functions/month-abbreviation/index.html">date:month-abbreviation</a> </td> <td align="center">monthAbbreviation</td> <td align="center" style="color:green;">yes</td> </tr> <tr> <td> <a href="http://exslt.org/date/functions/week-in-year/index.html">date:week-in-year</a> </td> <td align="center">weekInYear</td> <td align="center" style="color:green;">yes</td> </tr> <tr> <td> <a href="http://exslt.org/date/functions/week-in-month/index.html">date:week-in-month</a> </td> <td align="center">weekInMonth</td> <td align="center" style="color:green;">yes</td> </tr> <tr> <td> <a href="http://exslt.org/date/functions/day-in-year/index.html">date:day-in-year</a> </td> <td align="center">dayInYear</td> <td align="center" style="color:green;">yes</td> </tr> <tr> <td> <a href="http://exslt.org/date/functions/day-in-month/index.html">date:day-in-month</a> </td> <td align="center">dayInMonth</td> <td align="center" style="color:green;">yes</td> </tr> <tr> <td> <a href="http://exslt.org/date/functions/day-of-week-in-month/index.html">date:day-of-week-in-month</a> </td> <td align="center">dayOfWeekInMonth</td> <td align="center" style="color:green;">yes</td> </tr> <tr> <td> <a href="http://exslt.org/date/functions/day-in-week/index.html">date:day-in-week</a> </td> <td align="center">dayInWeek</td> <td align="center" style="color:green;">yes</td> </tr> <tr> <td> <a href="http://exslt.org/date/functions/day-name/index.html">date:day-name</a> </td> <td align="center">dayName</td> <td align="center" style="color:green;">yes</td> </tr> <tr> <td> <a href="http://exslt.org/date/functions/day-abbreviation/index.html">date:day-abbreviation</a> </td> <td align="center">dayAbbreviation</td> <td align="center" style="color:green;">yes</td> </tr> <tr> <td> <a href="http://exslt.org/date/functions/hour-in-day/index.html">date:hour-in-day</a> </td> <td align="center">hourInDay</td> <td align="center" style="color:green;">yes</td> </tr> <tr> <td> <a href="http://exslt.org/date/functions/minute-in-hour/index.html">date:minute-in-hour</a> </td> <td align="center">minuteInHour</td> <td align="center" style="color:green;">yes</td> </tr> <tr> <td> <a href="http://exslt.org/date/functions/second-in-minute/index.html">date:second-in-minute</a> </td> <td align="center">secondInMinute</td> <td align="center" style="color:green;">yes</td> </tr> <tr> <td> <a href="http://exslt.org/date/functions/difference/index.html">date:difference</a> </td> <td align="center">-</td> <td align="center" style="color:green;">yes</td> </tr> <tr> <td> ... [truncated message content] |