зеркало из https://github.com/mozilla/pjs.git
848 строки
20 KiB
XML
848 строки
20 KiB
XML
<?xml version="1.0"?>
|
|
<!--
|
|
/*
|
|
* The contents of this file are subject to the Mozilla Public
|
|
* License Version 1.1 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy of
|
|
* the License at http://www.mozilla.org/MPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS
|
|
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
* implied. See the License for the specific language governing
|
|
* rights and limitations under the License.
|
|
*
|
|
* The Original Code is XSL:P XSLT processor.
|
|
*
|
|
* The Initial Developer of the Original Code is Keith Visco.
|
|
* Portions created by Keith Visco (C) 1999 Keith Visco.
|
|
* All Rights Reserved..
|
|
*
|
|
* Contributor(s):
|
|
* Keith Visco, kvisco@ziplink.net
|
|
* - original author.
|
|
*
|
|
*/
|
|
-->
|
|
|
|
<!--
|
|
This is a test stylesheet used for testing the XSL processor
|
|
-->
|
|
|
|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
|
|
|
|
<!-- set the output properties -->
|
|
<xsl:output method="html"/>
|
|
|
|
<!-- AttributeSet -->
|
|
<xsl:attribute-set name="style1">
|
|
<xsl:attribute name="COLOR">blue</xsl:attribute>
|
|
<xsl:attribute name="SIZE">+0</xsl:attribute>
|
|
</xsl:attribute-set>
|
|
|
|
<xsl:attribute-set name="style2">
|
|
<xsl:attribute name="COLOR">red</xsl:attribute>
|
|
<xsl:attribute name="SIZE">+0</xsl:attribute>
|
|
</xsl:attribute-set>
|
|
|
|
<!-- root rule -->
|
|
<xsl:template match="/">
|
|
<xsl:processing-instruction name="foo">
|
|
this is a test processing instruction
|
|
</xsl:processing-instruction>
|
|
<xsl:comment>TransforMiiX Test cases, written by Keith Visco.</xsl:comment>
|
|
<xsl:apply-templates/>
|
|
</xsl:template>
|
|
|
|
<!-- named template -->
|
|
<xsl:template name="named-template-test">
|
|
<xsl:param name="my-param" select="'default value'"/>
|
|
named template processed with <xsl:text> </xsl:text>
|
|
<xsl:value-of select="$my-param"/>!
|
|
<xsl:if test="$dummy-param">
|
|
<BR/>
|
|
<FONT COLOR="red">
|
|
Error, undeclared parameters should be ignored!
|
|
</FONT>
|
|
</xsl:if>
|
|
</xsl:template>
|
|
|
|
<!-- empty variable for named template test -->
|
|
<xsl:variable name="dummy-param" />
|
|
|
|
<!-- supress non-selected nodes-->
|
|
<xsl:template match="*"/>
|
|
|
|
<!-- variable tests -->
|
|
<xsl:variable name="product-name">
|
|
Transfor<FONT COLOR="blue">Mii</FONT>X
|
|
</xsl:variable>
|
|
<!-- main rule for document element -->
|
|
<xsl:template match="document">
|
|
<HTML>
|
|
<HEAD>
|
|
<TITLE>TransforMiiX Test Cases</TITLE>
|
|
<SCRIPT Language="JavaScript">
|
|
// This is a test for properly printing SCRIPT elements
|
|
function foo() {
|
|
var x = 1;
|
|
var y = 2;
|
|
return (x < y);
|
|
}
|
|
//
|
|
</SCRIPT>
|
|
</HEAD>
|
|
<BODY BGColor="#FFFFFF" Text="#000000">
|
|
<CENTER>
|
|
<FONT COLOR="BLUE" FACE="Arial" SIZE="+1">
|
|
<B>Mozilla XSLT</B>
|
|
</FONT>
|
|
<BR/>
|
|
<B>Transfor<FONT COLOR="blue">Mii</FONT>X Test Cases</B>
|
|
</CENTER>
|
|
<P>
|
|
This document serves to test basic XSL expressions.
|
|
</P>
|
|
<!-- new test -->
|
|
<P>
|
|
<B>Testing xsl:variable and xsl:copy-of</B><BR/>
|
|
<B>Test:</B> <xsl:copy-of select="$product-name"/><BR/>
|
|
<B>Desired Result:</B>Transfor<FONT COLOR="blue">Mii</FONT>X<BR/>
|
|
<B>Result:</B><xsl:copy-of select="$product-name"/>
|
|
</P>
|
|
<!-- new test -->
|
|
<P>
|
|
<B>Testing xsl:if</B><BR/>
|
|
<B>Test:</B> <xsl:if test="x | y | z">true</xsl:if><BR/>
|
|
<B>Desired Result:</B> true<BR/>
|
|
<B>Result:</B> <xsl:if test="x | y | z">true</xsl:if>
|
|
</P>
|
|
|
|
<!-- new test -->
|
|
<P>
|
|
<B>Testing xsl:if</B><BR/>
|
|
<B>Test:</B> <xsl:if test="true()">true</xsl:if><BR/>
|
|
<B>Desired Result:</B> true<BR/>
|
|
<B>Result:</B> <xsl:if test="true()">true</xsl:if>
|
|
</P>
|
|
|
|
<!-- new test -->
|
|
<P>
|
|
<B>Testing xsl:if</B><BR/>
|
|
<B>Test:</B> <xsl:if test="'a'='b'">a equals b</xsl:if><BR/>
|
|
<B></B> <xsl:if test="'a'!='b'">a does not equal b</xsl:if>
|
|
<BR/>
|
|
<B>Desired Result:</B> a does not equal to b<BR/>
|
|
<B>Result:</B>
|
|
<xsl:if test="'a'='b'">a equals b<BR/></xsl:if>
|
|
<xsl:if test="'a'!='b'">a does not equal b</xsl:if>
|
|
</P>
|
|
|
|
<!-- new test -->
|
|
<P>
|
|
<B>Testing xsl:if</B><BR/>
|
|
<B>Test:</B> <xsl:if test="2+1-3"> 2+1-3 is true</xsl:if><BR/>
|
|
<B> </B><xsl:if test="not(2+1-3)"> not(2+1-3) is true</xsl:if><BR/>
|
|
<B>Desired Result:</B>not(2+1-3) is true <BR/>
|
|
<B>Result:</B>
|
|
<xsl:if test="2+1-3">2+1-3 is true</xsl:if>
|
|
<xsl:if test="not(2+1-3)">not(2+1-3) is true</xsl:if>
|
|
</P>
|
|
|
|
<!-- new test -->
|
|
<P>
|
|
<B>Testing xsl:choose</B><BR/>
|
|
<B>Test:</B>see source<BR/>
|
|
<B>Desired Result:</B> true<BR/>
|
|
<B>Result:</B>
|
|
<xsl:choose>
|
|
<xsl:when test="a">error - a</xsl:when>
|
|
<xsl:when test="abc/def">true</xsl:when>
|
|
<xsl:when test="b">error - b</xsl:when>
|
|
<xsl:otherwise>false</xsl:otherwise>
|
|
</xsl:choose>
|
|
</P>
|
|
<!-- new test -->
|
|
<P>
|
|
<B>Testing parent and ancestor ops</B><BR/>
|
|
<B>Test:</B>see source<BR/>
|
|
<B>Desired Result:</B> true<BR/>
|
|
<B>Result:</B><xsl:if test="//def">true</xsl:if><BR/>
|
|
|
|
</P>
|
|
<!-- new test -->
|
|
|
|
<P>
|
|
<B>Testing basic xsl:apply-templates</B><BR/>
|
|
<B>Test:</B><xsl:apply-templates/><BR/>
|
|
<B>Desired Result:</B>element <B>x</B>, element <B>y</B>, element <B>z</B><BR/>
|
|
<B>Result:</B><xsl:apply-templates select="x|y|z"/>
|
|
</P>
|
|
<!-- new test -->
|
|
|
|
<P>
|
|
<B>Testing basic xsl:apply-templates with mode</B><BR/>
|
|
<B>Test:</B><xsl:apply-templates mode="mode-test"/><BR/>
|
|
<B>Desired Result:</B>x, y, z<BR/>
|
|
<B>Result:</B><xsl:apply-templates select="x|y|z" mode="mode-test"/>
|
|
</P>
|
|
<!-- new test -->
|
|
<P>
|
|
<B>Testing predicates</B><BR/>
|
|
<B>Test:</B>see source<BR/>
|
|
<B>Desired Result:</B> <B>z</B><BR/>
|
|
<B>Result:</B>
|
|
<xsl:for-each select="*[position()=3]">
|
|
<B><xsl:value-of select="."/></B>
|
|
</xsl:for-each>
|
|
</P>
|
|
<!-- new test -->
|
|
<P>
|
|
<B>Testing predicates</B><BR/>
|
|
<B>Test:</B>see source<BR/>
|
|
<B>Desired Result:</B><BR/>
|
|
<B>Result:</B>
|
|
<xsl:for-each select="*[false()]">
|
|
<B><xsl:value-of select="."/></B>
|
|
</xsl:for-each>
|
|
</P>
|
|
<!-- new test -->
|
|
<P>
|
|
<B>Named Template/Call Template</B>
|
|
<P>
|
|
<B>Test:</B><xsl:call-template name="named-template-test"/><BR/>
|
|
<B>Desired Result:</B>named template processed with default value!<BR/>
|
|
<B>Result:</B><xsl:call-template name="named-template-test"/>
|
|
</P>
|
|
<P>
|
|
<B>Test:</B> - passing arguments to named templates (see xsl source)<BR/>
|
|
<B>Desired Result:</B>named template processed with passed value!<BR/>
|
|
<B>Result:</B>
|
|
<xsl:call-template name="named-template-test">
|
|
<xsl:with-param name="my-param" select="'passed value'"/>
|
|
<xsl:with-param name="dummy-param" select="'test'"/>
|
|
</xsl:call-template>
|
|
</P>
|
|
</P>
|
|
<!-- new test -->
|
|
<P>
|
|
<B>Attribute Value Templates and variables</B><BR/>
|
|
<B>Test:</B>
|
|
<UL>
|
|
<xsl:variable name="color">red</xsl:variable><BR/>
|
|
<FONT COLOR="{$color}">Red Text</FONT>
|
|
</UL>
|
|
<B>Desired Result:</B>
|
|
<FONT COLOR="red">Red Text</FONT><BR/>
|
|
<B>Result:</B>
|
|
<xsl:variable name="color">red</xsl:variable>
|
|
<FONT COLOR="{$color}">Red Text</FONT>
|
|
</P>
|
|
<HR/>
|
|
<!-- AXIS IDENTIFIER TESTS -->
|
|
<TABLE>
|
|
<TR BGColor="#E0E0FF">
|
|
<TD Colspan="2" ALIGN="CENTER">
|
|
<B>Axis Identifiers (these should work, I need more test cases though)</B>
|
|
</TD>
|
|
</TR>
|
|
<!-- new test -->
|
|
<TR>
|
|
<TD VALIGN="TOP"><B>Test:</B></TD>
|
|
<TD>
|
|
<xsl:if test="descendant::z">true</xsl:if><BR />
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Desired Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">true</FONT><BR/>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Result:</B></TD>
|
|
<TD>
|
|
<xsl:if test="descendant::z">
|
|
<FONT COLOR="blue">true</FONT>
|
|
</xsl:if>
|
|
</TD>
|
|
</TR>
|
|
<!-- new test -->
|
|
<TR>
|
|
<TD VALIGN="TOP"><B>Test:</B></TD>
|
|
<TD>
|
|
<xsl:if test="not(descendant-or-self::no-element)">true</xsl:if><BR />
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Desired Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">true</FONT><BR/>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Result:</B></TD>
|
|
<TD>
|
|
<xsl:if test="not(descendant-or-self::no-element)">
|
|
<FONT COLOR="blue">true</FONT>
|
|
</xsl:if>
|
|
</TD>
|
|
</TR>
|
|
<!-- new test -->
|
|
<TR>
|
|
<TD VALIGN="TOP"><B>Test:</B></TD>
|
|
<TD>
|
|
<xsl:value-of select="count(x/attribute::*)"/><BR />
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Desired Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">1</FONT><BR/>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue"><xsl:value-of select="count(x/attribute::*)"/></FONT>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
|
|
<HR/>
|
|
<TABLE>
|
|
<TR BGColor="#E0E0FF">
|
|
<TD Colspan="2" ALIGN="CENTER">
|
|
<B>Creating Elements with xsl:element and xsl:attribute</B>
|
|
</TD>
|
|
</TR>
|
|
<!-- new test -->
|
|
<TR>
|
|
<TD VALIGN="TOP"><B>Test:</B></TD>
|
|
<TD>
|
|
<xsl:element name="FONT"><BR />
|
|
<xsl:attribute name="COLOR">blue</xsl:attribute> <BR/>
|
|
Passed <BR/>
|
|
</xsl:element>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Desired Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">Passed</FONT><BR/>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Result:</B></TD>
|
|
<TD>
|
|
<xsl:element name="FONT">
|
|
<xsl:attribute name="COLOR">blue</xsl:attribute>
|
|
Passed
|
|
</xsl:element>
|
|
</TD>
|
|
</TR>
|
|
<!-- new test -->
|
|
<TR BGCOLOR="#E0E0FF" ALIGN="CENTER">
|
|
<TD COLSPAN="2"><B>Using Attribute Sets</B></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="TOP"><B>Test:</B></TD>
|
|
<TD>
|
|
<FONT xsl:use-attribute-sets="style1"><BR />
|
|
Passed <BR/>
|
|
</FONT>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Desired Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">Passed</FONT><BR/>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Result:</B></TD>
|
|
<TD>
|
|
<FONT xsl:use-attribute-sets="style1">
|
|
Passed
|
|
</FONT>
|
|
</TD>
|
|
</TR>
|
|
<!-- new test -->
|
|
<TR>
|
|
<TD VALIGN="TOP"><B>Test:</B></TD>
|
|
<TD>
|
|
<xsl:element name="FONT" use-attribute-sets="style1 style2"><BR />
|
|
Passed <BR/>
|
|
</xsl:element>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Desired Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="red">Passed</FONT><BR/>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Result:</B></TD>
|
|
<TD>
|
|
<xsl:element name="FONT" use-attribute-sets="style1 style2">
|
|
Passed
|
|
</xsl:element>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<HR/>
|
|
<!-- NUMBERING Examples -->
|
|
<TABLE>
|
|
<TR BGColor="#E0E0FF">
|
|
<TD Colspan="2" ALIGN="CENTER">
|
|
<B>Numbering (only simple numbering currently implemented)</B>
|
|
</TD>
|
|
</TR>
|
|
<!-- new test -->
|
|
<TR>
|
|
<TD VALIGN="TOP"><B>Test:</B></TD>
|
|
<TD>
|
|
<xsl:number value="4"/><BR />
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Desired Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">4</FONT><BR/>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue"><xsl:number value="4"/></FONT>
|
|
</TD>
|
|
</TR>
|
|
<!-- new test -->
|
|
<TR>
|
|
<TD VALIGN="TOP"><B>Test:</B></TD>
|
|
<TD>
|
|
see source<BR />
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Desired Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">
|
|
1. x <BR/>1. y<BR/>1. z
|
|
</FONT><BR/>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">
|
|
<xsl:for-each select="x | y | z">
|
|
<xsl:number/>
|
|
<xsl:text>. </xsl:text><xsl:value-of select="."/><BR/>
|
|
</xsl:for-each>
|
|
</FONT>
|
|
</TD>
|
|
</TR>
|
|
|
|
</TABLE>
|
|
|
|
<HR/>
|
|
<!-- ADDITIVE EXPRESSION TESTS -->
|
|
<TABLE>
|
|
<TR BGColor="#E0E0FF">
|
|
<TD Colspan="2" ALIGN="CENTER">
|
|
<B>Additive Expressions</B>
|
|
</TD>
|
|
</TR>
|
|
<!-- new test -->
|
|
<TR>
|
|
<TD VALIGN="TOP"><B>Test:</B></TD>
|
|
<TD>
|
|
<xsl:value-of select="70+4"/><BR />
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Desired Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">74</FONT><BR/>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">
|
|
<xsl:value-of select="70+4"/>
|
|
</FONT>
|
|
</TD>
|
|
</TR>
|
|
<!-- new test -->
|
|
<TR>
|
|
<TD VALIGN="TOP"><B>Test:</B></TD>
|
|
<TD>
|
|
<xsl:value-of select="-70+4"/><BR />
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Desired Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">-66</FONT><BR/>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">
|
|
<xsl:value-of select="-70+4"/>
|
|
</FONT>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="TOP"><B>Test:</B></TD>
|
|
<TD>
|
|
<xsl:value-of select="1900+70+8-4"/><BR />
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Desired Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">1974</FONT><BR/>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">
|
|
<xsl:value-of select="1900+70+8-4"/>
|
|
</FONT>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="TOP"><B>Test:</B></TD>
|
|
<TD>
|
|
<xsl:value-of select="(4+5)-(9+9)"/><BR />
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Desired Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">-9</FONT><BR/>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">
|
|
<xsl:value-of select="(4+5)-(9+9)"/>
|
|
</FONT>
|
|
</TD>
|
|
</TR>
|
|
|
|
</TABLE>
|
|
<HR/>
|
|
<!-- MULTIPLICATIVE EXPRESSION TESTS -->
|
|
<TABLE>
|
|
<TR BGColor="#E0E0FF">
|
|
<TD Colspan="2" ALIGN="CENTER">
|
|
<B>Multiplicative Expressions</B>
|
|
</TD>
|
|
</TR>
|
|
<!-- new test -->
|
|
<TR>
|
|
<TD VALIGN="TOP"><B>Test:</B></TD>
|
|
<TD>
|
|
<xsl:value-of select="7*4"/><BR />
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Desired Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">28</FONT><BR/>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">
|
|
<xsl:value-of select="7*4"/>
|
|
</FONT>
|
|
</TD>
|
|
</TR>
|
|
<!-- new test -->
|
|
<TR>
|
|
<TD VALIGN="TOP"><B>Test:</B></TD>
|
|
<TD>
|
|
<xsl:value-of select="7mod 4"/><BR />
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Desired Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">3</FONT><BR/>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">
|
|
<xsl:value-of select="7mod 4"/>
|
|
</FONT>
|
|
</TD>
|
|
</TR>
|
|
<!-- new test -->
|
|
<TR>
|
|
<TD VALIGN="TOP"><B>Test:</B></TD>
|
|
<TD>
|
|
<xsl:value-of select="7div 4"/><BR />
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Desired Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">1.75</FONT><BR/>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">
|
|
<xsl:value-of select="7div 4"/>
|
|
</FONT>
|
|
</TD>
|
|
</TR>
|
|
<!-- new test -->
|
|
<TR>
|
|
<TD VALIGN="TOP"><B>Test:</B></TD>
|
|
<TD>
|
|
<xsl:value-of select="7div 0"/><BR />
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Desired Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">Infinity</FONT><BR/>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">
|
|
<xsl:value-of select="7div 0"/>
|
|
</FONT>
|
|
</TD>
|
|
</TR>
|
|
<!-- new test -->
|
|
<TR>
|
|
<TD VALIGN="TOP"><B>Test:</B></TD>
|
|
<TD>
|
|
<xsl:value-of select="0 div 0"/><BR />
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Desired Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">NaN</FONT><BR/>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">
|
|
<xsl:value-of select="0 div 0"/>
|
|
</FONT>
|
|
</TD>
|
|
</TR>
|
|
|
|
<!-- new test -->
|
|
<TR>
|
|
<TD VALIGN="TOP"><B>Test:</B></TD>
|
|
<TD>
|
|
<xsl:variable name="x" select="7*3"/><BR />
|
|
<xsl:variable name="y" select="3"/><BR />
|
|
<xsl:value-of select="$x div $y"/><BR />
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Desired Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">7</FONT><BR/>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">
|
|
<xsl:variable name="x" select="7*3"/>
|
|
<xsl:variable name="y" select="3"/>
|
|
<xsl:value-of select="$x div $y"/>
|
|
<BR/>
|
|
|
|
</FONT>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<!-- PRECEDENCE TESTS -->
|
|
<TABLE>
|
|
<TR BGColor="#E0E0FF">
|
|
<TD Colspan="2" ALIGN="CENTER">
|
|
<B>Precedence tests</B>
|
|
</TD>
|
|
</TR>
|
|
<!-- new test -->
|
|
<TR>
|
|
<TD VALIGN="TOP"><B>Test:</B></TD>
|
|
<TD>
|
|
<xsl:value-of select="2 mod 2 = 0"/><BR />
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Desired Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">true</FONT><BR/>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">
|
|
<xsl:value-of select="2 mod 2 = 0"/>
|
|
</FONT>
|
|
</TD>
|
|
</TR>
|
|
<!-- new test -->
|
|
<TR>
|
|
<TD VALIGN="TOP"><B>Test:</B></TD>
|
|
<TD>
|
|
<xsl:value-of select="5 mod 2 < 5 and 2*6 >= 12"/><BR />
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Desired Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">true</FONT><BR/>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">
|
|
<xsl:value-of select="5 mod 2 < 5 and 2*6>=12"/>
|
|
</FONT>
|
|
</TD>
|
|
</TR>
|
|
<!-- new test -->
|
|
<TR>
|
|
<TD VALIGN="TOP"><B>Test:</B></TD>
|
|
<TD>
|
|
<xsl:value-of select="5 mod 2 < 5 and 2*6>12"/><BR />
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Desired Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">false</FONT><BR/>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">
|
|
<xsl:value-of select="5 mod 2 < 5 and 2*6>12"/>
|
|
</FONT>
|
|
</TD>
|
|
</TR>
|
|
|
|
<!-- new test -->
|
|
<TR>
|
|
<TD VALIGN="TOP"><B>Test:</B></TD>
|
|
<TD>
|
|
<xsl:value-of select="4+5*3"/><BR />
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Desired Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">19</FONT><BR/>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">
|
|
<xsl:value-of select="4+5*3"/>
|
|
</FONT>
|
|
</TD>
|
|
</TR>
|
|
<!-- new test -->
|
|
<TR>
|
|
<TD VALIGN="TOP"><B>Test:</B></TD>
|
|
<TD>
|
|
<xsl:value-of select="4+5*3+(6-4)*7"/><BR />
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Desired Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">33</FONT><BR/>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">
|
|
<xsl:value-of select="4+5*3+(6-4)*7"/>
|
|
</FONT>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
|
|
<!-- Result Type conversion tests -->
|
|
<TABLE>
|
|
<TR BGColor="#E0E0FF">
|
|
<TD Colspan="2" ALIGN="CENTER">
|
|
<B>Automatic Result Type Conversion</B>
|
|
</TD>
|
|
</TR>
|
|
<!-- new test -->
|
|
<TR>
|
|
<TD VALIGN="TOP"><B>Test:</B></TD>
|
|
<TD>
|
|
<xsl:value-of select="'747' + 8"/><BR />
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Desired Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">755</FONT><BR/>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><B>Result:</B></TD>
|
|
<TD>
|
|
<FONT COLOR="blue">
|
|
<xsl:value-of select="'747' + 8"/>
|
|
</FONT>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
</BODY>
|
|
</HTML>
|
|
</xsl:template>
|
|
|
|
<!-- simple union expressions -->
|
|
<xsl:template match="x | y | z" priority="1.0">
|
|
element<B><xsl:text> </xsl:text><xsl:value-of select="@*"/></B>
|
|
<xsl:if test="not(position()=3)">,</xsl:if>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="x | y | z" mode="mode-test">
|
|
<xsl:value-of select="@*"/>
|
|
<xsl:if test="not(position()=3)"><xsl:text>, </xsl:text></xsl:if>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="z">
|
|
element (z): <B><xsl:value-of select="."/></B>
|
|
</xsl:template>
|
|
|
|
</xsl:stylesheet>
|
|
|