[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] EXSLT support report
Hello
I have xml source like this : <?xml version="1.0"?> <!-- modules names, functions names, elements names taken from http://exslt.org --> <modules> <module name="dates and times" prefix="date"> <function name="add"/> <function name="add-duration"/> <function name="date"/> <function name="date-time"/> <function name="day-abbrevation"/> <function name="day-in-month"/> <function name="day-in-week"/> <function name="day-in-year"/> <function name="day-of-week-in-month"/> <function name="difference"/> <function name="duration"/> <function name="format-date"/> <function name="hour-in-day"/> <function name="leap-year"/> <function name="minute-in-hour"/> <function name="month-abbrevation"/> <function name="month-in-year"/> <function name="month-name"/> <function name="parse-date"/> <function name="second-in-minute"/> <function name="seconds"/> <function name="sum"/> <function name="time"/> <function name="week-in-month"/> <function name="week-in-year"/> <function name="year"/> <element name="date-format"/> </module> <module name="dynamic" prefix="dyn"> <function name="closure"/> <function name="evaluate"/> <function name="map"/> <function name="max"/> <function name="min"/> <function name="sum"/> </module> <module name="common" prefix="exsl"> <function name="node-set"/> <function name="object-type"/> <element name="document"/> </module> <module name="functions" prefix="func"> <element name="function" /> <element name="result" /> <element name="script" /> </module> <module name="math" prefix="math"> <function name="abs"/> <function name="acos" /> <function name="asin" /> <function name="atan" /> <function name="atan2" /> <function name="constant" /> <function name="cos" /> <function name="exp" /> <function name="highest" /> <function name="log" /> <function name="lowest" /> <function name="max" /> <function name="min" /> <function name="power" /> <function name="random" /> <function name="sin" /> <function name="sqrt" /> <function name="tan" /> </module> <module name="random" prefix="random"> <function name="random-sequence"/> </module> <module name="regular expressions" prefix="regexp"> <function name="match"/> <function name="replace"/> <function name="test"/> </module> <module name="sets" prefix="set"> <function name="difference"/> <function name="distinct"/> <function name="has-same-node"/> <function name="intersection"/> <function name="leading"/> <function name="trailing"/> </module> <module name="strings" prefix="str"> <function name="align"/> <function name="concat"/> <function name="decode-uri"/> <function name="encode-uri"/> <function name="padding"/> <function name="replace"/> <function name="split"/> <function name="tokenize"/> </module> </modules> and stylesheet like this: <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:date="http://exslt.org/dates-and-times" xmlns:dyn="http://exslt.org/dynamic" xmlns:exsl="http://exslt.org/common" xmlns:func="http://exslt.org/functions" xmlns:math="http://exslt.org/math" xmlns:random="http://exslt.org/random" xmlns:regexp="http://exslt.org/regular-expressions" xmlns:set="http://exslt.org/sets" xmlns:str="http://exslt.org/strings" extension-element-prefixes="date dyn exsl func math random regexp set str"> <xsl:output method="xml" encoding="utf-8" indent="yes"/> <xsl:template match="/"> <html> <head> <style type="text/css"> .true { color: green; } .false { color: red; } table { margin: 1em; border: #999999 solid 1px; border-spacing: 1px; } td { padding: .1em .5em; background: #eeeeee; } th { padding: .1em .5em; background: #bbbbbb; text-align: left; } caption { text-align: left; font-weight: bold; } </style> </head> <body> <h1>EXSLT support report for "<a href="{system-property('xsl:vendor-url')}"><xsl:value-of select="system-property('xsl:vendor')" /></a>"</h1> <hr /> <xsl:apply-templates select="modules/module"/> </body> </html> </xsl:template> <xsl:template match="module"> <h2>module <xsl:value-of select="@name"/></h2> <xsl:if test="function"> <table> <caption>Functions</caption> <tr> <xsl:apply-templates select="function" mode="labels"/> </tr> <tr> <xsl:apply-templates select="function" mode="values"/> </tr> </table> </xsl:if> <xsl:if test="element"> <table> <caption>Elements</caption> <tr> <xsl:apply-templates select="element" mode="labels"/> </tr> <tr> <xsl:apply-templates select="element" mode="values"/> </tr> </table> </xsl:if> <hr/> </xsl:template> <xsl:template match="function | element" mode="labels"> <th> <xsl:value-of select="@name"/> </th> </xsl:template> <xsl:template match="function" mode="values"> <td class="{function-available(concat(../@prefix, ':', @name))}"> <xsl:value-of select="function-available(concat(../@prefix, ':', @name))"/> </td> </xsl:template> <xsl:template match="element" mode="values"> <td class="{element-available(concat(../@prefix, ':', @name))}"> <xsl:value-of select="element-available(concat(../@prefix, ':', @name))"/> </td> </xsl:template> </xsl:stylesheet> The purpose of the stylesheet is to produce EXSLT support report for XSLT processor which process it. I hope it can be usefull for anyone especially begginers like me to have a such overview of supported EXSLT features. 1.) I process this stylesheet by SAXON 6.5.5, SAXON 8.7.3, xsltproc (libxslt 10119), MSXML with no problems, but XALAN-J 2.5.2 throws error (i guess it's because function-available() ). 2.) I've noticed, the libxslt does not support func:function what do you think about that. Thank you.
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|